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.
Files changed (281) hide show
  1. {pytomography-3.2.1 → pytomography-3.2.3}/PKG-INFO +3 -1
  2. pytomography-3.2.3/docs/source/_static/code_toggle.js +17 -0
  3. pytomography-3.2.3/docs/source/_static/css/code_toggle.css +16 -0
  4. pytomography-3.2.3/docs/source/_static/css/custom.css +12 -0
  5. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/conf.py +21 -11
  6. pytomography-3.2.3/docs/source/data_tables/collimator_data.rst +327 -0
  7. pytomography-3.2.3/docs/source/external_data.rst +33 -0
  8. pytomography-3.2.3/docs/source/gallery.rst +52 -0
  9. pytomography-3.2.3/docs/source/images/CT_slice.png +0 -0
  10. pytomography-3.2.3/docs/source/images/ac225_patient_dual.jpg +0 -0
  11. pytomography-3.2.3/docs/source/images/figure2.jpg +0 -0
  12. pytomography-3.2.3/docs/source/images/figure4_left_hoz.jpg +0 -0
  13. pytomography-3.2.3/docs/source/index.rst +67 -0
  14. pytomography-3.2.3/docs/source/install.rst +29 -0
  15. pytomography-3.2.3/docs/source/notebooks/CT_slice.png +0 -0
  16. pytomography-3.2.3/docs/source/notebooks/p_simind_multiorgan.py +29 -0
  17. pytomography-3.2.3/docs/source/notebooks/p_subsample_data.py +39 -0
  18. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/run_all_notebooks.py +10 -4
  19. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_CT_GEN3.ipynb +98 -130
  20. pytomography-3.2.3/docs/source/notebooks/t_GE_HDF5.ipynb +485 -0
  21. pytomography-3.2.3/docs/source/notebooks/t_PETGATE_DIP.ipynb +1088 -0
  22. pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_lm.ipynb +1024 -0
  23. pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +1019 -0
  24. pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +1509 -0
  25. pytomography-3.2.3/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +1163 -0
  26. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETSIRD.ipynb +1 -2
  27. pytomography-3.2.3/docs/source/notebooks/t_ac225_dicom_recon.ipynb +588 -0
  28. pytomography-3.2.3/docs/source/notebooks/t_ac225_simind_recon.ipynb +497 -0
  29. pytomography-3.2.3/docs/source/notebooks/t_algorithms.ipynb +826 -0
  30. pytomography-3.2.3/docs/source/notebooks/t_dicom_algorithms.ipynb +110 -0
  31. pytomography-3.2.3/docs/source/notebooks/t_dicomdata.ipynb +1342 -0
  32. pytomography-3.2.3/docs/source/notebooks/t_dicommultibed.ipynb +908 -0
  33. pytomography-3.2.3/docs/source/notebooks/t_dualpeak.ipynb +678 -0
  34. pytomography-3.2.3/docs/source/notebooks/t_examplesystemmatrix.ipynb +2650 -0
  35. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_fbp.ipynb +31 -16
  36. pytomography-3.2.3/docs/source/notebooks/t_plotting.ipynb +315 -0
  37. pytomography-3.2.3/docs/source/notebooks/t_siminddata.ipynb +1260 -0
  38. pytomography-3.2.3/docs/source/notebooks/t_siminddata_multiorgan.ipynb +1886 -0
  39. pytomography-3.2.3/docs/source/notebooks/t_uncertainty_spect.ipynb +890 -0
  40. pytomography-3.2.3/docs/source/usage/usage.rst +65 -0
  41. pytomography-3.2.3/docs/source/usage/usage_ct.rst +26 -0
  42. pytomography-3.2.3/docs/source/usage/usage_dev.rst +22 -0
  43. pytomography-3.2.3/docs/source/usage/usage_pet.rst +92 -0
  44. pytomography-3.2.3/docs/source/usage/usage_spect.rst +141 -0
  45. {pytomography-3.2.1 → pytomography-3.2.3}/pyproject.toml +4 -2
  46. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/__init__.py +11 -0
  47. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/preconditioned_gradient_ascent.py +37 -17
  48. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/callbacks/__init__.py +1 -1
  49. pytomography-3.2.3/src/pytomography/callbacks/callback.py +63 -0
  50. pytomography-3.2.3/src/pytomography/data/pet_colors.txt +1535 -0
  51. pytomography-3.2.3/src/pytomography/data/simind.smc +51 -0
  52. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/CT/dicom_ct_pd.py +2 -2
  53. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/attenuation_map.py +1 -1
  54. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/dicom.py +88 -18
  55. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/shared.py +32 -10
  56. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/simind.py +36 -6
  57. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/__init__.py +1 -1
  58. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/dicom.py +46 -5
  59. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/interfile.py +1 -1
  60. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/poisson_log_likelihood.py +1 -0
  61. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/nearest_neighbour.py +2 -4
  62. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/SPECT/spect_system_matrix.py +2 -3
  63. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/system_matrix.py +15 -0
  64. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/__init__.py +1 -0
  65. pytomography-3.2.3/src/pytomography/transforms/SPECT/cutoff.py +22 -0
  66. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/psf.py +3 -3
  67. pytomography-3.2.3/src/pytomography/utils/plot_utils.py +52 -0
  68. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/scatter.py +7 -11
  69. pytomography-3.2.1/docs/source/_templates/autoapi/index.rst +0 -15
  70. pytomography-3.2.1/docs/source/_templates/autoapi/python/attribute.rst +0 -1
  71. pytomography-3.2.1/docs/source/_templates/autoapi/python/class.rst +0 -58
  72. pytomography-3.2.1/docs/source/_templates/autoapi/python/data.rst +0 -37
  73. pytomography-3.2.1/docs/source/_templates/autoapi/python/exception.rst +0 -1
  74. pytomography-3.2.1/docs/source/_templates/autoapi/python/function.rst +0 -15
  75. pytomography-3.2.1/docs/source/_templates/autoapi/python/method.rst +0 -19
  76. pytomography-3.2.1/docs/source/_templates/autoapi/python/module.rst +0 -114
  77. pytomography-3.2.1/docs/source/_templates/autoapi/python/package.rst +0 -1
  78. pytomography-3.2.1/docs/source/_templates/autoapi/python/property.rst +0 -15
  79. pytomography-3.2.1/docs/source/autoapi/index.rst +0 -12
  80. pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/dip_recon/index.rst +0 -56
  81. pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/fbp/index.rst +0 -44
  82. pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/index.rst +0 -464
  83. pytomography-3.2.1/docs/source/autoapi/pytomography/algorithms/preconditioned_gradient_ascent/index.rst +0 -490
  84. pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/callback/index.rst +0 -47
  85. pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/data_saving/index.rst +0 -54
  86. pytomography-3.2.1/docs/source/autoapi/pytomography/callbacks/index.rst +0 -98
  87. pytomography-3.2.1/docs/source/autoapi/pytomography/index.rst +0 -82
  88. pytomography-3.2.1/docs/source/autoapi/pytomography/io/CT/dicom_ct_pd/index.rst +0 -26
  89. pytomography-3.2.1/docs/source/autoapi/pytomography/io/CT/index.rst +0 -15
  90. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/clinical/index.rst +0 -122
  91. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/gate/index.rst +0 -244
  92. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/index.rst +0 -32
  93. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/petsird/index.rst +0 -64
  94. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_binary/index.rst +0 -1649
  95. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_dtypes/index.rst +0 -22
  96. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/_ndjson/index.rst +0 -1391
  97. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/binary/index.rst +0 -386
  98. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/index.rst +0 -841
  99. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/ndjson/index.rst +0 -416
  100. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/protocols/index.rst +0 -125
  101. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/types/index.rst +0 -418
  102. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/prd/yardl_types/index.rst +0 -270
  103. pytomography-3.2.1/docs/source/autoapi/pytomography/io/PET/shared/index.rst +0 -194
  104. pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/attenuation_map/index.rst +0 -162
  105. pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/dicom/index.rst +0 -334
  106. pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/index.rst +0 -200
  107. pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/shared/index.rst +0 -72
  108. pytomography-3.2.1/docs/source/autoapi/pytomography/io/SPECT/simind/index.rst +0 -124
  109. pytomography-3.2.1/docs/source/autoapi/pytomography/io/index.rst +0 -23
  110. pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/dicom/index.rst +0 -86
  111. pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/dicom_creation/index.rst +0 -97
  112. pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/index.rst +0 -114
  113. pytomography-3.2.1/docs/source/autoapi/pytomography/io/shared/interfile/index.rst +0 -46
  114. pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/index.rst +0 -249
  115. pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/likelihood/index.rst +0 -99
  116. pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/mse_objective/index.rst +0 -82
  117. pytomography-3.2.1/docs/source/autoapi/pytomography/likelihoods/poisson_log_likelihood/index.rst +0 -93
  118. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata/index.rst +0 -36
  119. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/ct_gen3_metadata/index.rst +0 -38
  120. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/CT/index.rst +0 -66
  121. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/index.rst +0 -77
  122. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/pet_sinogram_metadata/index.rst +0 -29
  123. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/pet_tof_metadata/index.rst +0 -35
  124. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/PET/petlm_metadata/index.rst +0 -38
  125. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/SPECT/index.rst +0 -89
  126. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/SPECT/spect_metadata/index.rst +0 -80
  127. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/index.rst +0 -67
  128. pytomography-3.2.1/docs/source/autoapi/pytomography/metadata/metadata/index.rst +0 -42
  129. pytomography-3.2.1/docs/source/autoapi/pytomography/priors/index.rst +0 -312
  130. pytomography-3.2.1/docs/source/autoapi/pytomography/priors/nearest_neighbour/index.rst +0 -252
  131. pytomography-3.2.1/docs/source/autoapi/pytomography/priors/prior/index.rst +0 -68
  132. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix/index.rst +0 -137
  133. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/ct_gen3_system_matrix/index.rst +0 -107
  134. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/CT/index.rst +0 -221
  135. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/index.rst +0 -328
  136. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/pet_sinogram_system_matrix/index.rst +0 -175
  137. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/PET/petlm_system_matrix/index.rst +0 -161
  138. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/SPECT/index.rst +0 -190
  139. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/SPECT/spect_system_matrix/index.rst +0 -181
  140. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/index.rst +0 -180
  141. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/index.rst +0 -97
  142. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/kem_system_matrix/index.rst +0 -70
  143. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/shared/motion_correction_system_matrix/index.rst +0 -35
  144. pytomography-3.2.1/docs/source/autoapi/pytomography/projectors/system_matrix/index.rst +0 -154
  145. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/attenuation/index.rst +0 -99
  146. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/index.rst +0 -170
  147. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/SPECT/psf/index.rst +0 -152
  148. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/index.rst +0 -75
  149. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/filters/index.rst +0 -76
  150. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/index.rst +0 -254
  151. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/kem/index.rst +0 -77
  152. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/motion/index.rst +0 -88
  153. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/shared/spatial/index.rst +0 -55
  154. pytomography-3.2.1/docs/source/autoapi/pytomography/transforms/transform/index.rst +0 -51
  155. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/fourier_filters/index.rst +0 -38
  156. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/index.rst +0 -332
  157. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/misc/index.rst +0 -95
  158. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/nist_data/index.rst +0 -64
  159. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/scatter/index.rst +0 -62
  160. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/spatial/index.rst +0 -153
  161. pytomography-3.2.1/docs/source/autoapi/pytomography/utils/sss/index.rst +0 -254
  162. pytomography-3.2.1/docs/source/autoapi/test_multi_bed_recon/index.rst +0 -44
  163. pytomography-3.2.1/docs/source/external_data.md +0 -121
  164. pytomography-3.2.1/docs/source/notebooks/CT_slice.png +0 -0
  165. pytomography-3.2.1/docs/source/notebooks/t_GE_HDF5.ipynb +0 -572
  166. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_DIP.ipynb +0 -1133
  167. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lm copy.ipynb +0 -660
  168. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lm.ipynb +0 -1062
  169. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_lmTOF.ipynb +0 -1056
  170. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_sino.ipynb +0 -1547
  171. pytomography-3.2.1/docs/source/notebooks/t_PETGATE_scat_sinoTOF.ipynb +0 -1201
  172. pytomography-3.2.1/docs/source/notebooks/t_ac225_dicom_recon.ipynb +0 -614
  173. pytomography-3.2.1/docs/source/notebooks/t_ac225_simind_recon.ipynb +0 -526
  174. pytomography-3.2.1/docs/source/notebooks/t_dicomdata.ipynb +0 -1344
  175. pytomography-3.2.1/docs/source/notebooks/t_dicommultibed.ipynb +0 -945
  176. pytomography-3.2.1/docs/source/notebooks/t_examplesystemmatrix.ipynb +0 -2650
  177. pytomography-3.2.1/docs/source/notebooks/t_siminddata.ipynb +0 -1957
  178. pytomography-3.2.1/docs/source/notebooks/t_uncertainty_spect.ipynb +0 -955
  179. pytomography-3.2.1/docs/source/usage.md +0 -31
  180. pytomography-3.2.1/src/pytomography/callbacks/callback.py +0 -32
  181. {pytomography-3.2.1 → pytomography-3.2.3}/.github/workflows/publish-to-test-pypi.yml +0 -0
  182. {pytomography-3.2.1 → pytomography-3.2.3}/.gitignore +0 -0
  183. {pytomography-3.2.1 → pytomography-3.2.3}/.readthedocs.yaml +0 -0
  184. {pytomography-3.2.1 → pytomography-3.2.3}/LICENSE +0 -0
  185. {pytomography-3.2.1 → pytomography-3.2.3}/README.md +0 -0
  186. {pytomography-3.2.1 → pytomography-3.2.3}/docs/Makefile +0 -0
  187. {pytomography-3.2.1 → pytomography-3.2.3}/docs/make.bat +0 -0
  188. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/developers_guide.md +0 -0
  189. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/PT1.png +0 -0
  190. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/coordinate_conventions.png +0 -0
  191. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/emission.png +0 -0
  192. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/example_scanner_sm.png +0 -0
  193. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/figure4.jpg +0 -0
  194. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/figure5.jpg +0 -0
  195. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/images/pytomo_front_title.png +0 -0
  196. /pytomography-3.2.1/docs/source/index.md → /pytomography-3.2.3/docs/source/index2.md +0 -0
  197. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/conventions.ipynb +0 -0
  198. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/script_to_generate_eta_for_petsird.py +0 -0
  199. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_CT_microct.ipynb +0 -0
  200. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETGATE_LM.ipynb +0 -0
  201. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_PETGATE_SINO.ipynb +0 -0
  202. {pytomography-3.2.1 → pytomography-3.2.3}/docs/source/notebooks/t_quantitative.ipynb +0 -0
  203. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/__init__.py +0 -0
  204. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/dip_recon.py +0 -0
  205. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/algorithms/fbp.py +0 -0
  206. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/callbacks/data_saving.py +0 -0
  207. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/adipose.csv +0 -0
  208. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/air.csv +0 -0
  209. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/aluminum.csv +0 -0
  210. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/bonecortical.csv +0 -0
  211. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/boneequivplastic.csv +0 -0
  212. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/breast.csv +0 -0
  213. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/lead.csv +0 -0
  214. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/lungtissue.csv +0 -0
  215. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/muscle.csv +0 -0
  216. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/tissueequivplastic.csv +0 -0
  217. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/tungsten.csv +0 -0
  218. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/NIST_attenuation_data/water.csv +0 -0
  219. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/collim.col +0 -0
  220. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/ct_table.csv +0 -0
  221. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/data/pet_scanner_info.txt +0 -0
  222. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/CT/__init__.py +0 -0
  223. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/__init__.py +0 -0
  224. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/clinical.py +0 -0
  225. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/gate.py +0 -0
  226. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/petsird.py +0 -0
  227. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/__init__.py +0 -0
  228. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_binary.py +0 -0
  229. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_dtypes.py +0 -0
  230. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/_ndjson.py +0 -0
  231. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/binary.py +0 -0
  232. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/ndjson.py +0 -0
  233. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/protocols.py +0 -0
  234. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/types.py +0 -0
  235. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/prd/yardl_types.py +0 -0
  236. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/PET/shared.py +0 -0
  237. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/SPECT/__init__.py +0 -0
  238. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/__init__.py +0 -0
  239. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/io/shared/dicom_creation.py +0 -0
  240. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/__init__.py +0 -0
  241. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/likelihood.py +0 -0
  242. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/likelihoods/mse_objective.py +0 -0
  243. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/__init__.py +0 -0
  244. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/ct_conebeam_flatpanel_metadata.py +0 -0
  245. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/CT/ct_gen3_metadata.py +0 -0
  246. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/__init__.py +0 -0
  247. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/pet_sinogram_metadata.py +0 -0
  248. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/pet_tof_metadata.py +0 -0
  249. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/PET/petlm_metadata.py +0 -0
  250. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/SPECT/__init__.py +0 -0
  251. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/SPECT/spect_metadata.py +0 -0
  252. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/__init__.py +0 -0
  253. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/metadata/metadata.py +0 -0
  254. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/__init__.py +0 -0
  255. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/priors/prior.py +0 -0
  256. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/__init__.py +0 -0
  257. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/ct_conebeam_flatpanel_system_matrix.py +0 -0
  258. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/CT/ct_gen3_system_matrix.py +0 -0
  259. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/__init__.py +0 -0
  260. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/pet_sinogram_system_matrix.py +0 -0
  261. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/PET/petlm_system_matrix.py +0 -0
  262. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/SPECT/__init__.py +0 -0
  263. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/__init__.py +0 -0
  264. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/__init__.py +0 -0
  265. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/kem_system_matrix.py +0 -0
  266. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/projectors/shared/motion_correction_system_matrix.py +0 -0
  267. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/tests/test_multi_bed_recon.py +0 -0
  268. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/SPECT/attenuation.py +0 -0
  269. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/__init__.py +0 -0
  270. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/__init__.py +0 -0
  271. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/filters.py +0 -0
  272. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/kem.py +0 -0
  273. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/motion.py +0 -0
  274. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/shared/spatial.py +0 -0
  275. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/transforms/transform.py +0 -0
  276. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/__init__.py +0 -0
  277. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/fourier_filters.py +0 -0
  278. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/misc.py +0 -0
  279. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/nist_data.py +0 -0
  280. {pytomography-3.2.1 → pytomography-3.2.3}/src/pytomography/utils/spatial.py +0 -0
  281. {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.1
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
+ });
@@ -0,0 +1,16 @@
1
+ .code-block {
2
+ display: none;
3
+ }
4
+
5
+ .code-block.active {
6
+ display: block;
7
+ }
8
+
9
+ .toggle-button {
10
+ margin: 10px 0;
11
+ cursor: pointer;
12
+ padding: 5px 10px;
13
+ background-color: #ddd;
14
+ border: 1px solid #ccc;
15
+ border-radius: 4px;
16
+ }
@@ -0,0 +1,12 @@
1
+ html {
2
+ --pst-font-size-base: 22px;
3
+ }
4
+
5
+ html[data-theme="dark"] .bd-content img:not(.only-dark):not(.dark-light) {
6
+ background: unset;
7
+ filter: brightness(1.0) contrast(1.0);
8
+ }
9
+
10
+ pre {
11
+ white-space: pre-wrap;
12
+ }
@@ -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
- autoapi_options = [ 'members', 'undoc-members', 'private-members', 'show-inheritance', 'show-module-summary', 'special-members', 'imported-members', 'recursive']
48
- autoapi_template_dir = "_templates/autoapi"
49
-
50
- # Add any paths that contain templates here, relative to this directory.
51
- templates_path = ['_templates']
52
-
53
- # List of patterns, relative to source directory, that match files and
54
- # directories to ignore when looking for source files.
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
+
@@ -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.
@@ -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)