Skip to content

Commit 8a71cbe

Browse files
authored
Merge pull request #54 from nipreps/add_seg_entity
ENH: Add seg entity to segmentations and time activity curves
2 parents 1dbeed1 + e49b27e commit 8a71cbe

File tree

6 files changed

+26
-13
lines changed

6 files changed

+26
-13
lines changed

docs/outputs.rst

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,10 @@ from an anatomical segmentation. The resulting table has ``FrameTimesStart`` and
336336

337337
sub-<subject_label>/
338338
pet/
339-
sub-<subject_label>_[specifiers]_desc-preproc_timeseries.tsv
339+
sub-<subject_label>_[specifiers]_seg-<seg>_desc-preproc_timeseries.tsv
340+
341+
The ``desc-preproc`` entity indicates that the curves were derived from the
342+
preprocessed PET series.
340343

341344
If partial volume correction is applied, the filenames also include the
342345
``_pvc-<method>`` entity, indicating the algorithm used.
@@ -347,10 +350,12 @@ table containing the mean uptake within that region::
347350

348351
sub-<subject_label>/
349352
pet/
350-
sub-<subject_label>_[specifiers]_desc-<seg>_ref-<ref>_timeseries.tsv
353+
sub-<subject_label>_[specifiers]_seg-<seg>_ref-<ref>_desc-preproc_timeseries.tsv
351354

352355
The ``ref`` entity captures the reference region identifier provided via the
353356
:ref:`CLI options <cli_refmask>` ``--ref-mask-name`` and ``--ref-mask-index``.
357+
As with the primary TACs, ``desc-preproc`` reflects use of the preprocessed PET
358+
series.
354359
When partial volume correction is performed, the ``_pvc-<method>`` entity is
355360
also included.
356361

docs/workflows.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -573,8 +573,8 @@ These workflows rely on pretrained segmentation models distributed with
573573
``petprep.data.segmentation``. The first time a particular model is requested it
574574
will be automatically downloaded to the *PETPrep* cache directory, so ensure
575575
sufficient disk space is available. Each segmentation produces a labeled NIfTI
576-
image ``desc-<seg>_dseg.nii.gz`` and a TSV table of region volumes
577-
``desc-<seg>_morph.tsv`` saved under the ``anat/`` derivatives folder.
576+
image ``seg-<seg>_dseg.nii.gz`` and a TSV table of region volumes
577+
``seg-<seg>_morph.tsv`` saved under the ``anat/`` derivatives folder.
578578

579579
For example, the raphe segmentation can be enabled with::
580580

petprep/workflows/pet/base.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,9 @@ def init_pet_wf(
700700
DerivativesDataSink(
701701
base_directory=petprep_dir,
702702
suffix='timeseries',
703-
desc=config.workflow.seg,
703+
seg=config.workflow.seg,
704+
desc='preproc',
705+
allowed_entities=('seg',),
704706
TaskName=all_metadata[0].get('TaskName'),
705707
**prepare_timing_parameters(all_metadata[0]),
706708
),
@@ -732,9 +734,10 @@ def init_pet_wf(
732734
DerivativesDataSink(
733735
base_directory=petprep_dir,
734736
suffix='timeseries',
735-
desc=config.workflow.seg,
737+
seg=config.workflow.seg,
738+
desc='preproc',
736739
ref=config.workflow.ref_mask_name,
737-
allowed_entities=('ref',),
740+
allowed_entities=('seg', 'ref'),
738741
TaskName=all_metadata[0].get('TaskName'),
739742
**prepare_timing_parameters(all_metadata[0]),
740743
),

petprep/workflows/pet/fit.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -462,9 +462,10 @@ def init_pet_fit_wf(
462462
DerivativesDataSink(
463463
base_directory=config.execution.petprep_dir,
464464
suffix='timeseries',
465-
desc=config.workflow.seg,
465+
seg=config.workflow.seg,
466+
desc='preproc',
466467
ref=config.workflow.ref_mask_name,
467-
allowed_entities=('ref',),
468+
allowed_entities=('seg', 'ref'),
468469
TaskName=metadata.get('TaskName'),
469470
**timing_parameters,
470471
),

petprep/workflows/pet/segmentation.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ def _build_nodes(
167167
nodes['ds_seg'] = pe.Node(
168168
DerivativesDataSink(
169169
base_directory=config.execution.petprep_dir,
170-
desc=desc,
170+
seg=seg,
171+
allowed_entities=('seg',),
171172
suffix='dseg',
172173
extension='.nii.gz',
173174
compress=True,
@@ -217,7 +218,8 @@ def _build_nodes(
217218
nodes['ds_dseg_tsv'] = pe.Node(
218219
DerivativesDataSink(
219220
base_directory=config.execution.petprep_dir,
220-
desc=desc,
221+
seg=seg,
222+
allowed_entities=('seg',),
221223
suffix='dseg',
222224
extension='.tsv',
223225
datatype='anat',
@@ -230,7 +232,8 @@ def _build_nodes(
230232
nodes['ds_morph_tsv'] = pe.Node(
231233
DerivativesDataSink(
232234
base_directory=config.execution.petprep_dir,
233-
desc=desc,
235+
seg=seg,
236+
allowed_entities=('seg',),
234237
suffix='morph',
235238
extension='.tsv',
236239
datatype='anat',

petprep/workflows/pet/tests/test_fit.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,8 @@ def test_refmask_report_connections(bids_root: Path, tmp_path: Path):
243243
assert 'ds_ref_tacs' in wf.list_node_names()
244244
ds_tacs = wf.get_node('ds_ref_tacs')
245245
assert ds_tacs.inputs.ref == 'cerebellum'
246-
assert ds_tacs.inputs.desc == config.workflow.seg
246+
assert ds_tacs.inputs.seg == config.workflow.seg
247+
assert ds_tacs.inputs.desc == 'preproc'
247248
edge_tacs = wf._graph.get_edge_data(wf.get_node('pet_ref_tacs_wf'), ds_tacs)
248249
assert ('outputnode.timeseries', 'in_file') in edge_tacs['connect']
249250

0 commit comments

Comments
 (0)