Skip to content

Commit 1dbeed1

Browse files
authored
Merge pull request #52 from nipreps/update_metadata_timing
ENH: Update output JSON timing metadata
2 parents 4752269 + f39d310 commit 1dbeed1

File tree

3 files changed

+15
-25
lines changed

3 files changed

+15
-25
lines changed

petprep/workflows/pet/confounds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ def init_carpetplot_wf(
484484
timing_parameters = prepare_timing_parameters(metadata)
485485
conf_plot = pe.Node(
486486
PETSummary(
487-
volume_timing=timing_parameters.get('VolumeTiming'),
487+
volume_timing=timing_parameters.get('FrameTimesStart'),
488488
confounds_list=[
489489
('global_signal', None, 'GS'),
490490
('csf', None, 'CSF'),

petprep/workflows/pet/fit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,8 @@ def init_pet_fit_wf(
206206
config.loggers.workflow.debug('Reusing motion correction transforms: %s', hmc_xforms)
207207

208208
timing_parameters = prepare_timing_parameters(metadata)
209-
frame_durations = timing_parameters.get('AcquisitionDuration')
210-
frame_start_times = timing_parameters.get('VolumeTiming')
209+
frame_durations = timing_parameters.get('FrameDuration')
210+
frame_start_times = timing_parameters.get('FrameTimesStart')
211211

212212
if frame_durations is None or frame_start_times is None:
213213
raise ValueError(

petprep/workflows/pet/outputs.py

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,32 +46,22 @@ def prepare_timing_parameters(metadata: dict):
4646
--------
4747
4848
>>> prepare_timing_parameters({'FrameTimesStart': [0, 2, 6], 'FrameDuration': [2, 4, 4]})
49-
{'VolumeTiming': [0, 2, 6], 'AcquisitionDuration': [2, 4, 4], 'SliceTimingCorrected': False}
49+
{'FrameTimesStart': [0, 2, 6], 'FrameDuration': [2, 4, 4]}
5050
"""
51-
timing_parameters = {
52-
key: metadata[key]
53-
for key in (
54-
'VolumeTiming',
55-
'AcquisitionDuration',
56-
'FrameTimesStart',
57-
'FrameDuration',
58-
)
59-
if key in metadata
60-
}
51+
timing_parameters = {}
52+
53+
frame_times = metadata.get('FrameTimesStart') or metadata.get('VolumeTiming')
54+
frame_duration = metadata.get('FrameDuration') or metadata.get('AcquisitionDuration')
6155

62-
frame_times = timing_parameters.pop('FrameTimesStart', None)
63-
frame_duration = timing_parameters.pop('FrameDuration', None)
56+
if frame_times is not None:
57+
timing_parameters['FrameTimesStart'] = frame_times
6458

65-
if 'RepetitionTime' not in timing_parameters and 'VolumeTiming' not in timing_parameters:
66-
if frame_times is not None:
67-
timing_parameters['VolumeTiming'] = frame_times
68-
if frame_duration is not None:
69-
if isinstance(frame_duration, list) and len(set(frame_duration)) == 1:
70-
timing_parameters.setdefault('AcquisitionDuration', frame_duration[0])
71-
else:
72-
timing_parameters.setdefault('AcquisitionDuration', frame_duration)
59+
if frame_duration is not None:
60+
timing_parameters['FrameDuration'] = frame_duration
7361

74-
timing_parameters['SliceTimingCorrected'] = False
62+
for key in ('InjectedRadioactivity', 'InjectedRadioactivityUnits'):
63+
if key in metadata:
64+
timing_parameters[key] = metadata[key]
7565

7666
return timing_parameters
7767

0 commit comments

Comments
 (0)