pytomography 3.2.1__tar.gz → 3.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytomography-3.2.1 → pytomography-3.2.3}/PKG-INFO +3 -1
- pytomography-3.2.3/docs/source/_static/code_toggle.js +17 -0
- pytomography-3.2.3/docs/source/_static/css/code_toggle.css +16 -0
- pytomography-3.2.3/docs/source/_static/css/custom.css +12 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/conf.py +21 -11
- pytomography-3.2.3/docs/source/data_tables/collimator_data.rst +327 -0
- pytomography-3.2.3/docs/source/external_data.rst +33 -0
- pytomography-3.2.3/docs/source/gallery.rst +52 -0
- pytomography-3.2.3/docs/source/images/CT_slice.png +0 -0
- pytomography-3.2.3/docs/source/images/ac225_patient_dual.jpg +0 -0
- pytomography-3.2.3/docs/source/images/figure2.jpg +0 -0
- pytomography-3.2.3/docs/source/images/figure4_left_hoz.jpg +0 -0
- pytomography-3.2.3/docs/source/index.rst +67 -0
- pytomography-3.2.3/docs/source/install.rst +29 -0
- pytomography-3.2.3/docs/source/notebooks/CT_slice.png +0 -0
- pytomography-3.2.3/docs/source/notebooks/p_simind_multiorgan.py +29 -0
- pytomography-3.2.3/docs/source/notebooks/p_subsample_data.py +39 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/run_all_notebooks.py +10 -4
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_CT_GEN3.ipynb +98 -130
- pytomography-3.2.3/docs/source/notebooks/t_GE_HDF5.ipynb +485 -0
- pytomography-3.2.3/docs/source/notebooks/t_PETGATE_DIP.ipynb +1088 -0
- pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_lm.ipynb +1024 -0
- pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +1019 -0
- pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +1509 -0
- pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +1163 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETSIRD.ipynb +1 -2
- pytomography-3.2.3/docs/source/notebooks/t_ac225_dicom_recon.ipynb +588 -0
- pytomography-3.2.3/docs/source/notebooks/t_ac225_simind_recon.ipynb +497 -0
- pytomography-3.2.3/docs/source/notebooks/t_algorithms.ipynb +826 -0
- pytomography-3.2.3/docs/source/notebooks/t_dicom_algorithms.ipynb +110 -0
- pytomography-3.2.3/docs/source/notebooks/t_dicomdata.ipynb +1342 -0
- pytomography-3.2.3/docs/source/notebooks/t_dicommultibed.ipynb +908 -0
- pytomography-3.2.3/docs/source/notebooks/t_dualpeak.ipynb +678 -0
- pytomography-3.2.3/docs/source/notebooks/t_examplesystemmatrix.ipynb +2650 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_fbp.ipynb +31 -16
- pytomography-3.2.3/docs/source/notebooks/t_plotting.ipynb +315 -0
- pytomography-3.2.3/docs/source/notebooks/t_siminddata.ipynb +1260 -0
- pytomography-3.2.3/docs/source/notebooks/t_siminddata_multiorgan.ipynb +1886 -0
- pytomography-3.2.3/docs/source/notebooks/t_uncertainty_spect.ipynb +890 -0
- pytomography-3.2.3/docs/source/usage/usage.rst +65 -0
- pytomography-3.2.3/docs/source/usage/usage_ct.rst +26 -0
- pytomography-3.2.3/docs/source/usage/usage_dev.rst +22 -0
- pytomography-3.2.3/docs/source/usage/usage_pet.rst +92 -0
- pytomography-3.2.3/docs/source/usage/usage_spect.rst +141 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/pyproject.toml +4 -2
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/__init__.py +11 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/preconditioned_gradient_ascent.py +37 -17
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/callbacks/__init__.py +1 -1
- pytomography-3.2.3/src/pytomography/callbacks/callback.py +63 -0
- pytomography-3.2.3/src/pytomography/data/pet_colors.txt +1535 -0
- pytomography-3.2.3/src/pytomography/data/simind.smc +51 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/CT/dicom_ct_pd.py +2 -2
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/attenuation_map.py +1 -1
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/dicom.py +88 -18
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/shared.py +32 -10
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/simind.py +36 -6
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/__init__.py +1 -1
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/dicom.py +46 -5
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/interfile.py +1 -1
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/poisson_log_likelihood.py +1 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/nearest_neighbour.py +2 -4
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/SPECT/spect_system_matrix.py +2 -3
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/system_matrix.py +15 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/__init__.py +1 -0
- pytomography-3.2.3/src/pytomography/transforms/SPECT/cutoff.py +22 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/psf.py +3 -3
- pytomography-3.2.3/src/pytomography/utils/plot_utils.py +52 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/scatter.py +7 -11
- pytomography-3.2.1/docs/source/_templates/autoapi/index.rst +0 -15
- pytomography-3.2.1/docs/source/_templates/autoapi/python/attribute.rst +0 -1
- pytomography-3.2.1/docs/source/_templates/autoapi/python/class.rst +0 -58
- pytomography-3.2.1/docs/source/_templates/autoapi/python/data.rst +0 -37
- pytomography-3.2.1/docs/source/_templates/autoapi/python/exception.rst +0 -1
- pytomography-3.2.1/docs/source/_templates/autoapi/python/function.rst +0 -15
- pytomography-3.2.1/docs/source/_templates/autoapi/python/method.rst +0 -19
- pytomography-3.2.1/docs/source/_templates/autoapi/python/module.rst +0 -114
- pytomography-3.2.1/docs/source/_templates/autoapi/python/package.rst +0 -1
- pytomography-3.2.1/docs/source/_templates/autoapi/python/property.rst +0 -15
- pytomography-3.2.1/docs/source/autoapi/index.rst +0 -12
- pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/dip_recon/index.rst +0 -56
- pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/fbp/index.rst +0 -44
- pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/index.rst +0 -464
- pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/preconditioned_gradient_ascent/index.rst +0 -490
- pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/callback/index.rst +0 -47
- pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/data_saving/index.rst +0 -54
- pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/index.rst +0 -98
- pytomography-3.2.1/docs/source/autoapi/pytomography/index.rst +0 -82
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/CT/dicom_ct_pd/index.rst +0 -26
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/CT/index.rst +0 -15
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/clinical/index.rst +0 -122
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/gate/index.rst +0 -244
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/index.rst +0 -32
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/petsird/index.rst +0 -64
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_binary/index.rst +0 -1649
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_dtypes/index.rst +0 -22
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_ndjson/index.rst +0 -1391
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/binary/index.rst +0 -386
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/index.rst +0 -841
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/ndjson/index.rst +0 -416
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/protocols/index.rst +0 -125
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/types/index.rst +0 -418
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/yardl_types/index.rst +0 -270
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/shared/index.rst +0 -194
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/attenuation_map/index.rst +0 -162
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/dicom/index.rst +0 -334
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/index.rst +0 -200
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/shared/index.rst +0 -72
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/simind/index.rst +0 -124
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/index.rst +0 -23
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/dicom/index.rst +0 -86
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/dicom_creation/index.rst +0 -97
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/index.rst +0 -114
- pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/interfile/index.rst +0 -46
- pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/index.rst +0 -249
- pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/likelihood/index.rst +0 -99
- pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/mse_objective/index.rst +0 -82
- pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/poisson_log_likelihood/index.rst +0 -93
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata/index.rst +0 -36
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/ct_gen3_metadata/index.rst +0 -38
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/index.rst +0 -66
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/index.rst +0 -77
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/pet_sinogram_metadata/index.rst +0 -29
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/pet_tof_metadata/index.rst +0 -35
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/petlm_metadata/index.rst +0 -38
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/SPECT/index.rst +0 -89
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/SPECT/spect_metadata/index.rst +0 -80
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/index.rst +0 -67
- pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/metadata/index.rst +0 -42
- pytomography-3.2.1/docs/source/autoapi/pytomography/priors/index.rst +0 -312
- pytomography-3.2.1/docs/source/autoapi/pytomography/priors/nearest_neighbour/index.rst +0 -252
- pytomography-3.2.1/docs/source/autoapi/pytomography/priors/prior/index.rst +0 -68
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix/index.rst +0 -137
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/ct_gen3_system_matrix/index.rst +0 -107
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/index.rst +0 -221
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/index.rst +0 -328
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/pet_sinogram_system_matrix/index.rst +0 -175
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/petlm_system_matrix/index.rst +0 -161
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/SPECT/index.rst +0 -190
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/SPECT/spect_system_matrix/index.rst +0 -181
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/index.rst +0 -180
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/index.rst +0 -97
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/kem_system_matrix/index.rst +0 -70
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/motion_correction_system_matrix/index.rst +0 -35
- pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/system_matrix/index.rst +0 -154
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/attenuation/index.rst +0 -99
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/index.rst +0 -170
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/psf/index.rst +0 -152
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/index.rst +0 -75
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/filters/index.rst +0 -76
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/index.rst +0 -254
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/kem/index.rst +0 -77
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/motion/index.rst +0 -88
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/spatial/index.rst +0 -55
- pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/transform/index.rst +0 -51
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/fourier_filters/index.rst +0 -38
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/index.rst +0 -332
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/misc/index.rst +0 -95
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/nist_data/index.rst +0 -64
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/scatter/index.rst +0 -62
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/spatial/index.rst +0 -153
- pytomography-3.2.1/docs/source/autoapi/pytomography/utils/sss/index.rst +0 -254
- pytomography-3.2.1/docs/source/autoapi/test_multi_bed_recon/index.rst +0 -44
- pytomography-3.2.1/docs/source/external_data.md +0 -121
- pytomography-3.2.1/docs/source/notebooks/CT_slice.png +0 -0
- pytomography-3.2.1/docs/source/notebooks/t_GE_HDF5.ipynb +0 -572
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_DIP.ipynb +0 -1133
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lm copy.ipynb +0 -660
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lm.ipynb +0 -1062
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +0 -1056
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +0 -1547
- pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +0 -1201
- pytomography-3.2.1/docs/source/notebooks/t_ac225_dicom_recon.ipynb +0 -614
- pytomography-3.2.1/docs/source/notebooks/t_ac225_simind_recon.ipynb +0 -526
- pytomography-3.2.1/docs/source/notebooks/t_dicomdata.ipynb +0 -1344
- pytomography-3.2.1/docs/source/notebooks/t_dicommultibed.ipynb +0 -945
- pytomography-3.2.1/docs/source/notebooks/t_examplesystemmatrix.ipynb +0 -2650
- pytomography-3.2.1/docs/source/notebooks/t_siminddata.ipynb +0 -1957
- pytomography-3.2.1/docs/source/notebooks/t_uncertainty_spect.ipynb +0 -955
- pytomography-3.2.1/docs/source/usage.md +0 -31
- pytomography-3.2.1/src/pytomography/callbacks/callback.py +0 -32
- {pytomography-3.2.1 → pytomography-3.2.3}/.github/workflows/publish-to-test-pypi.yml +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/.gitignore +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/.readthedocs.yaml +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/LICENSE +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/README.md +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/Makefile +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/make.bat +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/developers_guide.md +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/PT1.png +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/coordinate_conventions.png +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/emission.png +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/example_scanner_sm.png +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/figure4.jpg +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/figure5.jpg +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/pytomo_front_title.png +0 -0
- /pytomography-3.2.1/docs/source/index.md → /pytomography-3.2.3/docs/source/index2.md +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/conventions.ipynb +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/script_to_generate_eta_for_petsird.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_CT_microct.ipynb +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETGATE_LM.ipynb +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETGATE_SINO.ipynb +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_quantitative.ipynb +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/dip_recon.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/fbp.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/callbacks/data_saving.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/adipose.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/air.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/aluminum.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/bonecortical.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/boneequivplastic.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/breast.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/lead.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/lungtissue.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/muscle.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/tissueequivplastic.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/tungsten.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/water.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/collim.col +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/ct_table.csv +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/pet_scanner_info.txt +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/CT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/clinical.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/gate.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/petsird.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_binary.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_dtypes.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_ndjson.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/binary.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/ndjson.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/protocols.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/types.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/yardl_types.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/shared.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/dicom_creation.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/likelihood.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/mse_objective.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/ct_gen3_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/pet_sinogram_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/pet_tof_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/petlm_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/SPECT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/SPECT/spect_metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/metadata.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/prior.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/ct_gen3_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/pet_sinogram_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/petlm_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/SPECT/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/kem_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/motion_correction_system_matrix.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/tests/test_multi_bed_recon.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/attenuation.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/filters.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/kem.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/motion.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/spatial.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/transform.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/__init__.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/fourier_filters.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/misc.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/nist_data.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/spatial.py +0 -0
- {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/sss.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pytomography
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.3
|
|
4
4
|
Summary: Package to perform tomographic image reconstruction
|
|
5
5
|
Project-URL: Homepage, https://github.com/qurit/PyTomography
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/qurit/PyTomography/issues
|
|
@@ -30,6 +30,8 @@ Requires-Dist: myst-parser; extra == 'doc'
|
|
|
30
30
|
Requires-Dist: nbsphinx; extra == 'doc'
|
|
31
31
|
Requires-Dist: pydata-sphinx-theme; extra == 'doc'
|
|
32
32
|
Requires-Dist: sphinx-autoapi~=3.0.0; extra == 'doc'
|
|
33
|
+
Requires-Dist: sphinx-copybutton; extra == 'doc'
|
|
34
|
+
Requires-Dist: sphinx-design; extra == 'doc'
|
|
33
35
|
Requires-Dist: sphinx~=6.2.1; extra == 'doc'
|
|
34
36
|
Requires-Dist: toml; extra == 'doc'
|
|
35
37
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
2
|
+
let dropdown = document.getElementById('code-select');
|
|
3
|
+
// Hide all code blocks
|
|
4
|
+
let allCodeBlocks = document.querySelectorAll('.highlight-python');
|
|
5
|
+
allCodeBlocks.forEach(el => el.style.display = 'none');
|
|
6
|
+
// Add event listener for toggling
|
|
7
|
+
dropdown.addEventListener('change', function () {
|
|
8
|
+
let selectedValue = this.value;
|
|
9
|
+
// Hide all code blocks
|
|
10
|
+
let allCodeBlocks = document.querySelectorAll('.highlight-python');
|
|
11
|
+
allCodeBlocks.forEach(el => el.style.display = 'none');
|
|
12
|
+
if (document.getElementById(selectedValue)) {
|
|
13
|
+
// Show the selected code block
|
|
14
|
+
document.getElementById(selectedValue).style.display = '';
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -37,22 +37,23 @@ extensions = [
|
|
|
37
37
|
"sphinx.ext.autodoc",
|
|
38
38
|
'sphinx.ext.viewcode',
|
|
39
39
|
"sphinx.ext.napoleon",
|
|
40
|
+
"sphinx_design",
|
|
40
41
|
"nbsphinx",
|
|
41
42
|
"autoapi.extension",
|
|
43
|
+
"sphinx_copybutton",
|
|
42
44
|
"IPython.sphinxext.ipython_console_highlighting"
|
|
43
45
|
]
|
|
44
46
|
|
|
45
47
|
# Where to autogen API
|
|
46
48
|
autoapi_dirs = ['../../src/pytomography']
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
# This pattern also affects html_static_path and html_extra_path.
|
|
49
|
+
def skip_util_classes(app, what, name, obj, skip, options):
|
|
50
|
+
if what == "attribute":
|
|
51
|
+
skip = True
|
|
52
|
+
return skip
|
|
53
|
+
|
|
54
|
+
def setup(sphinx):
|
|
55
|
+
sphinx.connect("autoapi-skip-member", skip_util_classes)
|
|
56
|
+
|
|
56
57
|
exclude_patterns = []
|
|
57
58
|
|
|
58
59
|
|
|
@@ -68,6 +69,13 @@ html_logo = 'images/PT1.png'
|
|
|
68
69
|
# relative to this directory. They are copied after the builtin static files,
|
|
69
70
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
70
71
|
html_static_path = ['_static']
|
|
72
|
+
html_css_files = [
|
|
73
|
+
'css/custom.css',
|
|
74
|
+
'css/code_toggle.css'
|
|
75
|
+
]
|
|
76
|
+
html_js_files = [
|
|
77
|
+
'code_toggle.js'
|
|
78
|
+
]
|
|
71
79
|
|
|
72
80
|
# typehints
|
|
73
81
|
autodoc_typehints = "description"
|
|
@@ -82,5 +90,7 @@ html_theme_options = {
|
|
|
82
90
|
"icon": "fa-brands fa-github",
|
|
83
91
|
"type": "fontawesome",
|
|
84
92
|
},
|
|
85
|
-
],
|
|
86
|
-
}
|
|
93
|
+
],
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
pygments_style = 'sphinx'
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
.. _collimator-data-index:
|
|
2
|
+
|
|
3
|
+
++++++++++++
|
|
4
|
+
Collimator Codes
|
|
5
|
+
++++++++++++
|
|
6
|
+
|
|
7
|
+
Collimator data for SPECT imaging was obtained from the ``collim.col`` file of the SIMIND Monte Carlo program. The values in the "Code" column are used for the ``collimator_name`` argument of the ``get_psfmeta_from_scanner_params`` function from ``pytomography.io.SPECT``. The supported collimators/codes are listed below.
|
|
8
|
+
|
|
9
|
+
.. list-table:: Scanner Codes
|
|
10
|
+
:widths: 25 25 50
|
|
11
|
+
:header-rows: 1
|
|
12
|
+
|
|
13
|
+
* - Scanner
|
|
14
|
+
- Code
|
|
15
|
+
- Comments
|
|
16
|
+
* - Millenium VG kameran
|
|
17
|
+
- GV-LEGP
|
|
18
|
+
- LOW ENERGY GENERAL PURPOSE
|
|
19
|
+
* - Millenium VG kameran
|
|
20
|
+
- GV-LEHR
|
|
21
|
+
- LOW ENERGY HIGH RESOLUTION
|
|
22
|
+
* - Millenium VG kameran
|
|
23
|
+
- GV-EEGP
|
|
24
|
+
- EXTENDED LOW ENERGY GENERAL PURPOSE
|
|
25
|
+
* - Millenium VG kameran
|
|
26
|
+
- GV-MEGP
|
|
27
|
+
- MEDIUM ENERGY GENERAL PURPOSE
|
|
28
|
+
* - Millenium VG kameran
|
|
29
|
+
- GV-HEGP
|
|
30
|
+
- HIGH ENERGY GENERAL PURPOSE
|
|
31
|
+
* - Millenium VG kameran
|
|
32
|
+
- GV-LEUR
|
|
33
|
+
- FAN-BEAM LOW-ENERGY ULTRA-HIGH RESOLUTION
|
|
34
|
+
* - Millenium VG kameran
|
|
35
|
+
- GV-UEUH
|
|
36
|
+
- ULTRA-HIGH ENERGY ULTRA-HIGH RESOLUTION
|
|
37
|
+
* - MPR kamera
|
|
38
|
+
- GM-LEGP
|
|
39
|
+
- LOW ENERGY GENERAL PURPOSE
|
|
40
|
+
* - MPR kamera
|
|
41
|
+
- GM-LEHR
|
|
42
|
+
- LOW ENERGY HIGH RESOLUTION
|
|
43
|
+
* - GE Infinia
|
|
44
|
+
- GI-LEHR
|
|
45
|
+
- Infinia High Resolution
|
|
46
|
+
* - GE Infinia
|
|
47
|
+
- GI-LEGP
|
|
48
|
+
- Infinia General Purpose
|
|
49
|
+
* - GE Infinia
|
|
50
|
+
- GI-MEGP
|
|
51
|
+
- Infinia MEGP
|
|
52
|
+
* - GE Infinia
|
|
53
|
+
- GI-HEGP
|
|
54
|
+
- Infinia HEGP
|
|
55
|
+
* - GE Infinia
|
|
56
|
+
- GI-ELEG
|
|
57
|
+
- Infinia Extended LEGP
|
|
58
|
+
* - GE Infinia
|
|
59
|
+
- GI-LEHX
|
|
60
|
+
- Infinia High Resolution
|
|
61
|
+
* - GE 870 DR
|
|
62
|
+
- G8-LHRS
|
|
63
|
+
- GE 870 DR High Resolution S
|
|
64
|
+
* - GE 870 DR
|
|
65
|
+
- G8-LEHS
|
|
66
|
+
- GE 870 DR High Sensitivity
|
|
67
|
+
* - GE 870 DR
|
|
68
|
+
- G8-LUHR
|
|
69
|
+
- GE 870 DR Ultra High Resolution
|
|
70
|
+
* - GE 870 DR
|
|
71
|
+
- G8-LEHR
|
|
72
|
+
- GE 870 DR High Resolution
|
|
73
|
+
* - GE 870 DR
|
|
74
|
+
- G8-ELEG
|
|
75
|
+
- GE 870 DR Extended General Purpose
|
|
76
|
+
* - GE 870 DR
|
|
77
|
+
- G8-MEGP
|
|
78
|
+
- GE 870 DR Medium Energy
|
|
79
|
+
* - GE 870 DR
|
|
80
|
+
- G8-HEGP
|
|
81
|
+
- GE 870 DR High Energy
|
|
82
|
+
* - GE Ventri
|
|
83
|
+
- GT-LEHR
|
|
84
|
+
- Ventri High Resolution
|
|
85
|
+
* - GE Ventri
|
|
86
|
+
- GT-LEGP
|
|
87
|
+
- Ventri General Purpose
|
|
88
|
+
* - GE 640 Optima
|
|
89
|
+
- GO-LEHR
|
|
90
|
+
- Ventri High Resolution
|
|
91
|
+
* - GE 640 Optima
|
|
92
|
+
- GO-LEGP
|
|
93
|
+
- Ventri General Purpose
|
|
94
|
+
* - GE 630
|
|
95
|
+
- GO-LEHR
|
|
96
|
+
- Ventri High Resolution
|
|
97
|
+
* - GE 630
|
|
98
|
+
- GT-LEGP
|
|
99
|
+
- Ventri General Purpose
|
|
100
|
+
* - GE 670 CZT
|
|
101
|
+
- GZ-LEHR
|
|
102
|
+
- CZT Low Energy High Resolution
|
|
103
|
+
* - CrystalCam CZT
|
|
104
|
+
- HH-LEHR
|
|
105
|
+
- CZT LE High Resolution (rect)
|
|
106
|
+
* - CrystalCam CZT
|
|
107
|
+
- HH-LEHS
|
|
108
|
+
- CZT LE High Sensitivity (rect)
|
|
109
|
+
* - CrystalCam CZT
|
|
110
|
+
- HH-MEGP
|
|
111
|
+
- CZT ME General Purpose (circ)
|
|
112
|
+
* - BW = Philips Brightview camera
|
|
113
|
+
- PB-LEGP
|
|
114
|
+
- Philips Brightview LEGP
|
|
115
|
+
* - BW = Philips Brightview camera
|
|
116
|
+
- PB-LEHR
|
|
117
|
+
- Philips Brightview LEHR
|
|
118
|
+
* - BW = Philips Brightview camera
|
|
119
|
+
- PB-CAHR
|
|
120
|
+
- Philips Brightview Cadiac HR
|
|
121
|
+
* - BW = Philips Brightview camera
|
|
122
|
+
- PB-MEGP
|
|
123
|
+
- Philips Brightview MEGP
|
|
124
|
+
* - BW = Philips Brightview camera
|
|
125
|
+
- PB-HEGP
|
|
126
|
+
- Philips Brightview HEGP
|
|
127
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
128
|
+
- VG-LEUR
|
|
129
|
+
- LOW-ENERGY ULTRA HIGH RESOLUTION
|
|
130
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
131
|
+
- VG-LEHR
|
|
132
|
+
- LOW-ENERGY HIGH RESOLUTION
|
|
133
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
134
|
+
- VG-LEGP
|
|
135
|
+
- LOW-ENERGY GENERAL PURPOSE
|
|
136
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
137
|
+
- VG-LEHS
|
|
138
|
+
- LOW-ENERGY HIGH SENSITIVITY
|
|
139
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
140
|
+
- VG-LEES
|
|
141
|
+
- LOW-ENERGY EXTRA HIGH SENSITIVITY
|
|
142
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
143
|
+
- VG-LESS
|
|
144
|
+
- LOW-ENERGY SUPER HIGH SENSITIVITY
|
|
145
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
146
|
+
- VG-LEUS
|
|
147
|
+
- LOW-ENERGY ULTRA HIGH SENSITIVITY
|
|
148
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
149
|
+
- VG-LETY
|
|
150
|
+
- LOW-ENERGY THYROID
|
|
151
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
152
|
+
- VG-ME23
|
|
153
|
+
- MEDIUM-ENERGY I-123
|
|
154
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
155
|
+
- VG-ME19
|
|
156
|
+
- MEDIUM-ENERGY 190 keV
|
|
157
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
158
|
+
- VG-ME26
|
|
159
|
+
- MEDIUM-ENERGY 260 keV
|
|
160
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
161
|
+
- VG-ME30
|
|
162
|
+
- MEDIUM-ENERGY 300 keV
|
|
163
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
164
|
+
- VG-ME36
|
|
165
|
+
- MEDIUM-ENERGY 360 keV
|
|
166
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
167
|
+
- VG-METY
|
|
168
|
+
- MEDIUM-ENERGY THYRO333ID
|
|
169
|
+
* - VG = VON GAHLEN COLLIMATORS - HOLLAND
|
|
170
|
+
- VG-HE51
|
|
171
|
+
- HIGH 511 keV
|
|
172
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
173
|
+
- ED-LEUR
|
|
174
|
+
- LOW-ENERGY ULTRA HIGH RESOLUTION
|
|
175
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
176
|
+
- ED-LEHR
|
|
177
|
+
- LOW-ENERGY HIGH RESOLUTION
|
|
178
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
179
|
+
- ED-LEGP
|
|
180
|
+
- LOW-ENERGY GENERAL PURPOSE
|
|
181
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
182
|
+
- ED-LEMS
|
|
183
|
+
- LOW-ENERGY MEDIUM SENSITIVITY
|
|
184
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
185
|
+
- ED-LEHS
|
|
186
|
+
- LOW-ENERGY HIGH SENSITIVITY
|
|
187
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
188
|
+
- ED-LEUS
|
|
189
|
+
- LOW-ENERGY ULTRA HIGH SENSITIVITY
|
|
190
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
191
|
+
- ED-MEUS
|
|
192
|
+
- MEDIUM-ENERGY ULTRA HIGH SENSITIVITY
|
|
193
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
194
|
+
- ED-MEHS
|
|
195
|
+
- MEDIUM-ENERGY HIGH SENSITIVITY
|
|
196
|
+
* - ENGINEERING DYNAMICS CORPORATION
|
|
197
|
+
- ED-MEHR
|
|
198
|
+
- MEDIUM-ENERGY HIGH RESOLUTION
|
|
199
|
+
* - ME = MEDISO Nucline SPIRIT DH-V
|
|
200
|
+
- ME-LEGP
|
|
201
|
+
- Low-Energy General Purpose
|
|
202
|
+
* - ME = MEDISO Nucline SPIRIT DH-V
|
|
203
|
+
- ME-LEHR
|
|
204
|
+
- Low-Energy High Resolution
|
|
205
|
+
* - ME = MEDISO Nucline SPIRIT DH-V
|
|
206
|
+
- ME-LEUHR
|
|
207
|
+
- Low-Energy Ultra High Resolution
|
|
208
|
+
* - ME = MEDISO Nucline SPIRIT DH-V
|
|
209
|
+
- ME-MEGP
|
|
210
|
+
- Medium Energy General Purpose
|
|
211
|
+
* - ME = MEDISO Nucline SPIRIT DH-V
|
|
212
|
+
- ME-HEGP
|
|
213
|
+
- High Energy General Purpose
|
|
214
|
+
* - MA = MEDISO AnyScan
|
|
215
|
+
- MA-LEHS
|
|
216
|
+
- Low-Energy General Purpose
|
|
217
|
+
* - MA = MEDISO AnyScan
|
|
218
|
+
- MA-LEHR
|
|
219
|
+
- Low-Energy High Resolution
|
|
220
|
+
* - MA = MEDISO AnyScan
|
|
221
|
+
- MA-LEUHR
|
|
222
|
+
- Low-Energy Ultra High Resolution
|
|
223
|
+
* - MA = MEDISO AnyScan
|
|
224
|
+
- MA-LHRHS
|
|
225
|
+
- Low-Energy Ultra High Resolution
|
|
226
|
+
* - MA = MEDISO AnyScan
|
|
227
|
+
- MA-MEGP
|
|
228
|
+
- Medium Energy General Purpose
|
|
229
|
+
* - MA = MEDISO AnyScan
|
|
230
|
+
- MA-HEGP
|
|
231
|
+
- High Energy General Purpose
|
|
232
|
+
* - MA = MEDISO AnyScan
|
|
233
|
+
- MA-HLR
|
|
234
|
+
- High Energy High Resolution
|
|
235
|
+
* - GE Discovery NM630
|
|
236
|
+
- D-LEGP
|
|
237
|
+
- Low Energy General Purpose
|
|
238
|
+
* - GE Discovery NM630
|
|
239
|
+
- D-LEHR
|
|
240
|
+
- Low Energy High Resolution
|
|
241
|
+
* - GE Discovery NM630
|
|
242
|
+
- D-MEGP
|
|
243
|
+
- Medium Energy General Purpose
|
|
244
|
+
* - GE Discovery NM630
|
|
245
|
+
- D-HEGP
|
|
246
|
+
- High Energy General Purpose
|
|
247
|
+
* - GE Discovery NM630
|
|
248
|
+
- D-UHEGP
|
|
249
|
+
- Ultra High Energy General Purpose
|
|
250
|
+
* - PR = PRISM 2000/3000 SYSTEMS
|
|
251
|
+
- PR-HRFB
|
|
252
|
+
- High Resolution Fan-Beam
|
|
253
|
+
* - PR = PRISM 2000/3000 SYSTEMS
|
|
254
|
+
- PR-URFB
|
|
255
|
+
- UltraHigh Resol Fan-Beam
|
|
256
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
257
|
+
- SI-LEAP
|
|
258
|
+
- Low-Energy All Purpose
|
|
259
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
260
|
+
- SI-LEHR
|
|
261
|
+
- Low-Energy High Resolution
|
|
262
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
263
|
+
- SI-ME
|
|
264
|
+
- Medium Energy Parallel
|
|
265
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
266
|
+
- SI-ME+
|
|
267
|
+
- Medium Energy Parallel E.CAM+
|
|
268
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
269
|
+
- SI-HE
|
|
270
|
+
- High Energy Parallel
|
|
271
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
272
|
+
- SI-HEGP
|
|
273
|
+
- High Energy Parallel
|
|
274
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
275
|
+
- SI-511
|
|
276
|
+
- 511 keV Collimator
|
|
277
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
278
|
+
- SI-512
|
|
279
|
+
- 511 keV Collimator
|
|
280
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
281
|
+
- SI-THER
|
|
282
|
+
- Therapy Collimator
|
|
283
|
+
* - SI = SIEMENS MEDICAL SYSTEM
|
|
284
|
+
- SI-DELU
|
|
285
|
+
- Test
|
|
286
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
287
|
+
- SE-LEHS
|
|
288
|
+
- Low-Energy High Sensitivity
|
|
289
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
290
|
+
- SE-LEAP
|
|
291
|
+
- Low-Energy All Purpose
|
|
292
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
293
|
+
- SE-LEHR
|
|
294
|
+
- Low-Energy High Resolution
|
|
295
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
296
|
+
- SE-LEUR
|
|
297
|
+
- Low-Energy Ultra-High Resolution
|
|
298
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
299
|
+
- SE-LEFB
|
|
300
|
+
- Low-Energy Fan-Beam
|
|
301
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
302
|
+
- SE-ME
|
|
303
|
+
- Medium Energy
|
|
304
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
305
|
+
- SE-HE
|
|
306
|
+
- High Energy
|
|
307
|
+
* - SE = E.CAM SIEMENS MEDICAL SYSTEM
|
|
308
|
+
- SE-UHE
|
|
309
|
+
- Ultra-High Energy
|
|
310
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
311
|
+
- SY-LEAP
|
|
312
|
+
- Low-Energy All Purpose
|
|
313
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
314
|
+
- SY-LEHR
|
|
315
|
+
- Low-Energy High Resolution
|
|
316
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
317
|
+
- SY-ME
|
|
318
|
+
- Medium Energy Parallel
|
|
319
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
320
|
+
- SY-HE
|
|
321
|
+
- High Energy Parallel
|
|
322
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
323
|
+
- SY-HE1
|
|
324
|
+
- High Energy Parallel
|
|
325
|
+
* - SY = SIEMENS MEDICAL SYSTEM SYMBIA COLLIMATORS
|
|
326
|
+
- SY-HE2
|
|
327
|
+
- High Energy Parallel
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
************************
|
|
2
|
+
Data Tables
|
|
3
|
+
************************
|
|
4
|
+
PyTomography requires using a variety of data sources to obtain parameters required for tasks like PSF modeling in SPECT and converting CT data to attenuation maps.
|
|
5
|
+
|
|
6
|
+
.. grid:: 1 2 2 2
|
|
7
|
+
:gutter: 2
|
|
8
|
+
|
|
9
|
+
.. grid-item-card:: NIST
|
|
10
|
+
:link: https://www.nist.gov/pml/x-ray-mass-attenuation-coefficients
|
|
11
|
+
:link-alt: NIST
|
|
12
|
+
:text-align: center
|
|
13
|
+
|
|
14
|
+
:material-outlined:`biotech;8em;sd-text-secondary`
|
|
15
|
+
|
|
16
|
+
PyTomography uses data from the national institute of standards and technology (NIST) to get attenuation coefficients for different elemental media and compounds.
|
|
17
|
+
|
|
18
|
+
.. grid-item-card:: SPECT Collimator Data
|
|
19
|
+
:link: collimator-data-index
|
|
20
|
+
:link-type: ref
|
|
21
|
+
:link-alt: Tutorials
|
|
22
|
+
:text-align: center
|
|
23
|
+
|
|
24
|
+
:material-outlined:`apps;8em;sd-text-secondary`
|
|
25
|
+
|
|
26
|
+
Link to the available collimator codes and options for SPECT reconstruction in PyTomography.
|
|
27
|
+
|
|
28
|
+
.. toctree::
|
|
29
|
+
:maxdepth: 1
|
|
30
|
+
:hidden:
|
|
31
|
+
|
|
32
|
+
data_tables/collimator_data
|
|
33
|
+
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
.. _gallery-index:
|
|
2
|
+
|
|
3
|
+
====================
|
|
4
|
+
Gallery
|
|
5
|
+
====================
|
|
6
|
+
|
|
7
|
+
.. note::
|
|
8
|
+
Let us know on `Discourse <https://pytomography.discourse.group/>`_ if you have any images you would like to share! We'll happily give a shout out to any associated papers in the caption.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
++++++++++++++++++++
|
|
12
|
+
Figure 1: Lu-177 SPECT
|
|
13
|
+
++++++++++++++++++++
|
|
14
|
+
|
|
15
|
+
This data corresponds to a patient receiving Lu-177-PSMA-617 treatment. The images were reconstructed using the MIM (left) and PyTomography with four available reconstruction algorithms. The noise in the liver, as well as the total counts in selected ROIs are shown. The bottom images show axial slices of the region given by the blue arrow, indicative of bone metastasis in the sternum.
|
|
16
|
+
|
|
17
|
+
.. image:: images/figure2.jpg
|
|
18
|
+
:width: 800
|
|
19
|
+
:alt: Alternative text
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
++++++++++++++++++++
|
|
23
|
+
Figure 2: Ac-225 SPECT
|
|
24
|
+
++++++++++++++++++++
|
|
25
|
+
|
|
26
|
+
*Left image not reconstructed with PyTomography*. The data here corresponds to a patient receiving Ac-225-PSMA-617 treatment; an associated PET scan is shown on the left. The right shows SPECT reconstruction at four different time points after initial injection. The Ac-225 data was reconstructed using advanced PSF modeling capabilities of the `SPECPSFToolbox <https://spectpsftoolbox.readthedocs.io/en/latest/>`_. Bottom plots show time activity curves in the three lesion ROIs specified on the PET image; uncertainties were obtained using the uncertainty estimation capabilities of PyTomography.
|
|
27
|
+
|
|
28
|
+
.. image:: images/ac225_patient_dual.jpg
|
|
29
|
+
:width: 600
|
|
30
|
+
:alt: Alternative text
|
|
31
|
+
|
|
32
|
+
++++++++++++++++++++
|
|
33
|
+
Figure 3: PET with Deep Image Prior
|
|
34
|
+
++++++++++++++++++++
|
|
35
|
+
|
|
36
|
+
Reconstruction of GATE Monte Carlo PET data of a brain phantom using PyTomography. Shown are the ground truth PET/MR images, as well as a high count reconstruction with OSEM, a low count reconstruction with OSEM, and a low count reconstruction with the Deep Image Prior reconstruction algorithm. PyTomography was used for the entire process: list mode, time of flight (TOF) reconstruction, including random and TOF scatter estimation, as well as the development and integration of the neural network.
|
|
37
|
+
|
|
38
|
+
.. image:: images/figure4_left_hoz.jpg
|
|
39
|
+
:width: 800
|
|
40
|
+
:alt: Alternative text
|
|
41
|
+
|
|
42
|
+
++++++++++++++++++++
|
|
43
|
+
Figure 4: Clinical CT Reconstruction
|
|
44
|
+
++++++++++++++++++++
|
|
45
|
+
|
|
46
|
+
Reconstruction of clinical CT data (in DICOM-CT-PD format) from a 3rd generation system. Yhe data was reconstructed using OS-SART for 3 iterations with 40 subsets.
|
|
47
|
+
|
|
48
|
+
.. image:: images/CT_slice.png
|
|
49
|
+
:width: 500
|
|
50
|
+
:alt: Alternative text
|
|
51
|
+
|
|
52
|
+
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
************************
|
|
2
|
+
PyTomography
|
|
3
|
+
************************
|
|
4
|
+
|
|
5
|
+
**Useful links:** `Installation <install.html>`_ | `Tutorials <usage.html>`_ | `API Reference <autoapi/index.html>`_
|
|
6
|
+
|
|
7
|
+
``PyTomography`` is a python library for tomographic reconstruction of medical imaging data. It provides a modularized framework for the construction and development of system matrices, likelihoods, and reconstruction algorithms.
|
|
8
|
+
|
|
9
|
+
.. note::
|
|
10
|
+
If you use PyTomography in your research, please cite `the corresponding research paper <https://arxiv.org/abs/2309.01977>`_.
|
|
11
|
+
|
|
12
|
+
++++++++++++++++
|
|
13
|
+
Getting Started
|
|
14
|
+
++++++++++++++++
|
|
15
|
+
|
|
16
|
+
.. grid:: 1 2 3 3
|
|
17
|
+
:gutter: 2
|
|
18
|
+
|
|
19
|
+
.. grid-item-card:: Tutorials
|
|
20
|
+
:link: tutorial-index
|
|
21
|
+
:link-type: ref
|
|
22
|
+
:link-alt: Tutorials
|
|
23
|
+
:text-align: center
|
|
24
|
+
|
|
25
|
+
:material-outlined:`accessibility_new;8em;sd-text-secondary`
|
|
26
|
+
|
|
27
|
+
**New users start here!**
|
|
28
|
+
Jupyter notebooks demonstrating how to reconstruct data from various file formats.
|
|
29
|
+
|
|
30
|
+
.. grid-item-card:: Image Gallery
|
|
31
|
+
:link: gallery-index
|
|
32
|
+
:link-type: ref
|
|
33
|
+
:link-alt: Tutorials
|
|
34
|
+
:text-align: center
|
|
35
|
+
|
|
36
|
+
:material-outlined:`photo;8em;sd-text-secondary`
|
|
37
|
+
|
|
38
|
+
View some sample images reconstructed with PyTomography!
|
|
39
|
+
|
|
40
|
+
.. grid-item-card:: Get Help
|
|
41
|
+
:text-align: center
|
|
42
|
+
|
|
43
|
+
:material-outlined:`live_help;8em;sd-text-secondary`
|
|
44
|
+
|
|
45
|
+
.. button-link:: https://github.com/qurit/PyTomography/issues
|
|
46
|
+
:shadow:
|
|
47
|
+
:expand:
|
|
48
|
+
:color: warning
|
|
49
|
+
|
|
50
|
+
**Report an issue**
|
|
51
|
+
|
|
52
|
+
.. button-link:: https://pytomography.discourse.group/
|
|
53
|
+
:shadow:
|
|
54
|
+
:expand:
|
|
55
|
+
:color: warning
|
|
56
|
+
|
|
57
|
+
**Post on Discourse**
|
|
58
|
+
|
|
59
|
+
.. toctree::
|
|
60
|
+
:maxdepth: 2
|
|
61
|
+
:hidden:
|
|
62
|
+
|
|
63
|
+
install
|
|
64
|
+
usage/usage
|
|
65
|
+
gallery
|
|
66
|
+
external_data
|
|
67
|
+
developers_guide
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
****************
|
|
2
|
+
Installation
|
|
3
|
+
****************
|
|
4
|
+
|
|
5
|
+
We recommend creating a python environment that is isolated from your system python installation. This can be done using `conda <https://docs.conda.io/en/latest/>`_, and creating a virtual environment via:
|
|
6
|
+
|
|
7
|
+
.. code-block:: bash
|
|
8
|
+
|
|
9
|
+
conda create -n pytomography_env python=3.9
|
|
10
|
+
conda activate pytomography_env
|
|
11
|
+
|
|
12
|
+
Once the environment is activated, you can install PyTomography via pip:
|
|
13
|
+
|
|
14
|
+
.. code-block:: bash
|
|
15
|
+
|
|
16
|
+
pip install pytomography
|
|
17
|
+
|
|
18
|
+
+++++++++++++++
|
|
19
|
+
Additional Requirements (PET / CT)
|
|
20
|
+
+++++++++++++++
|
|
21
|
+
|
|
22
|
+
PET and CT reconstruction require use of `parallelproj <https://parallelproj.readthedocs.io/en/stable/>`_. Parallelproj can be installed in the same conda environment as PyTomography via:
|
|
23
|
+
|
|
24
|
+
.. code-block:: bash
|
|
25
|
+
|
|
26
|
+
conda activate pytomography_env
|
|
27
|
+
conda install -c conda-forge libparallelproj parallelproj cupy
|
|
28
|
+
|
|
29
|
+
Note that you must include the ``cupy`` package in the installation command, as it is required to run operations on GPU in parallelproj.
|
|
Binary file
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from pytomography.io.SPECT import simind
|
|
3
|
+
|
|
4
|
+
path = '/disk1/pytomography_tutorial_data/simind_tutorial/'
|
|
5
|
+
|
|
6
|
+
# SIMIND simulation files for simulation of only a liver region
|
|
7
|
+
photopeak_path_liver = os.path.join(path, 'multi_projections', 'liver', 'photopeak.h00')
|
|
8
|
+
upperscatter_path_liver = os.path.join(path, 'multi_projections', 'liver', 'lowerscatter.h00')
|
|
9
|
+
lowerscatter_path_liver = os.path.join(path, 'multi_projections', 'liver', 'upperscatter.h00')
|
|
10
|
+
|
|
11
|
+
# SIMIND simulation files for simulation of all anatomical regions
|
|
12
|
+
organs = ['bkg', 'liver', 'l_lung', 'r_lung', 'l_kidney', 'r_kidney','salivary', 'bladder']
|
|
13
|
+
headerfiles = [os.path.join(path, 'multi_projections', organ, 'photopeak.h00') for organ in organs]
|
|
14
|
+
headerfiles_lower = [os.path.join(path, 'multi_projections', organ, 'lowerscatter.h00') for organ in organs]
|
|
15
|
+
headerfiles_upper = [os.path.join(path, 'multi_projections', organ, 'upperscatter.h00') for organ in organs]
|
|
16
|
+
|
|
17
|
+
# 1. To load multiple energy windows for one region, we provide the paths as a list
|
|
18
|
+
photopeak_liver = simind.get_projections([photopeak_path_liver, upperscatter_path_liver, lowerscatter_path_liver])
|
|
19
|
+
print(photopeak_liver.shape)
|
|
20
|
+
|
|
21
|
+
# 2. To load a single energy window and combine multiple regions, we provide the list as [[<list>]]. This will scale each SIMIND set of projections by the corresponding activities (combining projections together):
|
|
22
|
+
activities = [2500, 450, 7, 7, 100, 100, 20, 90] # MBq
|
|
23
|
+
photopeak_allregions = simind.get_projections([headerfiles], weights=activities)
|
|
24
|
+
print(photopeak_allregions.shape)
|
|
25
|
+
|
|
26
|
+
# 3. To load multiple energy windows for multiple regions, we provide the list as [[<list>], [<list>], [<list>]]:
|
|
27
|
+
activities = [2500, 450, 7, 7, 100, 100, 20, 90] # MBq
|
|
28
|
+
projections_allregions = simind.get_projections([headerfiles, headerfiles_lower, headerfiles_upper], weights=activities)
|
|
29
|
+
print(projections_allregions.shape)
|