|
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