simind-python-connector 1.0.0__py3-none-any.whl

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 (47) hide show
  1. simind_python_connector/__init__.py +72 -0
  2. simind_python_connector/backends/__init__.py +480 -0
  3. simind_python_connector/backends/base.py +387 -0
  4. simind_python_connector/backends/sirf_backend.py +309 -0
  5. simind_python_connector/backends/stir_backend.py +395 -0
  6. simind_python_connector/builders/__init__.py +19 -0
  7. simind_python_connector/builders/acquisition_builder.py +526 -0
  8. simind_python_connector/builders/image_builder.py +217 -0
  9. simind_python_connector/configs/AnyScan.yaml +420 -0
  10. simind_python_connector/configs/Discovery670.yaml +412 -0
  11. simind_python_connector/configs/Example.yaml +420 -0
  12. simind_python_connector/configs/MLD001_SCAN0.yaml +426 -0
  13. simind_python_connector/configs/__init__.py +41 -0
  14. simind_python_connector/configs/input.smc +51 -0
  15. simind_python_connector/connectors/__init__.py +24 -0
  16. simind_python_connector/connectors/_spacing.py +69 -0
  17. simind_python_connector/connectors/base.py +40 -0
  18. simind_python_connector/connectors/python_connector.py +355 -0
  19. simind_python_connector/connectors/pytomography_adaptor.py +263 -0
  20. simind_python_connector/connectors/sirf_adaptor.py +164 -0
  21. simind_python_connector/connectors/stir_adaptor.py +164 -0
  22. simind_python_connector/converters/__init__.py +16 -0
  23. simind_python_connector/converters/attenuation.py +367 -0
  24. simind_python_connector/converters/dicom_to_stir.py +3 -0
  25. simind_python_connector/converters/simind_to_stir.py +769 -0
  26. simind_python_connector/core/__init__.py +7 -0
  27. simind_python_connector/core/config.py +939 -0
  28. simind_python_connector/core/executor.py +96 -0
  29. simind_python_connector/core/types.py +203 -0
  30. simind_python_connector/data/Schneider2000.json +222 -0
  31. simind_python_connector/data/__init__.py +25 -0
  32. simind_python_connector/data/bone.atn +187 -0
  33. simind_python_connector/data/h2o.atn +92 -0
  34. simind_python_connector/utils/__init__.py +120 -0
  35. simind_python_connector/utils/backend_access.py +121 -0
  36. simind_python_connector/utils/import_helpers.py +74 -0
  37. simind_python_connector/utils/interfile_numpy.py +195 -0
  38. simind_python_connector/utils/interfile_parser.py +175 -0
  39. simind_python_connector/utils/io_utils.py +14 -0
  40. simind_python_connector/utils/simind_utils.py +70 -0
  41. simind_python_connector/utils/sirf_stir_utils.py +194 -0
  42. simind_python_connector/utils/stir_utils.py +485 -0
  43. simind_python_connector-1.0.0.dist-info/METADATA +274 -0
  44. simind_python_connector-1.0.0.dist-info/RECORD +47 -0
  45. simind_python_connector-1.0.0.dist-info/WHEEL +5 -0
  46. simind_python_connector-1.0.0.dist-info/licenses/LICENSE +195 -0
  47. simind_python_connector-1.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,420 @@
