pytomography 3.1.4__tar.gz → 3.2.2__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.1.4 → pytomography-3.2.2}/PKG-INFO +2 -1
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/index.rst +1 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/dicom/index.rst +12 -6
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/index.rst +11 -5
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/simind/index.rst +1 -1
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/likelihoods/index.rst +4 -4
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/likelihoods/likelihood/index.rst +2 -2
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/likelihoods/mse_objective/index.rst +2 -2
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/PET/index.rst +1 -1
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/PET/petlm_system_matrix/index.rst +1 -1
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/SPECT/index.rst +5 -11
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/SPECT/psf/index.rst +8 -35
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/index.rst +1 -1
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/scatter/index.rst +23 -1
- pytomography-3.2.2/docs/source/autoapi/test_multi_bed_recon/index.rst +44 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/conf.py +13 -1
- pytomography-3.2.2/docs/source/notebooks/CT_slice.png +0 -0
- pytomography-3.2.2/docs/source/notebooks/run_all_notebooks.py +29 -0
- pytomography-3.2.2/docs/source/notebooks/t_CT_GEN3.ipynb +478 -0
- pytomography-3.2.2/docs/source/notebooks/t_GE_HDF5.ipynb +572 -0
- pytomography-3.2.2/docs/source/notebooks/t_PETGATE_DIP.ipynb +1133 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_PETGATE_scat_lm.ipynb +181 -181
- pytomography-3.2.2/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +1056 -0
- pytomography-3.2.2/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +1547 -0
- pytomography-3.2.2/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +1201 -0
- pytomography-3.2.2/docs/source/notebooks/t_ac225_dicom_recon.ipynb +614 -0
- pytomography-3.2.2/docs/source/notebooks/t_ac225_simind_recon.ipynb +526 -0
- pytomography-3.2.2/docs/source/notebooks/t_dicomdata.ipynb +1344 -0
- pytomography-3.2.2/docs/source/notebooks/t_dicommultibed.ipynb +945 -0
- pytomography-3.2.2/docs/source/notebooks/t_examplesystemmatrix.ipynb +2650 -0
- pytomography-3.2.2/docs/source/notebooks/t_siminddata.ipynb +1957 -0
- pytomography-3.2.2/docs/source/notebooks/t_uncertainty_spect.ipynb +955 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/usage.md +9 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/pyproject.toml +3 -2
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/algorithms/preconditioned_gradient_ascent.py +3 -6
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/SPECT/dicom.py +7 -3
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/SPECT/shared.py +1 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/SPECT/simind.py +14 -3
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/likelihoods/likelihood.py +3 -2
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/priors/nearest_neighbour.py +2 -4
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/PET/petlm_system_matrix.py +18 -13
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/SPECT/spect_system_matrix.py +4 -2
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/system_matrix.py +3 -3
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/SPECT/psf.py +16 -23
- pytomography-3.1.4/docs/source/notebooks/run_all_notebooks.py +0 -27
- pytomography-3.1.4/docs/source/notebooks/t_CT_GEN3.ipynb +0 -468
- pytomography-3.1.4/docs/source/notebooks/t_GE_HDF5.ipynb +0 -572
- pytomography-3.1.4/docs/source/notebooks/t_PETGATE_DIP.ipynb +0 -1133
- pytomography-3.1.4/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +0 -1056
- pytomography-3.1.4/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +0 -1547
- pytomography-3.1.4/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +0 -1097
- pytomography-3.1.4/docs/source/notebooks/t_dicomdata.ipynb +0 -1344
- pytomography-3.1.4/docs/source/notebooks/t_dicommultibed.ipynb +0 -945
- pytomography-3.1.4/docs/source/notebooks/t_examplesystemmatrix.ipynb +0 -2650
- pytomography-3.1.4/docs/source/notebooks/t_siminddata.ipynb +0 -1957
- pytomography-3.1.4/docs/source/notebooks/t_uncertainty_spect.ipynb +0 -955
- {pytomography-3.1.4 → pytomography-3.2.2}/.github/workflows/publish-to-test-pypi.yml +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/.gitignore +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/.readthedocs.yaml +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/LICENSE +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/README.md +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/Makefile +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/make.bat +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/attribute.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/class.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/data.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/exception.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/function.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/method.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/module.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/package.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/_templates/autoapi/python/property.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/algorithms/dip_recon/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/algorithms/fbp/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/algorithms/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/algorithms/preconditioned_gradient_ascent/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/callbacks/callback/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/callbacks/data_saving/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/callbacks/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/CT/dicom_ct_pd/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/CT/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/clinical/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/gate/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/petsird/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/_binary/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/_dtypes/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/_ndjson/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/binary/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/ndjson/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/protocols/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/types/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/prd/yardl_types/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/PET/shared/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/attenuation_map/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/shared/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/shared/dicom/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/shared/dicom_creation/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/shared/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/shared/interfile/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/likelihoods/poisson_log_likelihood/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/CT/ct_gen3_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/CT/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/PET/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/PET/pet_sinogram_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/PET/pet_tof_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/PET/petlm_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/SPECT/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/SPECT/spect_metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/metadata/metadata/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/priors/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/priors/nearest_neighbour/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/priors/prior/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/CT/ct_gen3_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/CT/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/PET/pet_sinogram_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/SPECT/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/SPECT/spect_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/shared/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/shared/kem_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/shared/motion_correction_system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/system_matrix/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/SPECT/attenuation/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/shared/filters/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/shared/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/shared/kem/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/shared/motion/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/shared/spatial/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/transforms/transform/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/fourier_filters/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/misc/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/nist_data/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/spatial/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/sss/index.rst +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/developers_guide.md +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/external_data.md +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/PT1.png +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/coordinate_conventions.png +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/emission.png +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/example_scanner_sm.png +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/figure4.jpg +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/figure5.jpg +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/images/pytomo_front_title.png +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/index.md +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/conventions.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/script_to_generate_eta_for_petsird.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_CT_microct.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_PETGATE_LM.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_PETGATE_SINO.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_PETGATE_scat_lm copy.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_PETSIRD.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_fbp.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/docs/source/notebooks/t_quantitative.ipynb +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/algorithms/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/algorithms/dip_recon.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/algorithms/fbp.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/callbacks/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/callbacks/callback.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/callbacks/data_saving.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/adipose.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/air.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/aluminum.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/bonecortical.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/boneequivplastic.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/breast.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/lead.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/lungtissue.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/muscle.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/tissueequivplastic.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/tungsten.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/NIST_attenuation_data/water.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/collim.col +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/ct_table.csv +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/data/pet_scanner_info.txt +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/CT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/CT/dicom_ct_pd.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/clinical.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/gate.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/petsird.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/_binary.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/_dtypes.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/_ndjson.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/binary.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/ndjson.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/protocols.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/types.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/prd/yardl_types.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/PET/shared.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/SPECT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/SPECT/attenuation_map.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/shared/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/shared/dicom.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/shared/dicom_creation.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/io/shared/interfile.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/likelihoods/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/likelihoods/mse_objective.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/likelihoods/poisson_log_likelihood.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/CT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/CT/ct_gen3_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/PET/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/PET/pet_sinogram_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/PET/pet_tof_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/PET/petlm_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/SPECT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/SPECT/spect_metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/metadata/metadata.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/priors/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/priors/prior.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/CT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/CT/ct_gen3_system_matrix.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/PET/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/PET/pet_sinogram_system_matrix.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/SPECT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/shared/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/shared/kem_system_matrix.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/projectors/shared/motion_correction_system_matrix.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/tests/test_multi_bed_recon.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/SPECT/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/SPECT/attenuation.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/shared/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/shared/filters.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/shared/kem.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/shared/motion.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/shared/spatial.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/transforms/transform.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/__init__.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/fourier_filters.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/misc.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/nist_data.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/scatter.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/spatial.py +0 -0
- {pytomography-3.1.4 → pytomography-3.2.2}/src/pytomography/utils/sss.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pytomography
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.2.2
|
|
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,7 @@ 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-design; extra == 'doc'
|
|
33
34
|
Requires-Dist: sphinx~=6.2.1; extra == 'doc'
|
|
34
35
|
Requires-Dist: toml; extra == 'doc'
|
|
35
36
|
Description-Content-Type: text/markdown
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/dicom/index.rst
RENAMED
|
@@ -85,7 +85,7 @@ Functions
|
|
|
85
85
|
:rtype: float
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
.. py:function:: get_energy_window_scatter_estimate(file, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, return_scatter_variance_estimate = False)
|
|
88
|
+
.. py:function:: get_energy_window_scatter_estimate(file, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, proj_meta=None, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3, return_scatter_variance_estimate = False)
|
|
89
89
|
|
|
90
90
|
Gets an estimate of scatter projection data from a DICOM file using either the dual energy window (`index_upper=None`) or triple energy window method.
|
|
91
91
|
|
|
@@ -108,7 +108,7 @@ Functions
|
|
|
108
108
|
:rtype: torch.Tensor[Ltheta,Lr,Lz]
|
|
109
109
|
|
|
110
110
|
|
|
111
|
-
.. py:function:: get_energy_window_scatter_estimate_projections(file, projections, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, return_scatter_variance_estimate = False)
|
|
111
|
+
.. py:function:: get_energy_window_scatter_estimate_projections(file, projections, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, proj_meta=None, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3, return_scatter_variance_estimate = False)
|
|
112
112
|
|
|
113
113
|
Gets an estimate of scatter projection data from a DICOM file using either the dual energy window (`index_upper=None`) or triple energy window method. This is seperate from ``get_energy_window_scatter_estimate`` as it allows a user to input projecitons that are already loaded/modified. This is useful for when projection data gets mixed for reconstructing multiple bed positions.
|
|
114
114
|
|
|
@@ -144,7 +144,7 @@ Functions
|
|
|
144
144
|
:rtype: torch.Tensor
|
|
145
145
|
|
|
146
146
|
|
|
147
|
-
.. py:function:: get_psfmeta_from_scanner_params(collimator_name, energy_keV, min_sigmas = 3, material = 'lead', intrinsic_resolution = 0)
|
|
147
|
+
.. py:function:: get_psfmeta_from_scanner_params(collimator_name, energy_keV, min_sigmas = 3, material = 'lead', intrinsic_resolution = 0, intrinsic_resolution_140keV = None)
|
|
148
148
|
|
|
149
149
|
Obtains SPECT PSF metadata given a unique collimator code and photopeak energy of radionuclide. For more information on collimator codes, see the "external data" section of the readthedocs page.
|
|
150
150
|
|
|
@@ -156,14 +156,16 @@ Functions
|
|
|
156
156
|
:type min_sigmas: float
|
|
157
157
|
:param material: Material of the collimator.
|
|
158
158
|
:type material: str
|
|
159
|
-
:param intrinsic_resolution: Intrinsic resolution (FWHM) of the scintillator crystals. Defaults to 0.
|
|
159
|
+
:param intrinsic_resolution: Intrinsic resolution (FWHM) of the scintillator crystals. Note that most scanners provide the intrinsic resolution at 140keV only; if you only have access to this, you should use the ``intrinsic_resolution_140keV`` argument of this function. Defaults to 0.
|
|
160
160
|
:type intrinsic_resolution: float
|
|
161
|
+
:param intrinsic_resolution_140keV: Intrinsic resolution (FWHM) of the scintillator crystals at an energy of 140keV. The true intrinsic resolution is calculated assuming the resolution is proportional to E^(-1/2). If provided, then ``intrinsic_resolution`` is ignored. Defaults to None.
|
|
162
|
+
:type intrinsic_resolution_140keV: float | None
|
|
161
163
|
|
|
162
164
|
:returns: PSF metadata.
|
|
163
165
|
:rtype: SPECTPSFMeta
|
|
164
166
|
|
|
165
167
|
|
|
166
|
-
.. py:function:: CT_to_mumap(CT, files_CT, file_NM, index_peak = 0, technique = 'from_table')
|
|
168
|
+
.. py:function:: CT_to_mumap(CT, files_CT, file_NM, index_peak = 0, technique = 'from_table', E_SPECT = None)
|
|
167
169
|
|
|
168
170
|
Converts a CT image to a mu-map given SPECT projection data. The CT data must be aligned with the projection data already; this is a helper function for ``get_attenuation_map_from_CT_slices``.
|
|
169
171
|
|
|
@@ -177,6 +179,8 @@ Functions
|
|
|
177
179
|
:type index_peak: int, optional
|
|
178
180
|
:param technique: Technique to convert HU to attenuation coefficients. The default, 'from_table', uses a table of coefficients for bilinear curves obtained for a variety of common radionuclides. The technique 'from_cortical_bone_fit' looks for a cortical bone peak in the scan and uses that to obtain the bilinear coefficients. For phantom scans where the attenuation coefficient is always significantly less than bone, the cortical bone technique will still work, since the first part of the bilinear curve (in the air to water range) does not depend on the cortical bone fit. Alternatively, one can provide an arbitrary function here which takes in a 3D scan with units of HU and converts to mu.
|
|
179
181
|
:type technique: str, optional
|
|
182
|
+
:param E_SPECT: Energy of the photopeak in SPECT scan; this overrides the energy in the DICOM file, so should only be used if the DICOM file is incorrect. If None, then the energy is obtained from the DICOM file.
|
|
183
|
+
:type E_SPECT: float
|
|
180
184
|
|
|
181
185
|
:returns: Attenuation map in units of 1/cm
|
|
182
186
|
:rtype: torch.tensor
|
|
@@ -216,7 +220,7 @@ Functions
|
|
|
216
220
|
:rtype: function
|
|
217
221
|
|
|
218
222
|
|
|
219
|
-
.. py:function:: get_attenuation_map_from_CT_slices(files_CT, file_NM = None, index_peak = 0, mode = 'constant', HU2mu_technique = 'from_table')
|
|
223
|
+
.. py:function:: get_attenuation_map_from_CT_slices(files_CT, file_NM = None, index_peak = 0, mode = 'constant', HU2mu_technique = 'from_table', E_SPECT = None)
|
|
220
224
|
|
|
221
225
|
Converts a sequence of DICOM CT files (corresponding to a single scan) into a torch.Tensor object usable as an attenuation map in PyTomography.
|
|
222
226
|
|
|
@@ -230,6 +234,8 @@ Functions
|
|
|
230
234
|
:type mode: str
|
|
231
235
|
:param HU2mu_technique: Technique to convert HU to attenuation coefficients. The default, 'from_table', uses a table of coefficients for bilinear curves obtained for a variety of common radionuclides. The technique 'from_cortical_bone_fit' looks for a cortical bone peak in the scan and uses that to obtain the bilinear coefficients. For phantom scans where the attenuation coefficient is always significantly less than bone, the cortical bone technique will still work, since the first part of the bilinear curve (in the air to water range) does not depend on the cortical bone fit. Alternatively, one can provide an arbitrary function here which takes in a 3D scan with units of HU and converts to mu.
|
|
232
236
|
:type HU2mu_technique: str
|
|
237
|
+
:param E_SPECT: Energy of the photopeak in SPECT scan; this overrides the energy in the DICOM file, so should only be used if the DICOM file is incorrect. Defaults to None.
|
|
238
|
+
:type E_SPECT: float
|
|
233
239
|
|
|
234
240
|
:returns: Tensor of shape [Lx, Ly, Lz] corresponding to attenuation map.
|
|
235
241
|
:rtype: torch.Tensor
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/index.rst
RENAMED
|
@@ -78,7 +78,7 @@ Functions
|
|
|
78
78
|
:rtype: torch.Tensor
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
.. py:function:: get_attenuation_map_from_CT_slices(files_CT, file_NM = None, index_peak = 0, mode = 'constant', HU2mu_technique = 'from_table')
|
|
81
|
+
.. py:function:: get_attenuation_map_from_CT_slices(files_CT, file_NM = None, index_peak = 0, mode = 'constant', HU2mu_technique = 'from_table', E_SPECT = None)
|
|
82
82
|
|
|
83
83
|
Converts a sequence of DICOM CT files (corresponding to a single scan) into a torch.Tensor object usable as an attenuation map in PyTomography.
|
|
84
84
|
|
|
@@ -92,12 +92,14 @@ Functions
|
|
|
92
92
|
:type mode: str
|
|
93
93
|
:param HU2mu_technique: Technique to convert HU to attenuation coefficients. The default, 'from_table', uses a table of coefficients for bilinear curves obtained for a variety of common radionuclides. The technique 'from_cortical_bone_fit' looks for a cortical bone peak in the scan and uses that to obtain the bilinear coefficients. For phantom scans where the attenuation coefficient is always significantly less than bone, the cortical bone technique will still work, since the first part of the bilinear curve (in the air to water range) does not depend on the cortical bone fit. Alternatively, one can provide an arbitrary function here which takes in a 3D scan with units of HU and converts to mu.
|
|
94
94
|
:type HU2mu_technique: str
|
|
95
|
+
:param E_SPECT: Energy of the photopeak in SPECT scan; this overrides the energy in the DICOM file, so should only be used if the DICOM file is incorrect. Defaults to None.
|
|
96
|
+
:type E_SPECT: float
|
|
95
97
|
|
|
96
98
|
:returns: Tensor of shape [Lx, Ly, Lz] corresponding to attenuation map.
|
|
97
99
|
:rtype: torch.Tensor
|
|
98
100
|
|
|
99
101
|
|
|
100
|
-
.. py:function:: get_energy_window_scatter_estimate(file, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, return_scatter_variance_estimate = False)
|
|
102
|
+
.. py:function:: get_energy_window_scatter_estimate(file, index_peak, index_lower, index_upper = None, weighting_lower = 0.5, weighting_upper = 0.5, proj_meta=None, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3, return_scatter_variance_estimate = False)
|
|
101
103
|
|
|
102
104
|
Gets an estimate of scatter projection data from a DICOM file using either the dual energy window (`index_upper=None`) or triple energy window method.
|
|
103
105
|
|
|
@@ -120,7 +122,7 @@ Functions
|
|
|
120
122
|
:rtype: torch.Tensor[Ltheta,Lr,Lz]
|
|
121
123
|
|
|
122
124
|
|
|
123
|
-
.. py:function:: get_psfmeta_from_scanner_params(collimator_name, energy_keV, min_sigmas = 3, material = 'lead', intrinsic_resolution = 0)
|
|
125
|
+
.. py:function:: get_psfmeta_from_scanner_params(collimator_name, energy_keV, min_sigmas = 3, material = 'lead', intrinsic_resolution = 0, intrinsic_resolution_140keV = None)
|
|
124
126
|
|
|
125
127
|
Obtains SPECT PSF metadata given a unique collimator code and photopeak energy of radionuclide. For more information on collimator codes, see the "external data" section of the readthedocs page.
|
|
126
128
|
|
|
@@ -132,14 +134,16 @@ Functions
|
|
|
132
134
|
:type min_sigmas: float
|
|
133
135
|
:param material: Material of the collimator.
|
|
134
136
|
:type material: str
|
|
135
|
-
:param intrinsic_resolution: Intrinsic resolution (FWHM) of the scintillator crystals. Defaults to 0.
|
|
137
|
+
:param intrinsic_resolution: Intrinsic resolution (FWHM) of the scintillator crystals. Note that most scanners provide the intrinsic resolution at 140keV only; if you only have access to this, you should use the ``intrinsic_resolution_140keV`` argument of this function. Defaults to 0.
|
|
136
138
|
:type intrinsic_resolution: float
|
|
139
|
+
:param intrinsic_resolution_140keV: Intrinsic resolution (FWHM) of the scintillator crystals at an energy of 140keV. The true intrinsic resolution is calculated assuming the resolution is proportional to E^(-1/2). If provided, then ``intrinsic_resolution`` is ignored. Defaults to None.
|
|
140
|
+
:type intrinsic_resolution_140keV: float | None
|
|
137
141
|
|
|
138
142
|
:returns: PSF metadata.
|
|
139
143
|
:rtype: SPECTPSFMeta
|
|
140
144
|
|
|
141
145
|
|
|
142
|
-
.. py:function:: CT_to_mumap(CT, files_CT, file_NM, index_peak = 0, technique = 'from_table')
|
|
146
|
+
.. py:function:: CT_to_mumap(CT, files_CT, file_NM, index_peak = 0, technique = 'from_table', E_SPECT = None)
|
|
143
147
|
|
|
144
148
|
Converts a CT image to a mu-map given SPECT projection data. The CT data must be aligned with the projection data already; this is a helper function for ``get_attenuation_map_from_CT_slices``.
|
|
145
149
|
|
|
@@ -153,6 +157,8 @@ Functions
|
|
|
153
157
|
:type index_peak: int, optional
|
|
154
158
|
:param technique: Technique to convert HU to attenuation coefficients. The default, 'from_table', uses a table of coefficients for bilinear curves obtained for a variety of common radionuclides. The technique 'from_cortical_bone_fit' looks for a cortical bone peak in the scan and uses that to obtain the bilinear coefficients. For phantom scans where the attenuation coefficient is always significantly less than bone, the cortical bone technique will still work, since the first part of the bilinear curve (in the air to water range) does not depend on the cortical bone fit. Alternatively, one can provide an arbitrary function here which takes in a 3D scan with units of HU and converts to mu.
|
|
155
159
|
:type technique: str, optional
|
|
160
|
+
:param E_SPECT: Energy of the photopeak in SPECT scan; this overrides the energy in the DICOM file, so should only be used if the DICOM file is incorrect. If None, then the energy is obtained from the DICOM file.
|
|
161
|
+
:type E_SPECT: float
|
|
156
162
|
|
|
157
163
|
:returns: Attenuation map in units of 1/cm
|
|
158
164
|
:rtype: torch.tensor
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/io/SPECT/simind/index.rst
RENAMED
|
@@ -111,7 +111,7 @@ Attributes
|
|
|
111
111
|
:rtype: torch.Tensor[batch_size, Lx, Ly, Lz]
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
.. py:function:: get_psfmeta_from_header(headerfile)
|
|
114
|
+
.. py:function:: get_psfmeta_from_header(headerfile, min_sigmas=3)
|
|
115
115
|
|
|
116
116
|
Obtains the SPECTPSFMeta data corresponding to a SIMIND simulation scan from the headerfile
|
|
117
117
|
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/likelihoods/index.rst
RENAMED
|
@@ -74,8 +74,8 @@ Classes
|
|
|
74
74
|
:type projections: torch.Tensor | None
|
|
75
75
|
:param additive_term: Additional term added after forward projection by the system matrix. This term might include things like scatter and randoms. Defaults to None.
|
|
76
76
|
:type additive_term: torch.Tensor, optional
|
|
77
|
-
:param additive_term_variance_estimate:
|
|
78
|
-
:type additive_term_variance_estimate:
|
|
77
|
+
:param additive_term_variance_estimate: Operator for variance estimate of additive term. If none, then uncertainty estimation does not include contribution from the additive term. Defaults to None.
|
|
78
|
+
:type additive_term_variance_estimate: Callable, optional
|
|
79
79
|
|
|
80
80
|
.. py:method:: compute_gradient(object, subset_idx = None, norm_BP_subset_method = 'subset_specific')
|
|
81
81
|
|
|
@@ -177,8 +177,8 @@ Classes
|
|
|
177
177
|
:type projections: torch.Tensor | None
|
|
178
178
|
:param additive_term: Additional term added after forward projection by the system matrix. This term might include things like scatter and randoms. Defaults to None.
|
|
179
179
|
:type additive_term: torch.Tensor, optional
|
|
180
|
-
:param additive_term_variance_estimate:
|
|
181
|
-
:type additive_term_variance_estimate:
|
|
180
|
+
:param additive_term_variance_estimate: Operator for variance estimate of additive term. If none, then uncertainty estimation does not include contribution from the additive term. Defaults to None.
|
|
181
|
+
:type additive_term_variance_estimate: Callable, optional
|
|
182
182
|
|
|
183
183
|
.. py:method:: _set_n_subsets(n_subsets)
|
|
184
184
|
|
|
@@ -27,8 +27,8 @@ Classes
|
|
|
27
27
|
:type projections: torch.Tensor | None
|
|
28
28
|
:param additive_term: Additional term added after forward projection by the system matrix. This term might include things like scatter and randoms. Defaults to None.
|
|
29
29
|
:type additive_term: torch.Tensor, optional
|
|
30
|
-
:param additive_term_variance_estimate:
|
|
31
|
-
:type additive_term_variance_estimate:
|
|
30
|
+
:param additive_term_variance_estimate: Operator for variance estimate of additive term. If none, then uncertainty estimation does not include contribution from the additive term. Defaults to None.
|
|
31
|
+
:type additive_term_variance_estimate: Callable, optional
|
|
32
32
|
|
|
33
33
|
.. py:method:: _set_n_subsets(n_subsets)
|
|
34
34
|
|
|
@@ -61,8 +61,8 @@ Classes
|
|
|
61
61
|
:type projections: torch.Tensor | None
|
|
62
62
|
:param additive_term: Additional term added after forward projection by the system matrix. This term might include things like scatter and randoms. Defaults to None.
|
|
63
63
|
:type additive_term: torch.Tensor, optional
|
|
64
|
-
:param additive_term_variance_estimate:
|
|
65
|
-
:type additive_term_variance_estimate:
|
|
64
|
+
:param additive_term_variance_estimate: Operator for variance estimate of additive term. If none, then uncertainty estimation does not include contribution from the additive term. Defaults to None.
|
|
65
|
+
:type additive_term_variance_estimate: Callable, optional
|
|
66
66
|
|
|
67
67
|
.. py:method:: compute_gradient(object, subset_idx = None, norm_BP_subset_method = 'subset_specific')
|
|
68
68
|
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/projectors/PET/index.rst
RENAMED
|
@@ -36,7 +36,7 @@ Functions
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
.. py:class:: PETLMSystemMatrix(object_meta, proj_meta, obj2obj_transforms = [], attenuation_map = None, scale_projection_by_sensitivity = False, N_splits = 1, device = pytomography.device)
|
|
39
|
+
.. py:class:: PETLMSystemMatrix(object_meta, proj_meta, obj2obj_transforms = [], attenuation_map = None, scale_projection_by_sensitivity = False, N_splits = 1, FOV_scale_enabled = True, device = pytomography.device)
|
|
40
40
|
|
|
41
41
|
Bases: :py:obj:`pytomography.projectors.SystemMatrix`
|
|
42
42
|
|
|
@@ -17,7 +17,7 @@ Classes
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
.. py:class:: PETLMSystemMatrix(object_meta, proj_meta, obj2obj_transforms = [], attenuation_map = None, scale_projection_by_sensitivity = False, N_splits = 1, device = pytomography.device)
|
|
20
|
+
.. py:class:: PETLMSystemMatrix(object_meta, proj_meta, obj2obj_transforms = [], attenuation_map = None, scale_projection_by_sensitivity = False, N_splits = 1, FOV_scale_enabled = True, device = pytomography.device)
|
|
21
21
|
|
|
22
22
|
Bases: :py:obj:`pytomography.projectors.SystemMatrix`
|
|
23
23
|
|
|
@@ -87,18 +87,18 @@ Classes
|
|
|
87
87
|
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
.. py:class:: SPECTPSFTransform(psf_meta = None,
|
|
90
|
+
.. py:class:: SPECTPSFTransform(psf_meta = None, psf_operator = None, assume_padded = True)
|
|
91
91
|
|
|
92
92
|
Bases: :py:obj:`pytomography.transforms.Transform`
|
|
93
93
|
|
|
94
|
-
obj2obj transform used to model the effects of PSF blurring in SPECT. The smoothing kernel used to apply PSF modeling uses a Gaussian kernel with width :math:`\sigma` dependent on the distance of the point to the detector; that information is specified in the ``SPECTPSFMeta`` parameter. There are a few potential arguments to initialize this transform (i) `psf_meta`, which contains relevant collimator information to obtain a Gaussian PSF model that works for low/medium energy SPECT (ii) `kernel_f`, an callable function that gives the kernel at any source-detector distance :math:`d`, or (iii) `
|
|
94
|
+
obj2obj transform used to model the effects of PSF blurring in SPECT. The smoothing kernel used to apply PSF modeling uses a Gaussian kernel with width :math:`\sigma` dependent on the distance of the point to the detector; that information is specified in the ``SPECTPSFMeta`` parameter. There are a few potential arguments to initialize this transform (i) `psf_meta`, which contains relevant collimator information to obtain a Gaussian PSF model that works for low/medium energy SPECT (ii) `kernel_f`, an callable function that gives the kernel at any source-detector distance :math:`d`, or (iii) `psf_operator`, a network configured to automatically apply full PSF modeling to a given object :math:`f` at all source-detector distances. Only one of the arguments should be given.
|
|
95
95
|
|
|
96
96
|
:param psf_meta: Metadata corresponding to the parameters of PSF blurring. In most cases (low/medium energy SPECT), this should be the only given argument.
|
|
97
97
|
:type psf_meta: SPECTPSFMeta
|
|
98
98
|
:param kernel_f: Function :math:`PSF(x,y,d)` that gives PSF at every source-detector distance :math:`d`. It should be able to take in 1D numpy arrays as its first two arguments, and a single argument for the final argument :math:`d`. The function should return a corresponding 2D PSF kernel.
|
|
99
99
|
:type kernel_f: Callable
|
|
100
|
-
:param
|
|
101
|
-
:type
|
|
100
|
+
:param psf_operator: Network that takes in an object :math:`f` and applies all necessary PSF correction to return a new object :math:`\tilde{f}` that is PSF corrected, such that subsequent summation along the x-axis accurately models the collimator detector response.
|
|
101
|
+
:type psf_operator: Callable
|
|
102
102
|
|
|
103
103
|
.. py:method:: _configure_gaussian_model()
|
|
104
104
|
|
|
@@ -106,15 +106,9 @@ Classes
|
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
|
|
109
|
-
.. py:method:: _configure_kernel_model()
|
|
110
|
-
|
|
111
|
-
Internal function to configure arbitrary kernel modeling. This is called when `kernel_f` is given in initialization
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
109
|
.. py:method:: _configure_manual_net()
|
|
116
110
|
|
|
117
|
-
Internal function to configure the PSF net. This is called when `
|
|
111
|
+
Internal function to configure the PSF net. This is called when `psf_operator` is given in initialization
|
|
118
112
|
|
|
119
113
|
|
|
120
114
|
|
|
@@ -13,7 +13,7 @@ Classes
|
|
|
13
13
|
.. autoapisummary::
|
|
14
14
|
|
|
15
15
|
pytomography.transforms.SPECT.psf.GaussianBlurNet
|
|
16
|
-
pytomography.transforms.SPECT.psf.
|
|
16
|
+
pytomography.transforms.SPECT.psf.PSF2D
|
|
17
17
|
pytomography.transforms.SPECT.psf.SPECTPSFTransform
|
|
18
18
|
|
|
19
19
|
|
|
@@ -50,30 +50,9 @@ Functions
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
.. py:class::
|
|
53
|
+
.. py:class:: PSF2D(psf_operator, distances, kernel_size, dr)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
Network used to apply an arbitrary PSF based on the `kernel_f` function, which should be a function of parallel directions :math:`x` and :math:`y` and perpendicular direction :math:`d` to the detector head
|
|
58
|
-
|
|
59
|
-
:param kernel_f: PSF kernel
|
|
60
|
-
:type kernel_f: Callable
|
|
61
|
-
:param distances: Distances corresponding to each plane parallel to the detector
|
|
62
|
-
:type distances: Sequence[float]
|
|
63
|
-
:param kernel_size: Size of kernel used for blurring. Should be large enough to encapsulate the entire PSF at all distances
|
|
64
|
-
:type kernel_size: int
|
|
65
|
-
:param dr: The :math:`x` and :math:`y` voxel spacing in the object
|
|
66
|
-
:type dr: Sequence[float]
|
|
67
|
-
|
|
68
|
-
.. py:method:: forward(input)
|
|
69
|
-
|
|
70
|
-
Applies PSF blurring to `input`. Each X-plane gets a different blurring kernel applied, depending on detector distance.
|
|
71
|
-
|
|
72
|
-
:param input: Object to apply blurring to
|
|
73
|
-
:type input: torch.tensor
|
|
74
|
-
|
|
75
|
-
:returns: Blurred object, adjusted such that subsequent summation along the x-axis models the CDR
|
|
76
|
-
:rtype: torch.tensor
|
|
55
|
+
.. py:method:: __call__(input)
|
|
77
56
|
|
|
78
57
|
|
|
79
58
|
|
|
@@ -90,18 +69,18 @@ Functions
|
|
|
90
69
|
:rtype: torch.nn.Conv2d
|
|
91
70
|
|
|
92
71
|
|
|
93
|
-
.. py:class:: SPECTPSFTransform(psf_meta = None,
|
|
72
|
+
.. py:class:: SPECTPSFTransform(psf_meta = None, psf_operator = None, assume_padded = True)
|
|
94
73
|
|
|
95
74
|
Bases: :py:obj:`pytomography.transforms.Transform`
|
|
96
75
|
|
|
97
|
-
obj2obj transform used to model the effects of PSF blurring in SPECT. The smoothing kernel used to apply PSF modeling uses a Gaussian kernel with width :math:`\sigma` dependent on the distance of the point to the detector; that information is specified in the ``SPECTPSFMeta`` parameter. There are a few potential arguments to initialize this transform (i) `psf_meta`, which contains relevant collimator information to obtain a Gaussian PSF model that works for low/medium energy SPECT (ii) `kernel_f`, an callable function that gives the kernel at any source-detector distance :math:`d`, or (iii) `
|
|
76
|
+
obj2obj transform used to model the effects of PSF blurring in SPECT. The smoothing kernel used to apply PSF modeling uses a Gaussian kernel with width :math:`\sigma` dependent on the distance of the point to the detector; that information is specified in the ``SPECTPSFMeta`` parameter. There are a few potential arguments to initialize this transform (i) `psf_meta`, which contains relevant collimator information to obtain a Gaussian PSF model that works for low/medium energy SPECT (ii) `kernel_f`, an callable function that gives the kernel at any source-detector distance :math:`d`, or (iii) `psf_operator`, a network configured to automatically apply full PSF modeling to a given object :math:`f` at all source-detector distances. Only one of the arguments should be given.
|
|
98
77
|
|
|
99
78
|
:param psf_meta: Metadata corresponding to the parameters of PSF blurring. In most cases (low/medium energy SPECT), this should be the only given argument.
|
|
100
79
|
:type psf_meta: SPECTPSFMeta
|
|
101
80
|
:param kernel_f: Function :math:`PSF(x,y,d)` that gives PSF at every source-detector distance :math:`d`. It should be able to take in 1D numpy arrays as its first two arguments, and a single argument for the final argument :math:`d`. The function should return a corresponding 2D PSF kernel.
|
|
102
81
|
:type kernel_f: Callable
|
|
103
|
-
:param
|
|
104
|
-
:type
|
|
82
|
+
:param psf_operator: Network that takes in an object :math:`f` and applies all necessary PSF correction to return a new object :math:`\tilde{f}` that is PSF corrected, such that subsequent summation along the x-axis accurately models the collimator detector response.
|
|
83
|
+
:type psf_operator: Callable
|
|
105
84
|
|
|
106
85
|
.. py:method:: _configure_gaussian_model()
|
|
107
86
|
|
|
@@ -109,15 +88,9 @@ Functions
|
|
|
109
88
|
|
|
110
89
|
|
|
111
90
|
|
|
112
|
-
.. py:method:: _configure_kernel_model()
|
|
113
|
-
|
|
114
|
-
Internal function to configure arbitrary kernel modeling. This is called when `kernel_f` is given in initialization
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
91
|
.. py:method:: _configure_manual_net()
|
|
119
92
|
|
|
120
|
-
Internal function to configure the PSF net. This is called when `
|
|
93
|
+
Internal function to configure the PSF net. This is called when `psf_operator` is given in initialization
|
|
121
94
|
|
|
122
95
|
|
|
123
96
|
|
|
@@ -291,7 +291,7 @@ Functions
|
|
|
291
291
|
:rtype: np.array
|
|
292
292
|
|
|
293
293
|
|
|
294
|
-
.. py:function:: compute_EW_scatter(projection_lower, projection_upper, width_lower, width_upper, width_peak, weighting_lower = 0.5, weighting_upper = 0.5, return_scatter_variance_estimate = False)
|
|
294
|
+
.. py:function:: compute_EW_scatter(projection_lower, projection_upper, width_lower, width_upper, width_peak, weighting_lower = 0.5, weighting_upper = 0.5, proj_meta=None, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3, return_scatter_variance_estimate = False)
|
|
295
295
|
|
|
296
296
|
Computes triple energy window estimate from lower and upper scatter projections as well as window widths
|
|
297
297
|
|
{pytomography-3.1.4 → pytomography-3.2.2}/docs/source/autoapi/pytomography/utils/scatter/index.rst
RENAMED
|
@@ -13,11 +13,33 @@ Functions
|
|
|
13
13
|
|
|
14
14
|
.. autoapisummary::
|
|
15
15
|
|
|
16
|
+
pytomography.utils.scatter.get_smoothed_scatter
|
|
16
17
|
pytomography.utils.scatter.compute_EW_scatter
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
|
|
20
|
-
.. py:function::
|
|
21
|
+
.. py:function:: get_smoothed_scatter(scatter, proj_meta, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3)
|
|
22
|
+
|
|
23
|
+
Smooths SPECT projection metadata
|
|
24
|
+
|
|
25
|
+
:param scatter: Input projection data
|
|
26
|
+
:type scatter: torch.Tensor
|
|
27
|
+
:param proj_meta: Projection metadata
|
|
28
|
+
:type proj_meta: ProjMeta
|
|
29
|
+
:param sigma_theta: Smoothing in theta (specified in degrees). Defaults to 0.
|
|
30
|
+
:type sigma_theta: float, optional
|
|
31
|
+
:param sigma_r: Smoothing in r (specified in cm). Defaults to 0.
|
|
32
|
+
:type sigma_r: float, optional
|
|
33
|
+
:param sigma_z: Smoothing in z (specified in cm). Defaults to 0.
|
|
34
|
+
:type sigma_z: float, optional
|
|
35
|
+
:param N_sigmas: Number of sigmas to include in the smoothing kernel. Defaults to 3.
|
|
36
|
+
:type N_sigmas: int, optional
|
|
37
|
+
|
|
38
|
+
:returns: Smoothed projections
|
|
39
|
+
:rtype: torch.Tensor
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
.. py:function:: compute_EW_scatter(projection_lower, projection_upper, width_lower, width_upper, width_peak, weighting_lower = 0.5, weighting_upper = 0.5, proj_meta=None, sigma_theta = 0, sigma_r = 0, sigma_z = 0, N_sigmas = 3, return_scatter_variance_estimate = False)
|
|
21
43
|
|
|
22
44
|
Computes triple energy window estimate from lower and upper scatter projections as well as window widths
|
|
23
45
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
:py:mod:`test_multi_bed_recon`
|
|
2
|
+
==============================
|
|
3
|
+
|
|
4
|
+
.. py:module:: test_multi_bed_recon
|
|
5
|
+
|
|
6
|
+
.. autoapi-nested-parse::
|
|
7
|
+
|
|
8
|
+
regression test for multi bed recon
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Module Contents
|
|
13
|
+
---------------
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
Functions
|
|
17
|
+
~~~~~~~~~
|
|
18
|
+
|
|
19
|
+
.. autoapisummary::
|
|
20
|
+
|
|
21
|
+
test_multi_bed_recon.test_multi_bed_recon
|
|
22
|
+
test_multi_bed_recon.reconstruct_singlebed
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Attributes
|
|
27
|
+
~~~~~~~~~~
|
|
28
|
+
|
|
29
|
+
.. autoapisummary::
|
|
30
|
+
|
|
31
|
+
test_multi_bed_recon.files_NM
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
.. py:data:: files_NM
|
|
35
|
+
:value: []
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
.. py:function:: test_multi_bed_recon()
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
.. py:function:: reconstruct_singlebed(i, projectionss, files_NM, files_CT)
|
|
43
|
+
|
|
44
|
+
|
|
@@ -71,4 +71,16 @@ html_static_path = ['_static']
|
|
|
71
71
|
|
|
72
72
|
# typehints
|
|
73
73
|
autodoc_typehints = "description"
|
|
74
|
-
autodoc_inherit_docstrings=True
|
|
74
|
+
autodoc_inherit_docstrings=True
|
|
75
|
+
|
|
76
|
+
# Add link to github
|
|
77
|
+
html_theme_options = {
|
|
78
|
+
"icon_links": [
|
|
79
|
+
{
|
|
80
|
+
"name": "GitHub",
|
|
81
|
+
"url": "https://github.com/qurit/PyTomography",
|
|
82
|
+
"icon": "fa-brands fa-github",
|
|
83
|
+
"type": "fontawesome",
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import papermill as pm
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
os.environ['PYDEVD_DISABLE_FILE_VALIDATION'] = '1'
|
|
5
|
+
|
|
6
|
+
tutorials = [
|
|
7
|
+
#'t_siminddata.ipynb',
|
|
8
|
+
#'t_dicomdata.ipynb',
|
|
9
|
+
#'t_dicommultibed.ipynb',
|
|
10
|
+
#'t_uncertainty_spect.ipynb',
|
|
11
|
+
#'t_ac225_dicom_recon.ipynb',
|
|
12
|
+
't_ac225_simind_recon.ipynb',
|
|
13
|
+
#'t_PETGATE_scat_sino.ipynb',
|
|
14
|
+
't_PETGATE_scat_sinoTOF.ipynb',
|
|
15
|
+
#'t_PETGATE_scat_lm.ipynb',
|
|
16
|
+
#'t_PETGATE_scat_lmTOF.ipynb',
|
|
17
|
+
#'t_PETGATE_DIP.ipynb',
|
|
18
|
+
#'t_GE_HDF5.ipynb',
|
|
19
|
+
#'t_CT_GEN3.ipynb',
|
|
20
|
+
't_examplesystemmatrix.ipynb'
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
for tutorial in tutorials:
|
|
24
|
+
print(f"Running {tutorial}...")
|
|
25
|
+
try:
|
|
26
|
+
pm.execute_notebook(tutorial, tutorial)
|
|
27
|
+
print(f"{tutorial} ran successfully.")
|
|
28
|
+
except pm.PapermillExecutionError as e:
|
|
29
|
+
print(f"{tutorial} failed")
|