Creating censor file for 3dDeconvolve

Hello,

I have been pre-processing my data using FMRIPREP, which incorporates FSL’s mcflirt for volume alignment rather than AFNI’s volreg. As such, I can’t use volreg’s -1Dfile option to create the motion parameters. Foruntately, fmriprep provides a confounds.tsv file for each EPI run, which includes motion parameters. What I’ve done is concatenate all the confounds.tsv files into one, removed the headers, and selected only the motion parameter columns (6 in total, where the translations are in mm, but rotations are in radians).

Next I generate the censor files:
1d_tool.py
-infile $data_dir/$s/fmriprep/sub-${s}/func/sub-${s}_MoPar_all.1D
-derivative
-collapse_cols euclidean_norm
-moderate_mask -1.0 1.0
-show_censor_count
-write_censor $data_dir/$s/fmriprep/sub-${s}/func/sub-${s}.censor1.0mm_all.1D
-write_CENSORTR $data_dir/$s/fmriprep/sub-${s}/func/sub-${s}.censorTR1.0mm_all.1D

Would this be an appropriate way to generate censor files (if some of the pre-processing isn’t done with AFNI tools) in order to be used in 3dDeconvolve with the -censor option?

Thank you.

Since the rotations in 3dvolreg are in degrees, those values
should be converted before taking the euclidean norm. One
option would be to multiply by 180/pi = 57.3, say. Assuming
the first three are shift and the next are rotations, they could
be applied via the ‘weighted_enorm’ function, rather than just
enorm, e.g.

-derivative -collapse_cols weighted_enorm
-weight_vec 1 1 1 57.3 57.3 57.3

See 1d_tool.py -help, Example 9c, though it does not actually censor.

Note that 1mm is a fairly high threshold for censoring.
Are these subjects prone to motion?

  • rick

Hi Rick,

I have a question regarding the values in motion_deriv.1D file (generated by afni_proc.py, or actually by 1d_tool.py with -derivative option). When I look at the enorm values (from motion_sub01_enorm.1D), it makes sense to me that the first value of each run is 0, since the derivatives of each run are specified to 0. However, in motion_deriv.1D, there are small numbers for the first volume (TR) of each run. And it seems that all derivatives for following TRs in that run are adjusted by these small numbers of the first TR, as compared to the situation of specifying derivatives for the first TR to 0. Where do these numbers come from? and why? e.g., for use in regression? Thanks!

Qiuhai

Hi Qiuhai,

That’s a good observation, that every time point is offset by those same values.
And yes, it is done for the regression.

That is the effect of the -demean option. Every time point has the original mean
subtracted out. It has only the very minor effect on the regression to make the
constant terms from the regression, if one asks for them, more representative
as a baseline value.

Remove -demean from the 1d_tool.py command that makes the motion_deriv.1D
dataset, and you should see the zeros. Also, that will not affect any of your beta
weights of interest (just the constant terms).

  • rick

Thanks rick! Now I can see that using -derivative and -demean together means de-meaning of derivatives.

Hi rick,

I do still have a question regarding the censor file in regression. I notice that, by default, it censored the high motion volume (based on enorm) and one volume before. Is there any reference for doing this? I mean like why high motion volume plus one BEFORE, but not both BEFORE and AFTER? I know 1d_tool.py can add AFTER as well, but just want to check in if there is a reference that I can cite on this issue. Thanks!

Qiuhai