3838from ...interfaces .confounds import (
3939 FilterDropped ,
4040 FMRISummary ,
41+ FramewiseDisplacement ,
42+ FSLMotionParams ,
4143 GatherConfounds ,
4244 RenameACompCor ,
4345)
@@ -120,8 +122,8 @@ def init_bold_confs_wf(
120122 when available.
121123 bold_mask
122124 BOLD series mask
123- movpar_file
124- SPM -formatted motion parameters file
125+ motion_xfm
126+ ITK -formatted head motion transforms
125127 rmsd_file
126128 Root mean squared deviation as measured by ``fsl_motion_outliers`` [Jenkinson2002]_.
127129 skip_vols
@@ -221,7 +223,7 @@ def init_bold_confs_wf(
221223 fields = [
222224 'bold' ,
223225 'bold_mask' ,
224- 'movpar_file ' ,
226+ 'motion_xfm ' ,
225227 'rmsd_file' ,
226228 'skip_vols' ,
227229 't1w_mask' ,
@@ -262,8 +264,11 @@ def init_bold_confs_wf(
262264 mem_gb = mem_gb ,
263265 )
264266
267+ # Motion parameters
268+ motion_params = pe .Node (FSLMotionParams (), name = 'motion_params' )
269+
265270 # Frame displacement
266- fdisp = pe .Node (nac . FramewiseDisplacement (parameter_source = 'SPM' ), name = 'fdisp' , mem_gb = mem_gb )
271+ fdisp = pe .Node (FramewiseDisplacement (), name = 'fdisp' , mem_gb = mem_gb )
267272
268273 # Generate aCompCor probseg maps
269274 acc_masks = pe .Node (aCompCorMasks (is_aseg = freesurfer ), name = 'acc_masks' )
@@ -367,12 +372,6 @@ def init_bold_confs_wf(
367372 mem_gb = 0.01 ,
368373 run_without_submitting = True ,
369374 )
370- add_motion_headers = pe .Node (
371- AddTSVHeader (columns = ['trans_x' , 'trans_y' , 'trans_z' , 'rot_x' , 'rot_y' , 'rot_z' ]),
372- name = 'add_motion_headers' ,
373- mem_gb = 0.01 ,
374- run_without_submitting = True ,
375- )
376375 add_rmsd_header = pe .Node (
377376 AddTSVHeader (columns = ['rmsd' ]),
378377 name = 'add_rmsd_header' ,
@@ -518,12 +517,13 @@ def _select_cols(table):
518517 if not col .startswith (('a_comp_cor_' , 't_comp_cor_' , 'std_dvars' ))
519518 ]
520519
521- # fmt:off
522520 workflow .connect ([
523521 # connect inputnode to each non-anatomical confound node
524522 (inputnode , dvars , [('bold' , 'in_file' ),
525523 ('bold_mask' , 'in_mask' )]),
526- (inputnode , fdisp , [('movpar_file' , 'in_file' )]),
524+ (inputnode , motion_params , [('motion_xfm' , 'xfm_file' ),
525+ ('bold_mask' , 'boldref_file' )]),
526+ (motion_params , fdisp , [('out_file' , 'in_file' )]),
527527 # Brain mask
528528 (inputnode , t1w_mask_tfm , [('t1w_mask' , 'input_image' ),
529529 ('bold_mask' , 'reference_image' ),
@@ -566,7 +566,6 @@ def _select_cols(table):
566566 (merge_rois , signals , [('out' , 'label_files' )]),
567567
568568 # Collate computed confounds together
569- (inputnode , add_motion_headers , [('movpar_file' , 'in_file' )]),
570569 (inputnode , add_rmsd_header , [('rmsd_file' , 'in_file' )]),
571570 (dvars , add_dvars_header , [('out_nstd' , 'in_file' )]),
572571 (dvars , add_std_dvars_header , [('out_std' , 'in_file' )]),
@@ -576,7 +575,7 @@ def _select_cols(table):
576575 ('pre_filter_file' , 'cos_basis' )]),
577576 (rename_acompcor , concat , [('components_file' , 'acompcor' )]),
578577 (crowncompcor , concat , [('components_file' , 'crowncompcor' )]),
579- (add_motion_headers , concat , [('out_file' , 'motion' )]),
578+ (motion_params , concat , [('out_file' , 'motion' )]),
580579 (add_rmsd_header , concat , [('out_file' , 'rmsd' )]),
581580 (add_dvars_header , concat , [('out_file' , 'dvars' )]),
582581 (add_std_dvars_header , concat , [('out_file' , 'std_dvars' )]),
@@ -617,8 +616,7 @@ def _select_cols(table):
617616 (concat , conf_corr_plot , [('confounds_file' , 'confounds_file' ),
618617 (('confounds_file' , _select_cols ), 'columns' )]),
619618 (conf_corr_plot , ds_report_conf_corr , [('out_file' , 'in_file' )]),
620- ])
621- # fmt: on
619+ ]) # fmt: skip
622620
623621 return workflow
624622
0 commit comments