Skip to content

Commit f5b9e35

Browse files
committed
sketch confounds metadata sink
1 parent b0a7490 commit f5b9e35

File tree

2 files changed

+20
-27
lines changed

2 files changed

+20
-27
lines changed

fmriprep/workflows/bold/base.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ def init_func_preproc_wf(bold_file, ignore, freesurfer,
360360
'bold_mni', 'bold_mni_ref' 'bold_mask_mni', 'bold_aseg_mni', 'bold_aparc_mni',
361361
'bold_cifti', 'cifti_variant', 'cifti_variant_key', 'confounds', 'surfaces',
362362
'aroma_noise_ics', 'melodic_mix', 'nonaggr_denoised_file',
363-
'tcompcor_metadata', 'acompcor_metadata']),
363+
'confounds_metadata']),
364364
name='outputnode')
365365

366366
# BOLD buffer: an identity used as a pointer to either the original BOLD
@@ -403,8 +403,7 @@ def init_func_preproc_wf(bold_file, ignore, freesurfer,
403403
('bold_cifti', 'inputnode.bold_cifti'),
404404
('cifti_variant', 'inputnode.cifti_variant'),
405405
('cifti_variant_key', 'inputnode.cifti_variant_key'),
406-
('tcompcor_metadata', 'inputnode.tcompcor_metadata'),
407-
('acompcor_metadata', 'inputnode.acompcor_metadata')
406+
('confounds_metadata', 'inputnode.confounds_metadata'),
408407
]),
409408
])
410409

@@ -595,10 +594,7 @@ def init_func_preproc_wf(bold_file, ignore, freesurfer,
595594
('outputnode.confounds_file', 'confounds'),
596595
]),
597596
(bold_confounds_wf, outputnode, [
598-
('outputnode.acompcor_metadata', 'acompcor_metadata'),
599-
]),
600-
(bold_confounds_wf, outputnode, [
601-
('outputnode.tcompcor_metadata', 'tcompcor_metadata'),
597+
('outputnode.confounds_metadata', 'confounds_metadata'),
602598
]),
603599
# Connect bold_bold_trans_wf
604600
(bold_split, bold_bold_trans_wf, [
@@ -885,28 +881,17 @@ def init_func_derivatives_wf(output_dir, output_spaces, template, freesurfer,
885881
'bold_aparc_mni', 'cifti_variant_key',
886882
'confounds', 'surfaces', 'aroma_noise_ics', 'melodic_mix',
887883
'nonaggr_denoised_file', 'bold_cifti', 'cifti_variant',
888-
'tcompcor_metadata', 'acompcor_metadata']),
884+
'confounds_metadata']),
889885
name='inputnode')
890886

891887
ds_confounds = pe.Node(DerivativesDataSink(
892888
base_directory=output_dir, desc='confounds', suffix='regressors'),
893889
name="ds_confounds", run_without_submitting=True,
894890
mem_gb=DEFAULT_MEMORY_MIN_GB)
895-
ds_tcc_metadata = pe.Node(DerivativesDataSink(
896-
base_directory=output_dir, desc='tcompcor', suffix='decomposition'),
897-
name="ds_tcc_metadata", run_without_submitting=True,
898-
mem_gb=DEFAULT_MEMORY_MIN_GB)
899-
ds_acc_metadata = pe.Node(DerivativesDataSink(
900-
base_directory=output_dir, desc='acompcor', suffix='decomposition'),
901-
name="ds_acc_metadata", run_without_submitting=True,
902-
mem_gb=DEFAULT_MEMORY_MIN_GB)
903891
workflow.connect([
904892
(inputnode, ds_confounds, [('source_file', 'source_file'),
905-
('confounds', 'in_file')]),
906-
(inputnode, ds_tcc_metadata, [('source_file', 'source_file'),
907-
('tcompcor_metadata', 'in_file')]),
908-
(inputnode, ds_acc_metadata, [('source_file', 'source_file'),
909-
('acompcor_metadata', 'in_file')]),
893+
('confounds', 'in_file'),
894+
('confounds_metadata', 'meta_dict')]),
910895
])
911896

