@@ -24,6 +24,7 @@ def init_functional_connectivity_nifti_wf(
2424 name = 'connectivity_wf' ,
2525 skip_reho = False ,
2626 skip_alff = False ,
27+ skip_peraf = False ,
2728):
2829 """Extract BOLD time series and compute functional connectivity.
2930
@@ -59,6 +60,7 @@ def init_functional_connectivity_nifti_wf(
5960 %(temporal_mask)s
6061 alff
6162 reho
63+ peraf
6264 %(atlases)s
6365 atlas_files
6466 atlas_labels_files
@@ -71,6 +73,7 @@ def init_functional_connectivity_nifti_wf(
7173 %(correlations_exact)s
7274 parcellated_alff
7375 parcellated_reho
76+ parcellated_peraf
7477 """
7578 from xcp_d .interfaces .connectivity import ConnectPlot , NiftiParcellate , TSVConnect
7679
@@ -97,6 +100,7 @@ def init_functional_connectivity_nifti_wf(
97100 'temporal_mask' ,
98101 'alff' , # may be Undefined
99102 'reho' ,
103+ 'peraf' ,
100104 'atlases' ,
101105 'atlas_files' ,
102106 'atlas_labels_files' ,
@@ -113,6 +117,7 @@ def init_functional_connectivity_nifti_wf(
113117 'correlations_exact' ,
114118 'parcellated_alff' ,
115119 'parcellated_reho' ,
120+ 'parcellated_peraf' ,
116121 ],
117122 ),
118123 name = 'outputnode' ,
@@ -215,6 +220,23 @@ def init_functional_connectivity_nifti_wf(
215220 (parcellate_alff , outputnode , [('timeseries' , 'parcellated_alff' )]),
216221 ]) # fmt:skip
217222
223+ if not skip_peraf :
224+ parcellate_peraf = pe .MapNode (
225+ NiftiParcellate (min_coverage = min_coverage ),
226+ name = 'parcellate_peraf' ,
227+ iterfield = ['atlas' , 'atlas_labels' ],
228+ mem_gb = mem_gb ['bold' ],
229+ )
230+ workflow .connect ([
231+ (inputnode , parcellate_peraf , [
232+ ('peraf' , 'filtered_file' ),
233+ ('bold_mask' , 'mask' ),
234+ ('atlas_files' , 'atlas' ),
235+ ('atlas_labels_files' , 'atlas_labels' ),
236+ ]),
237+ (parcellate_peraf , outputnode , [('timeseries' , 'parcellated_peraf' )]),
238+ ]) # fmt:skip
239+
218240 return workflow
219241
220242
@@ -226,6 +248,7 @@ def init_functional_connectivity_cifti_wf(
226248 name = 'connectivity_wf' ,
227249 skip_reho = False ,
228250 skip_alff = False ,
251+ skip_peraf = False ,
229252):
230253 """Extract CIFTI time series.
231254
@@ -270,6 +293,7 @@ def init_functional_connectivity_cifti_wf(
270293 %(temporal_mask)s
271294 alff
272295 reho
296+ peraf
273297 %(atlases)s
274298 atlas_files
275299 atlas_labels_files
@@ -286,6 +310,7 @@ def init_functional_connectivity_cifti_wf(
286310 correlations_exact
287311 parcellated_reho
288312 parcellated_alff
313+ parcellated_peraf
289314 """
290315 from xcp_d .interfaces .censoring import Censor
291316 from xcp_d .interfaces .connectivity import CiftiToTSV , ConnectPlot
@@ -315,6 +340,7 @@ def init_functional_connectivity_cifti_wf(
315340 'temporal_mask' ,
316341 'alff' , # may be Undefined
317342 'reho' ,
343+ 'peraf' ,
318344 'atlases' ,
319345 'atlas_files' ,
320346 'atlas_labels_files' ,
@@ -338,6 +364,7 @@ def init_functional_connectivity_cifti_wf(
338364 'correlations_exact' ,
339365 'parcellated_alff' ,
340366 'parcellated_reho' ,
367+ 'parcellated_peraf' ,
341368 ],
342369 ),
343370 name = 'outputnode' ,
@@ -637,4 +664,24 @@ def init_functional_connectivity_cifti_wf(
637664 ]),
638665 ]) # fmt:skip
639666
667+ if not skip_peraf :
668+ parcellate_peraf_wf = init_parcellate_cifti_wf (
669+ mem_gb = mem_gb ,
670+ compute_mask = False ,
671+ name = 'parcellate_peraf_wf' ,
672+ )
673+ workflow .connect ([
674+ (inputnode , parcellate_peraf_wf , [('peraf' , 'inputnode.in_file' ),
675+ ('atlas_files' , 'inputnode.atlas_files' ),
676+ ('atlas_labels_files' , 'inputnode.atlas_labels_files' ),
677+ ]),
678+ (parcellate_bold_wf , parcellate_peraf_wf , [
679+ ('outputnode.vertexwise_coverage' , 'inputnode.vertexwise_coverage' ),
680+ ('outputnode.coverage_cifti' , 'inputnode.coverage_cifti' ),
681+ ]),
682+ (parcellate_peraf_wf , outputnode , [
683+ ('outputnode.parcellated_tsv' , 'parcellated_peraf' ),
684+ ]),
685+ ]) # fmt:skip
686+
640687 return workflow
0 commit comments