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.
- simind_python_connector/__init__.py +72 -0
- simind_python_connector/backends/__init__.py +480 -0
- simind_python_connector/backends/base.py +387 -0
- simind_python_connector/backends/sirf_backend.py +309 -0
- simind_python_connector/backends/stir_backend.py +395 -0
- simind_python_connector/builders/__init__.py +19 -0
- simind_python_connector/builders/acquisition_builder.py +526 -0
- simind_python_connector/builders/image_builder.py +217 -0
- simind_python_connector/configs/AnyScan.yaml +420 -0
- simind_python_connector/configs/Discovery670.yaml +412 -0
- simind_python_connector/configs/Example.yaml +420 -0
- simind_python_connector/configs/MLD001_SCAN0.yaml +426 -0
- simind_python_connector/configs/__init__.py +41 -0
- simind_python_connector/configs/input.smc +51 -0
- simind_python_connector/connectors/__init__.py +24 -0
- simind_python_connector/connectors/_spacing.py +69 -0
- simind_python_connector/connectors/base.py +40 -0
- simind_python_connector/connectors/python_connector.py +355 -0
- simind_python_connector/connectors/pytomography_adaptor.py +263 -0
- simind_python_connector/connectors/sirf_adaptor.py +164 -0
- simind_python_connector/connectors/stir_adaptor.py +164 -0
- simind_python_connector/converters/__init__.py +16 -0
- simind_python_connector/converters/attenuation.py +367 -0
- simind_python_connector/converters/dicom_to_stir.py +3 -0
- simind_python_connector/converters/simind_to_stir.py +769 -0
- simind_python_connector/core/__init__.py +7 -0
- simind_python_connector/core/config.py +939 -0
- simind_python_connector/core/executor.py +96 -0
- simind_python_connector/core/types.py +203 -0
- simind_python_connector/data/Schneider2000.json +222 -0
- simind_python_connector/data/__init__.py +25 -0
- simind_python_connector/data/bone.atn +187 -0
- simind_python_connector/data/h2o.atn +92 -0
- simind_python_connector/utils/__init__.py +120 -0
- simind_python_connector/utils/backend_access.py +121 -0
- simind_python_connector/utils/import_helpers.py +74 -0
- simind_python_connector/utils/interfile_numpy.py +195 -0
- simind_python_connector/utils/interfile_parser.py +175 -0
- simind_python_connector/utils/io_utils.py +14 -0
- simind_python_connector/utils/simind_utils.py +70 -0
- simind_python_connector/utils/sirf_stir_utils.py +194 -0
- simind_python_connector/utils/stir_utils.py +485 -0
- simind_python_connector-1.0.0.dist-info/METADATA +274 -0
- simind_python_connector-1.0.0.dist-info/RECORD +47 -0
- simind_python_connector-1.0.0.dist-info/WHEEL +5 -0
- simind_python_connector-1.0.0.dist-info/licenses/LICENSE +195 -0
- 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
|
+
|