1
+ metadata:
2
+ comment: Minimal toy-example SIMIND configuration
3
+ source_file: Example.yaml
4
+ parameters:
5
+ source:
6
+ photon_energy:
7
+ index: 1
8
+ value: 140.0
9
+ description: Photon energy in keV (e.g., 140 for 99mTc, 208 for 177Lu)
10
+ source_half_length:
11
+ index: 2
12
+ value: 0.0
13
+ description: Source half-length in cm
14
+ source_half_width:
15
+ index: 3
16
+ value: 0.1
17
+ description: Source half-width in cm
18
+ source_half_height:
19
+ index: 4
20
+ value: 0.1
21
+ description: Source half-height in cm
22
+ source_type:
23
+ index: 15
24
+ value: 5.0
25
+ description: Source type code (0=sphere, 1=cylinder, etc.) - check SIMIND manual
26
+ shift_source_x:
27
+ index: 16
28
+ value: 0.0
29
+ description: Shift of source in x-direction (cm)
30
+ shift_source_y:
31
+ index: 17
32
+ value: 0.0
33
+ description: Shift of source in y-direction (cm)
34
+ shift_source_z:
35
+ index: 18
36
+ value: 0.0
37
+ description: Shift of source in z-direction (cm)
38
+ photon_direction:
39
+ index: 19
40
+ value: 3
41
+ description: Photon direction code (see manual for details)
42
+ emitted_photons_per_decay:
43
+ index: 24
44
+ value: 0.879
45
+ description: Number of photons emitted per decay
46
+ source_activity:
47
+ index: 25
48
+ value: 1.0
49
+ description: Source activity in MBq
50
+ number_photon_histories:
51
+ index: 26
52
+ value: 1.0
53
+ description: Number of photon histories to simulate (10^6 typical minimum)
54
+ matrix_size_source_map_i:
55
+ index: 79
56
+ value: 32.0
57
+ description: Matrix size for source map (i-direction) - 128x128 standard
58
+ matrix_size_source_map_j:
59
+ index: 82
60
+ value: 0.0
61
+ description: Matrix size for source map (j-direction) - 128x128 standard
62
+ phantom:
63
+ phantom_half_length:
64
+ index: 5
65
+ value: 8.32
66
+ description: Phantom half-length in cm
67
+ phantom_half_width:
68
+ index: 6
69
+ value: 11.0
70
+ description: Phantom half-width in cm
71
+ phantom_half_height:
72
+ index: 7
73
+ value: 23.5
74
+ description: Phantom half-height in cm
75
+ phantom_type:
76
+ index: 14
77
+ value: 4.0
78
+ description: Phantom type code
79
+ pixel_size_density_images:
80
+ index: 31
81
+ value: 0.1
82
+ description: Pixel size for density images (cm)
83
+ orientation_density_images:
84
+ index: 32
85
+ value: 0.0
86
+ description: Orientation of density images
87
+ first_image_density_images:
88
+ index: 33
89
+ value: 1.0
90
+ description: First image number for density images
91
+ number_density_images:
92
+ index: 34
93
+ value: 32.0
94
+ description: Number of density images
95
+ density_limit_border:
96
+ index: 35
97
+ value: 0.01
98
+ description: Density limit at border
99
+ shift_density_images_y:
100
+ index: 36
101
+ value: 0.0
102
+ description: Shift of density images in y-direction (cm)
103
+ shift_density_images_z:
104
+ index: 37
105
+ value: 0.0
106
+ description: Shift of density images in z-direction (cm)
107
+ shift_density_images_x:
108
+ index: 39
109
+ value: 0.0
110
+ description: Shift of density images in x-direction (cm)
111
+ density_threshold_soft_bone:
112
+ index: 40
113
+ value: 0.0
114
+ description: Density threshold for soft bone
115
+ code_definitions_zubal_phantom:
116
+ index: 45
117
+ value: 1.0
118
+ description: Code definitions for Zubal phantom
119
+ matrix_size_density_map_i:
120
+ index: 78
121
+ value: 32.0
122
+ description: Matrix size for density map (i-direction)
123
+ matrix_size_density_map_j:
124
+ index: 81
125
+ value: 0.0
126
+ description: Matrix size for density map (j-direction)
127
+ detector_crystal:
128
+ crystal_half_length_radius:
129
+ index: 8
130
+ value: 21.25
131
+ description: Crystal half-length/radius in cm (circular detectors use radius)
132
+ crystal_thickness:
133
+ index: 9
134
+ value: 0.95
135
+ description: 'Crystal thickness in cm (NaI(Tl) typical: 0.95cm)'
136
+ crystal_half_width:
137
+ index: 10
138
+ value: 27.0
139
+ description: Crystal half-width in cm (for rectangular crystals)
140
+ backscatter_thickness:
141
+ index: 11
142
+ value: 5.0
143
+ description: Backscatter thickness in cm (for backscatter material)
144
+ height_to_detector_surface:
145
+ index: 12
146
+ value: 25.0
147
+ description: Height from collimator to detector surface (cm)
148
+ cover_thickness:
149
+ index: 13
150
+ value: 0.1
151
+ description: Cover thickness in cm (typically Al or Be window)
152
+ energy_resolution:
153
+ index: 22
154
+ value: 9.2
155
+ description: Energy resolution FWHM (%) at reference energy (9-12% typical at
156
+ 140keV)
157
+ intrinsic_resolution:
158
+ index: 23
159
+ value: 0.32
160
+ description: Intrinsic spatial resolution FWHM (cm) (3-4mm typical)
161
+ voltage:
162
+ index: 91
163
+ value: 0.0
164
+ description: Applied voltage (V) for semiconductor detectors
165
+ mobility_life_electrons:
166
+ index: 92
167
+ value: 0.0
168
+ description: Mobility-life product for electrons (semiconductor detectors)
169
+ mobility_life_holes:
170
+ index: 93
171
+ value: 0.0
172
+ description: Mobility-life product for holes (semiconductor detectors)
173
+ contact_pad_size:
174
+ index: 94
175
+ value: 0.0
176
+ description: Contact pad size (cm) for pixelated detectors
177
+ anode_element_pitch:
178
+ index: 95
179
+ value: 0.0
180
+ description: Anode element pitch (cm) for pixelated detectors
181
+ exponential_decay_constant_tau:
182
+ index: 96
183
+ value: 0.0
184
+ description: Exponential decay constant tau for charge collection
185
+ components_hecht_formula:
186
+ index: 97
187
+ value: 0.0
188
+ description: Components for Hecht formula (charge collection efficiency)
189
+ energy_resolution_model:
190
+ index: 98
191
+ value: 0.0
192
+ description: Energy resolution model code (check SIMIND manual for options)
193
+ cloud_mobility:
194
+ index: 99
195
+ value: 0.0
196
+ description: Cloud mobility parameter for charge collection
197
+ detector_array_size_i:
198
+ index: 100
199
+ value: 0.0
200
+ description: Detector array size (i-direction) for pixelated systems
201
+ detector_array_size_j:
202
+ index: 101
203
+ value: 0.0
204
+ description: Detector array size (j-direction) for pixelated systems
205
+ collimator:
206
+ hole_size_x:
207
+ index: 46
208
+ value: 0.25
209
+ description: 'Collimator hole diameter (cm)'
210
+ hole_size_y:
211
+ index: 47
212
+ value: 0.25
213
+ description: Collimator hole diameter (cm) - should match hole_size_x for round
214
+ holes
215
+ distance_between_holes_x:
216
+ index: 48
217
+ value: 0.12
218
+ description: 'Distance between hole centers (cm)'
219
+ distance_between_holes_y:
220
+ index: 49
221
+ value: 0.12
222
+ description: Distance between hole centers (cm)'
223
+ shift_center_hole_x:
224
+ index: 50
225
+ value: 0.13
226
+ description: Shift of center hole in x-direction (cm) for alignment
227
+ shift_center_hole_y:
228
+ index: 51
229
+ value: 0.13
230
+ description: Shift of center hole in y-direction (cm) for alignment
231
+ collimator_thickness:
232
+ index: 52
233
+ value: 3.5
234
+ description: 'Collimator thickness (cm)'
235
+ collimator_routine:
236
+ index: 53
237
+ value: 1
238
+ description: Collimator routine code (1= analytical, 2 = septal penetration)
239
+ hole_shape:
240
+ index: 54
241
+ value: 3.0
242
+ description: Hole shape code (3=hexagonal, 4=rectangular)
243
+ distance_collimator_detector:
244
+ index: 56
245
+ value: 0.0
246
+ description: Distance from collimator face to detector surface (cm)
247
+ random_collimator_movement:
248
+ index: 59
249
+ value: 0.0
250
+ description: Random collimator movement parameter (for manufacturing variations)
251
+ energy_analysis:
252
+ upper_window_threshold:
253
+ index: 20
254
+ value: 225
255
+ description: Upper energy window threshold (keV)
256
+ lower_window_threshold:
257
+ index: 21
258
+ value: 75
259
+ description: Lower energy window threshold (keV)
260
+ kev_per_channel:
261
+ index: 27
262
+ value: 4
263
+ description: keV per channel for energy spectrum binning
264
+ energy_spectra_channels:
265
+ index: 80
266
+ value: 128.0
267
+ description: Number of energy spectra channels (512 typical)
268
+ cutoff_energy_terminate_photon_history:
269
+ index: 83
270
+ value: 0.0
271
+ description: Cutoff energy to terminate photon history (keV)
272
+ spect_imaging:
273
+ pixel_size_simulated_image:
274
+ index: 28
275
+ value: 0.44
276
+ description: Pixel size for simulated images (cm) - affects resolution vs FOV
277
+ spect_no_projections:
278
+ index: 29
279
+ value: 24.0
280
+ description: Number of SPECT projections (60, 120, 180 typical)
281
+ spect_rotation:
282
+ index: 30
283
+ value: 0.0
284
+ description: "SPECT rotation parameter - controls direction and extent"
285
+ spect_starting_angle:
286
+ index: 41
287
+ value: 0.0
288
+ description: "SPECT starting angle (degrees)"
289
+ spect_orbital_rotation_fraction:
290
+ index: 42
291
+ value: 1.0
292
+ description: SPECT orbital rotation fraction (1.0 = full orbit)
293
+ camera_offset_x:
294
+ index: 43
295
+ value: 0.0
296
+ description: Camera offset in x-direction (cm) from rotation center
297
+ camera_offset_y:
298
+ index: 44
299
+ value: 0.0
300
+ description: Camera offset in y-direction (cm) from rotation center
301
+ matrix_size_image_i:
302
+ index: 76
303
+ value: 32.0
304
+ description: Matrix size for images (i-direction) - 128x128 standard
305
+ matrix_size_image_j:
306
+ index: 77
307
+ value: 32.0
308
+ description: Matrix size for images (j-direction) - 128x128 standard
309
+ simulation_control:
310
+ step_size_photon_path_simulation:
311
+ index: 38
312
+ value: 0.1
313
+ description: Step size for photon path simulation (cm) - smaller = more accurate
314
+ type:
315
+ index: 55
316
+ value: 0.0
317
+ description: General type parameter - check SIMIND manual for current meaning
318
+ scoring_routine:
319
+ index: 84
320
+ value: 1
321
+ description: Scoring routine code - affects output data collection
322
+ csv_file_content:
323
+ index: 85
324
+ value: 0.0
325
+ description: CSV file content parameter - for custom data output
326
+ unused_parameters:
327
+ unused_parameter_1:
328
+ index: 57
329
+ value: 0.0
330
+ description: Unused parameter 1 - reserved for future use
331
+ unused_parameter_2:
332
+ index: 58
333
+ value: 0.0
334
+ description: Unused parameter 2 - reserved for future use
335
+ unused_parameter_3:
336
+ index: 60
337
+ value: 0.0
338
+ description: Unused parameter 3 - reserved for future use
339
+ simulation_flags:
340
+ write_results_to_screen:
341
+ index: 1
342
+ enabled: true
343
+ write_images_to_files:
344
+ index: 2
345
+ enabled: false
346
+ write_pulse_height_distribution_to_file:
347
+ index: 3
348
+ enabled: true
349
+ include_collimator:
350
+ index: 4
351
+ enabled: true
352
+ simulate_spect_study:
353
+ index: 5
354
+ enabled: true
355
+ include_characteristic_xray_emissions:
356
+ index: 6
357
+ enabled: true
358
+ include_backscattering_material:
359
+ index: 7
360
+ enabled: true
361
+ use_random_seed_value:
362
+ index: 8
363
+ enabled: true
364
+ currently_not_in_use:
365
+ index: 9
366
+ enabled: false
367
+ include_interactions_in_cover:
368
+ index: 10
369
+ enabled: true
370
+ include_interactions_in_phantom:
371
+ index: 11
372
+ enabled: true
373
+ include_energy_resolution_in_crystal:
374
+ index: 12
375
+ enabled: true
376
+ include_forced_interactions_in_crystal:
377
+ index: 13
378
+ enabled: true
379
+ write_interfile_header_files:
380
+ index: 14
381
+ enabled: false
382
+ save_aligned_phantom_images:
383
+ index: 15
384
+ enabled: false
385
+ text_variables:
386
+ 1: ma-megp
387
+ 2: none
388
+ 3: none
389
+ 4: none
390
+ 5: none
391
+ 6: none
392
+ 7: none
393
+ 8: none
394
+ data_files:
395
+ phantom_soft_tissue:
396
+ index: 1
397
+ filepath: h2o
398
+ phantom_bone:
399
+ index: 2
400
+ filepath: bone
401
+ cover_material:
402
+ index: 3
403
+ filepath: al
404
+ crystal_material:
405
+ index: 4
406
+ filepath: nai
407
+ image_file_phantom:
408
+ index: 5
409
+ filepath: cyl_un1
410
+ image_file_source:
411
+ index: 6
412
+ filepath: vox_brn
413
+ backscatter_material:
414
+ index: 7
415
+ filepath: pmt
416
+ energy_resolution_file:
417
+ index: 8
418
+ filepath: none
419
+
420
+