Opinions on this topic are divided and this is why FMRIPREP provides those regressors instead of cleaning up the data for you. I personally would include 6 motion parameters, FD, and aCompCor on run level and mean FD on group level (for both task and rest).
Thanks Chris! The approach of FMRIPREP makes a lot of sense, and your comment is very useful.
Let us know if there are some additional signals you would like FMRIPREP to estimate. Currently, we are planning to add: non-steady state outliers, 24 motion parameters (Friston24), and ICA-AROMA.
Hi all,
I have some questions regarding the confounds.tsv file.
-
In the documentation, it is written that : we have one row per timepoint/volume.
Is every volume compared to the first volume or to the previous volume ? - Are the 6 motion parameters in mm ?
- To process the GLM analysis do we use this following nifti file :
bold_space-T1w_preproc.nii.gz ?
If yes, do we still have to use the 6 motion parameters (because this nifti file is already motion corrected using FSL and ANTs) ?
Last question : in this topic you say that : Confounds from fmriprep: which one would you use for GLM?
Can I know why do you prefer aCompCor to tCompCor ? Is it because the mask provided is an anatomical mask so aCompCor is equivalent to CompCor ?
Sorry if I have missed the answers in the fmriprep documentation.
Thank you for your help,
Kindest regards,
Redwan
- In the documentation, it is written that : we have one row per timepoint/volume.
Is every volume compared to the first volume or to the previous volume?
In general no. In case of DVARS and FramewiseDisplacement the measure is a corresponds to a difference/variance between the corresponding timepoint and the next one (that’s why the last value is ‘n/a’)
- Are the 6 motion parameters in mm ?
No. Translations are in mm, but rotations are in radians.
- To process the GLM analysis do we use this following nifti file :
bold_space-T1w_preproc.nii.gz ?
Only if you analyze a single subject of you do withing subjects design. For group analysis (most studies) you need the file in a common space - for example *space-MNI152NLin2009cAsym_preproc.nii.gz
Can I know why do you prefer aCompCor to tCompCor ? Is it because the mask provided is an anatomical mask so aCompCor is equivalent to CompCor ?
I don’t know what do you mean by CompCor
, but I prefer aCompCor
because it is more theory driven.
To add to Chris’ reply:
If yes, do we still have to use the 6 motion parameters (because this nifti file is already motion corrected using FSL and ANTs) ?
The short answer is: Yes. Those parameters are for denoising, not for performing motion correction.
Motion correction aligns the EPI volumes so that the same voxel refers to the same location in the brain across all volumes, and those parameters are the output of that process. However, there may be noise components that correlate with motion, and you can thus use those parameters to correct for that. (See, e.g., Friston, et al. 1996.)
Thank you guys,
You are very responsive and your answers are always very clear and argued.
Thank you,
Have a good day,
Redwan
I am interested in removing the aCompCorr and motion correction confounds from the *space-MNI152NLin2009cAsym_preproc.nii.gz. Can you recommend a particular software package that you use to do this?
Thanks,
Bob
The confounds file is a TSV (tab-separated values) file, so you can just remove the columns you don’t want to use.
If you don’t want to have head-motion correction, then I think there’s not an option for that in fMRIprep.
Thanks but I was hoping you could recommend the software package that it is easiest to remove these confounds (FSL GLM, nilearn NiftiMasker, etc).
By “remove” you mean regress out then?
Yes. Sorry for not being clear.
fsl_glm will denoise and go from 4d to 4d nifti, niftimasker will call signals.clean which can do detrending. See: http://nilearn.github.io/modules/generated/nilearn.signal.clean.html
Nilearn does not cover the 4D-to-4D scenario in a single function; still it is possible to perform detrending + confound removal during masking, and then use the inverse_transform() method to re-generate a 4D image.
HTH.
from nilearn.image import clean_img is a function built to operate directly on 4D Nifti image (built around signal.clean). May be its worth to try with this function.
While if you are building pipelines, then NiftiMasker or MultiNiftiMasker can do that for you at transform level.
You can also use SPM12s GLM and put the confounds.mat as multiple regressors file you’ve generated in MatLab from the confounds.tsv. file.
Another question related to the topic:
With never version I see a new, denoised (AROMA), 6mm smoothed EPI file. So when I use this file I don’t have to add ICA-AROMA regressors in the GLM as it already has been denoised ?
thanks a lot, mike
Hi Mike,
That’s correct. ICA-AROMA has two denoising strategies: aggressive and non-aggressive. Aggressive is the normal approach of detrending based on the regressors marked as “noise”. Non-aggressive fits all regressors, and then re-adds the components attributed to the “signal” regressors. This isn’t a standard GLM, so we save the ICA-AROMA output as a convenience.
For more details: https://fmriprep.readthedocs.io/en/latest/workflows.html#confounds-estimation
Chris
some confounds are NAN for the first time point. In utilizing the confounds for multiple nuisance regression, SPM applies singular-value decomposition, which can not deal with NAN values. i may have missed some updates, but this seems at odds with what @ChrisGorgolewski said in regards to these confounds (e.g. FD) being based upon the current and next time point. in my confounds.tsv files, there are some confounds with leading NANs, but none with trailing NANs.
would it be terrible to replace NAN values with 0, or will I have to exclude confounds with a leading NAN (e.g. FD) for use in SPM?
finally, this may be a good time to get updated opinions on which confounds to include in GLM analysis.
thanks, Nick
We switched from trailing to leading NaNs a while a go (it really does’t make much of difference). They are still based on current and the next time point.
Ideally I would replace them with mean value (calculated for each regressors separately), but I don’t think using 0 would yield much different results.
BTW there is a new tool in development that takes in outputs of FMRIPREP (or any other 4D nifti + TSV file) and performs various denoising strategies. It’s still work in progress, but you should check it out: https://github.com/arielletambini/denoiser
with leading NANs, wouldn’t that suggest it is using previous and current time point?
replacing NANs with the mean value per regressor sounds like a good plan. that is what the denoiser tool uses, so i’ll go with it and maybe try out that tool later. i think i’ll stick with SPM for now.
as always, thanks much.