|
28 | 28 |
|
29 | 29 | """ |
30 | 30 |
|
| 31 | +from nipype.algorithms import confounds as nac |
31 | 32 | from nipype.interfaces import utility as niu |
32 | 33 | from nipype.pipeline import engine as pe |
33 | 34 | from templateflow.api import get as get_template |
@@ -242,11 +243,7 @@ def init_pet_confs_wf( |
242 | 243 |
|
243 | 244 | # DVARS |
244 | 245 | dvars = pe.Node( |
245 | | - niu.Function( |
246 | | - function=_compute_dvars, |
247 | | - input_names=['pet', 'mask'], |
248 | | - output_names=['out_nstd', 'out_std'], |
249 | | - ), |
| 246 | + nac.ComputeDVARS(save_nstd=True, save_std=True, remove_zerovariance=True), |
250 | 247 | name='dvars', |
251 | 248 | mem_gb=mem_gb, |
252 | 249 | ) |
@@ -354,8 +351,8 @@ def init_pet_confs_wf( |
354 | 351 |
|
355 | 352 | workflow.connect([ |
356 | 353 | # connect inputnode to each non-anatomical confound node |
357 | | - (inputnode, dvars, [('pet', 'pet'), |
358 | | - ('pet_mask', 'mask')]), |
| 354 | + (inputnode, dvars, [('pet', 'in_file'), |
| 355 | + ('pet_mask', 'in_mask')]), |
359 | 356 | (inputnode, motion_params, [('motion_xfm', 'xfm_file'), |
360 | 357 | ('petref', 'petref_file')]), |
361 | 358 | (inputnode, rmsd, [('motion_xfm', 'xfm_file'), |
@@ -562,30 +559,6 @@ def init_carpetplot_wf( |
562 | 559 | return workflow |
563 | 560 |
|
564 | 561 |
|
565 | | -def _compute_dvars(pet, mask): |
566 | | - """Compute DVARS only when the timeseries has at least three frames.""" |
567 | | - from pathlib import Path |
568 | | - |
569 | | - import nibabel as nb |
570 | | - import numpy as np |
571 | | - from nipype.algorithms import confounds as nac |
572 | | - |
573 | | - nvols = nb.load(pet).shape[-1] |
574 | | - if nvols < 3: |
575 | | - data = np.zeros((nvols,), dtype=float) |
576 | | - out_nstd = Path('dvars.nstd.tsv').absolute() |
577 | | - out_std = Path('dvars.std.tsv').absolute() |
578 | | - np.savetxt(out_nstd, data) |
579 | | - np.savetxt(out_std, data) |
580 | | - return str(out_nstd), str(out_std) |
581 | | - |
582 | | - dvars = nac.ComputeDVARS(save_nstd=True, save_std=True, remove_zerovariance=True) |
583 | | - dvars.inputs.in_file = pet |
584 | | - dvars.inputs.in_mask = mask |
585 | | - res = dvars.run() |
586 | | - return res.outputs.out_nstd, res.outputs.out_std |
587 | | - |
588 | | - |
589 | 562 | def _binary_union(mask1, mask2): |
590 | 563 | """Generate the union of two masks.""" |
591 | 564 | from pathlib import Path |
|
0 commit comments