@@ -43,18 +43,17 @@ def init_bold_confs_wf(mem_gb, metadata, name="bold_confs_wf"):
4343
4444 The following confounds are calculated, with column headings in parentheses:
4545
46- #. Region-wise average signal (``CSF``, ``WhiteMatter``, ``GlobalSignal``)
47- #. DVARS - standard, nonstandard, and voxel-wise standard variants
48- (``stdDVARS``, ``non-stdDVARS``, ``vx-wisestdDVARS``)
49- #. Framewise displacement, based on MCFLIRT motion parameters
50- (``FramewiseDisplacement``)
51- #. Temporal CompCor (``tCompCorXX``)
52- #. Anatomical CompCor (``aCompCorXX``)
46+ #. Region-wise average signal (``csf``, ``white_matter``, ``global_signal``)
47+ #. DVARS - original and standardized variants (``dvars``, ``std_dvars``)
48+ #. Framewise displacement, based on head-motion parameters
49+ (``framewise_displacement``)
50+ #. Temporal CompCor (``t_comp_cor_XX``)
51+ #. Anatomical CompCor (``a_comp_cor_XX``)
5352 #. Cosine basis set for high-pass filtering w/ 0.008 Hz cut-off
54- (``CosineXX ``)
55- #. Non-steady-state volumes (``NonSteadyStateXX ``)
53+ (``cosine_XX ``)
54+ #. Non-steady-state volumes (``non_steady_state_XX ``)
5655 #. Estimated head-motion parameters, in mm and rad
57- (``X ``, ``Y ``, ``Z ``, ``RotX ``, ``RotY ``, ``RotZ ``)
56+ (``trans_x ``, ``trans_y ``, ``trans_z ``, ``rot_x ``, ``rot_y ``, ``rot_z ``)
5857
5958
6059 Prior to estimating aCompCor and tCompCor, non-steady-state volumes are
@@ -172,20 +171,22 @@ def init_bold_confs_wf(mem_gb, metadata, name="bold_confs_wf"):
172171 tcc_msk = pe .Node (niu .Function (function = _maskroi ), name = 'tcc_msk' )
173172
174173 # DVARS
175- dvars = pe .Node (nac .ComputeDVARS (save_all = True , remove_zerovariance = True ),
174+ dvars = pe .Node (nac .ComputeDVARS (save_nstd = True , save_std = True , remove_zerovariance = True ),
176175 name = "dvars" , mem_gb = mem_gb )
177176
178177 # Frame displacement
179178 fdisp = pe .Node (nac .FramewiseDisplacement (parameter_source = "SPM" ),
180179 name = "fdisp" , mem_gb = mem_gb )
181180
182181 # a/t-CompCor
183- tcompcor = pe .Node (TCompCor (
184- components_file = 'tcompcor.tsv' , pre_filter = 'cosine' , save_pre_filter = True ,
185- percentile_threshold = .05 ), name = "tcompcor" , mem_gb = mem_gb )
186-
187- acompcor = pe .Node (ACompCor (
188- components_file = 'acompcor.tsv' , pre_filter = 'cosine' , save_pre_filter = True ),
182+ tcompcor = pe .Node (
183+ TCompCor (components_file = 'tcompcor.tsv' , header_prefix = 't_comp_cor_' , pre_filter = 'cosine' ,
184+ save_pre_filter = True , percentile_threshold = .05 ),
185+ name = "tcompcor" , mem_gb = mem_gb )
186+
187+ acompcor = pe .Node (
188+ ACompCor (components_file = 'acompcor.tsv' , header_prefix = 'a_comp_cor_' , pre_filter = 'cosine' ,
189+ save_pre_filter = True ),
189190 name = "acompcor" , mem_gb = mem_gb )
190191
191192 # Set TR if present
@@ -195,12 +196,19 @@ def init_bold_confs_wf(mem_gb, metadata, name="bold_confs_wf"):
195196
196197 # Global and segment regressors
197198 mrg_lbl = pe .Node (niu .Merge (3 ), name = 'merge_rois' , run_without_submitting = True )
198- signals = pe .Node (SignalExtraction (class_labels = ["CSF " , "WhiteMatter " , "GlobalSignal " ]),
199+ signals = pe .Node (SignalExtraction (class_labels = ["csf " , "white_matter " , "global_signal " ]),
199200 name = "signals" , mem_gb = mem_gb )
200201
201202 # Arrange confounds
202- add_header = pe .Node (AddTSVHeader (columns = ["X" , "Y" , "Z" , "RotX" , "RotY" , "RotZ" ]),
203- name = "add_header" , mem_gb = 0.01 , run_without_submitting = True )
203+ add_dvars_header = pe .Node (
204+ AddTSVHeader (columns = ["dvars" ]),
205+ name = "add_dvars_header" , mem_gb = 0.01 , run_without_submitting = True )
206+ add_std_dvars_header = pe .Node (
207+ AddTSVHeader (columns = ["std_dvars" ]),
208+ name = "add_std_dvars_header" , mem_gb = 0.01 , run_without_submitting = True )
209+ add_motion_headers = pe .Node (
210+ AddTSVHeader (columns = ["trans_x" , "trans_y" , "trans_z" , "rot_x" , "rot_y" , "rot_z" ]),
211+ name = "add_motion_headers" , mem_gb = 0.01 , run_without_submitting = True )
204212 concat = pe .Node (GatherConfounds (), name = "concat" , mem_gb = 0.01 , run_without_submitting = True )
205213
206214 # Generate reportlet
@@ -273,14 +281,17 @@ def _pick_wm(files):
273281 (mrg_lbl , signals , [('out' , 'label_files' )]),
274282
275283 # Collate computed confounds together
276- (inputnode , add_header , [('movpar_file' , 'in_file' )]),
284+ (inputnode , add_motion_headers , [('movpar_file' , 'in_file' )]),
285+ (dvars , add_dvars_header , [('out_nstd' , 'in_file' )]),
286+ (dvars , add_std_dvars_header , [('out_std' , 'in_file' )]),
277287 (signals , concat , [('out_file' , 'signals' )]),
278- (dvars , concat , [('out_all' , 'dvars' )]),
279288 (fdisp , concat , [('out_file' , 'fd' )]),
280289 (tcompcor , concat , [('components_file' , 'tcompcor' ),
281290 ('pre_filter_file' , 'cos_basis' )]),
282291 (acompcor , concat , [('components_file' , 'acompcor' )]),
283- (add_header , concat , [('out_file' , 'motion' )]),
292+ (add_motion_headers , concat , [('out_file' , 'motion' )]),
293+ (add_dvars_header , concat , [('out_file' , 'dvars' )]),
294+ (add_std_dvars_header , concat , [('out_file' , 'std_dvars' )]),
284295
285296 # Set outputs
286297 (concat , outputnode , [('confounds_file' , 'confounds_file' )]),
@@ -356,11 +367,11 @@ def init_carpetplot_wf(mem_gb, metadata, name="bold_carpet_wf"):
356367 conf_plot = pe .Node (FMRISummary (
357368 tr = metadata ['RepetitionTime' ],
358369 confounds_list = [
359- ('GlobalSignal ' , None , 'GS' ),
360- ('CSF ' , None , 'GSCSF' ),
361- ('WhiteMatter ' , None , 'GSWM' ),
362- ('stdDVARS ' , None , 'DVARS' ),
363- ('FramewiseDisplacement ' , 'mm' , 'FD' )]),
370+ ('global_signal ' , None , 'GS' ),
371+ ('csf ' , None , 'GSCSF' ),
372+ ('white_matter ' , None , 'GSWM' ),
373+ ('std_dvars ' , None , 'DVARS' ),
374+ ('framewise_displacement ' , 'mm' , 'FD' )]),
364375 name = 'conf_plot' , mem_gb = mem_gb )
365376 ds_report_bold_conf = pe .Node (
366377 DerivativesDataSink (suffix = 'carpetplot' ),
0 commit comments