Skip to content

Commit fa3aca2

Browse files
committed
Update.
1 parent 4cecb29 commit fa3aca2

File tree

3 files changed

+74
-0
lines changed

3 files changed

+74
-0
lines changed

xcp_d/workflows/bold/cifti.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,15 @@ def init_postprocess_cifti_wf(
473473
]),
474474
]) # fmt:skip
475475

476+
# Skip PerAF calculation if requested
477+
if not skip_peraf:
478+
workflow.connect([
479+
(peraf_wf, connectivity_wf, [('outputnode.peraf', 'inputnode.peraf')]),
480+
(connectivity_wf, postproc_derivatives_wf, [
481+
('outputnode.parcellated_peraf', 'inputnode.parcellated_peraf'),
482+
]),
483+
]) # fmt:skip
484+
476485
if config.workflow.abcc_qc:
477486
# executive summary workflow
478487
execsummary_functional_plots_wf = init_execsummary_functional_plots_wf(

xcp_d/workflows/bold/connectivity.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

xcp_d/workflows/bold/nifti.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,15 @@ def init_postprocess_nifti_wf(
421421
]),
422422
]) # fmt:skip
423423

424+
# Skip PerAF calculation if requested
425+
if not skip_peraf:
426+
workflow.connect([
427+
(peraf_wf, postproc_derivatives_wf, [
428+
('outputnode.peraf', 'inputnode.peraf'),
429+
('outputnode.smoothed_peraf', 'inputnode.smoothed_peraf'),
430+
]),
431+
]) # fmt:skip
432+
424433
if config.execution.atlases:
425434
connectivity_wf = init_functional_connectivity_nifti_wf(
426435
has_multiple_runs=has_multiple_runs,
@@ -469,6 +478,15 @@ def init_postprocess_nifti_wf(
469478
]),
470479
]) # fmt:skip
471480

481+
# Skip PerAF calculation if requested
482+
if not skip_peraf:
483+
workflow.connect([
484+
(peraf_wf, connectivity_wf, [('outputnode.peraf', 'inputnode.peraf')]),
485+
(connectivity_wf, postproc_derivatives_wf, [
486+
('outputnode.parcellated_peraf', 'inputnode.parcellated_peraf'),
487+
]),
488+
]) # fmt:skip
489+
472490
if config.workflow.abcc_qc:
473491
# executive summary workflow
474492
execsummary_functional_plots_wf = init_execsummary_functional_plots_wf(

0 commit comments

Comments
 (0)