912897
# Resample to T1w space

fmriprep/workflows/bold/confounds.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
)
2929
from niworkflows.interfaces.segmentation import ICA_AROMARPT
3030
from niworkflows.interfaces.utils import (
31-
TPM2ROI, AddTPMs, AddTSVHeader, TSV2JSON
31+
TPM2ROI, AddTPMs, AddTSVHeader, TSV2JSON, DictMerge
3232
)
3333

3434
from ...interfaces import (
@@ -127,6 +127,8 @@ def init_bold_confs_wf(mem_gb, metadata, return_all_components=False,
127127
rois_report
128128
Reportlet visualizing white-matter/CSF mask used for aCompCor,
129129
the ROI for tCompCor and the BOLD brain mask.
130+
confounds_metadata
131+
Confounds metadata dictionary.
130132
131133
"""
132134
workflow = Workflow(name=name)
@@ -166,7 +168,7 @@ def init_bold_confs_wf(mem_gb, metadata, return_all_components=False,
166168
't1_mask', 't1_tpms', 't1_bold_xform']),
167169
name='inputnode')
168170
outputnode = pe.Node(niu.IdentityInterface(
169-
fields=['confounds_file', 'tcompcor_metadata', 'acompcor_metadata']),
171+
fields=['confounds_file', 'confounds_metadata']),
170172
name='outputnode')
171173

172174
# Get masks ready in T1w space
@@ -250,13 +252,17 @@ def init_bold_confs_wf(mem_gb, metadata, return_all_components=False,
250252

251253
# CompCor metadata
252254
tcc_metadata_fmt = pe.Node(
253-
TSV2JSON(index_column='component', drop_columns=['mask'],
255+
TSV2JSON(index_column='component', drop_columns=['mask'], output=None,
254256
additional_metadata={'Method': 'tCompCor'}, enforce_case=True),
255257
name='tcc_metadata_fmt')
256258
acc_metadata_fmt = pe.Node(
257-
TSV2JSON(index_column='component',
259+
TSV2JSON(index_column='component', output=None,
258260
additional_metadata={'Method': 'aCompCor'}, enforce_case=True),
259261
name='acc_metadata_fmt')
262+
mrg_conf_metadata = pe.Node(niu.Merge(2), name='merge_confound_metadata',
263+
run_without_submitting=True)
264+
mrg_conf_metadata2 = pe.Node(DictMerge(), name='merge_confound_metadata2',
265+
run_without_submitting=True)
260266

261267
# Expand model to include derivatives and quadratics
262268
model_expand = pe.Node(ExpandModel(
@@ -378,15 +384,17 @@ def _pick_wm(files):
378384
# Confounds metadata
379385
(tcompcor, tcc_metadata_fmt, [('metadata_file', 'in_file')]),
380386
(acompcor, acc_metadata_fmt, [('metadata_file', 'in_file')]),
387+
(tcc_metadata_fmt, mrg_conf_metadata, [('output', 'in1')]),
388+
(acc_metadata_fmt, mrg_conf_metadata, [('output', 'in2')]),
389+
(mrg_conf_metadata, mrg_conf_metadata2, [('out', 'in_dicts')]),
381390

382391
# Expand the model with derivatives, quadratics, and spikes
383392
(concat, model_expand, [('confounds_file', 'confounds_file')]),
384393
(model_expand, spike_regress, [('confounds_file', 'confounds_file')]),
385394

386395
# Set outputs
387396
(spike_regress, outputnode, [('confounds_file', 'confounds_file')]),
388-
(tcc_metadata_fmt, outputnode, [('out_file', 'tcompcor_metadata')]),
389-
(acc_metadata_fmt, outputnode, [('out_file', 'acompcor_metadata')]),
397+
(mrg_conf_metadata2, outputnode, [('out_dict', 'confounds_metadata')]),
390398
(inputnode, rois_plot, [('bold', 'in_file'),
391399
('bold_mask', 'in_mask')]),
392400
(tcompcor, mrg_compcor, [('high_variance_masks', 'in1')]),

0 commit comments

Comments
 (0)