3dTproject fMRIprep Output

Hi all,

I have preprocessed a set of resting state functional images through fMRIprep version 20.2.6. This entailed slice time correction, volume registration, alignment between anat and EPI, normalization to MNI space, and confound time series estimation. The output confounds file includes the 6 realignment parameters, global signal, WM signal, CSF signal, their temporal derivatives, and the squares of each parameter and the parameters derivatives. Additionally, the file includes time series from a number of components output from aCompCor in CSF and WM and associated cosine regressors.

For the next step of the analysis, I would like to use AFNI’s 3dTproject to perform nuisance regression using the first 5 components from CSF and WM aCompCor, the 6 realignment parameters, the first temporal derivatives of the realignment parameters, apply a simultaneous bandpass filter (0.01 - 0.08 Hz), and detrend.

One issue is that the CompCor components are generated based on highpass filtered (0.008 Hz) data. However, the actual output file from fMRIprep that would be carried forward to nuisance regression is not temporally filtered in any way. So, to handle this discrepancy, the fMRIprep team suggests that when using CompCor components to also include cosine regressors into the regression matrix. My understanding is that including the cosine regressors will highpass filter the data consistently with how it was done to estimate aCompCor components originally.

Given that the data needs to be highpass filtered to accommodate the CompCor components, is it possible to also apply bandpass filtering (0.008 - 0.09 Hz)? Put another way, how could I bandpass filter the data while including aCompCor and associated cosine components in the nuisance regression?

Originally, I thought I could address this issue by excluding the cosine regressors from the nuisance regression matrix and instead in the 3dTproject command use the -passband argument with a range of 0.008 - 0.09 Hz.

Any suggestions would be helpful on how to accommodate this issue.

Thank you in advance!

Hi Jenna,

I am not fully clear on this, and it seems like a LOT of regressors. And are you censoring? That would remove basically all of your degrees of freedom.

But if the “associated cosine regressors” are the ones for the bandpass filter, then including them (or telling 3dTproject to also bandpass) seems like what you are saying. There is also 1dBport, which is an AFNI program to generate the sinusoids that would be used in a bandpass filter, which is what afni_proc.py uses to keep track of degrees of freedom.

But if the components are the same, then passing the CompCor sinuoids, using 1dBport or using -passband with the 3dTproject should all do the same thing.

A related question might be whether CompCor terms are indeed the same. They should be, but …

Note that we are not big fans of bandpassing. That might be including very many regressors (more than 600 for 1000 time points).

  • rick

Hi Rick,

Thanks for your reply. I am not censoring but you’re right that it’s a lot of regressors. I wanted to verify with you that the steps I’m taking are correct to create regression matrices and run nuisance regression. For each participant, I created an ortvec matrix consisting of the 22 regressors of interest (10 CompCors and 6 realignment parameters and their first derivatives). This matrix was then fed into 3dDeconvolve to create a xmat file for regression:

3dDeconvolve -input ${sid}_task-rest_run-1_space-MNI152NLin2009cAsym_res-2_desc-preproc_bold_scale.nii.gz \
	-ortvec ${basedir}/aCompCor_RegMatrix/${sid}_${regtype}_confounds.txt ${regtype}_confounds \
	-polort 1 -num_stimts 0 -fout -tout -x1D X.scale.xmat.1D -xjpeg X.scale.jpg \
	-x1D_uncensored X.scale.nocensor.xmat.1D -fitts fitts.scale.nomask.${sid} \
	-errts errts.scale.${sid}.nii.gz -x1D_stop -bucket stats.scale.${sid} 

Then I fed the resulting xmat into 3dTproject and used the -passband argument to perform bandpass filtering:

3dTproject -polort 0 -input ${sid}_task-rest_run-1_space-MNI152NLin2009cAsym_res-2_desc-preproc_bold_scale.nii.gz \
	-ort X.scale.nocensor.xmat.1D -prefix errts.${sid}.scale.${regtype}.tproject.nii.gz \
	-passband 0.008 0.09

Please let me know if you have any comments on the above steps. The goal is to regress the first 5 CompCors from WM/CSF, 12 motion parameters, and bandpass filter the data (0.008-0.09 Hz). Noted on bandpass filtering. I am trying a few variations of preprocessing on this data but am seeing that it’s eating up many DOF.

Thank you,