Best practices for AROMA and fmriprep

I’ve seen a couple of threads about how to incorporate ICA-AROMA outputs and nuisance regressor outputs from fmriprep, but I wanted to revisit the issue a bit.

As jdkent mentions in the fmriprep github thread, here:

the authors of ICA-AROMA suggest doing participant-level processing as follows:

  1. Motion-correct, intensity-normalize, smooth at 6mm
  2. run ICA-AROMA and remove ICs from data using fsl_regfilt
  3. regress out WM, CSF and linear trend nuisance regressors, then do high-pass filtering.
  4. Stats

It’s not clear to me how I would implement this approach using fmriprep outputs. In the AROMA paper’s approach, are the WM and CSF regressors at step 3 calculated after ICA-AROMA noise ICs have been removed? Or are they recalculated on the denoised outputs? Or am I reading Tom Nichols comments from the github thread correctly, and it doesn’t matter if you use WM/CSF regressors calculated before or after denoising?



To follow this particular denoising scheme you would need to apply step 3 to *bold_space-MNI152NLin2009cAsym_variant-smoothAROMAnonaggr_preproc.nii.gz files produced by FMRIPREP.

Please not that FMRIPREP calculates WM and CSF regressors before applying AROMA denoising. I don’t know hos is it done in the AROMA paper.

PS Check out this tool for applying different denoising strategies to FMRIPREP outputs:

1 Like

Sorry, I should have written my post more clearly – this is actually the crux of my question. I don’t know how it is done in the AROMA paper, either, and more importantly, I don’t have a solid understanding of how much it matters whether I use WM/CSF regressors created before or after denoising. In other words, can I just use the fmriprep outputs as they are, or do I need to recalculate the WM/CSF signals if I’m trying to use AROMA in the most “correct” way?

From the paper, they heavily imply the nuisance regression was completed after aroma denoising, as I mentioned in the comment thread. As to whether it’s better or worse for the nuisance regressors to be derived from the denoised data or not… that appears to be a trickier question.

1 Like

I guess we could provide additional pair of CSF and WM regressors calculated after non aggressive AROMA denoising. It should be a straightforward pull request - @toddt you should give it a try!

1 Like


First of all thanks for the amazing work on fmriprep!

I would like to follow up on the question above, and ask whether you ended up creating regressors (in particular WM and CSF) calculated post AROMA, as discussed also here
I understand that you do not want to provide already made decisions but I would be curious to know whether you decided that it would be sensible to use these regressors instead of the ones calculated before AROMA. Finally (sorry for the many questions), I saw that you recommended here denoiser Standarized Resting State processing with fmriprep to perform subsequent processing steps on fmriprep output. Would you recommend it to remove WM and CSF and high pass filter the images after performing ICA AROMA in fmriprep ?

Thank you very much in advance for any advice!


As of v1.4.0, fmriprep computes the WM and CSF regressors from the BOLD pre-AROMA time series. In addition to the discussion in the issue linked in the OP, you can find simulation results here that evaluate potential implications of this implementation. There’s also a previous post/thread that briefly discusses this here.

I haven’t used denoiser, so I can’t make software-specific comments on usage, but removing the WM/CSF signal and filtering the data sounds reasonable. (We’ve also found that GSR can enhance ICA-AROMA performance.) In general, I would strongly encourage using a simultaneous bandpass+regression approach if at all possible (for instance, fitting a cosine basis filter to the data during the confound regression step) instead of regressing and then filtering.

1 Like

Hi, thank you very much for your answer and the links. To conclude, do I understand correctly that it should be okay to use WM, CSF and GSR confounders as they are currently calculated pre-AROMA also in case of non aggressive denoising?

1 Like

Hi everyone, sorry in advance for the follow up and basic question. I have successfully ran mriqc followed by fmriprep on some rsfMRI data with ICA AROMA and I now would like to regress out WM, CSF, possibly GSR, and perform bandpass filtering. From my understanding, it is not a good practice to do this sequentially and to avoid re-introducing noise it is recommended to perform these steps in once. So far I have looked at fsl_regfilt but I don’t know how to combine bandpass filtering and regression in one matrix. I have also looked at denoiser but I am getting many errors where it seems to have assumptions on how your environment is set-up. I was wondering if anyone have theoretical and practical suggestions to perform denoising+bandpass filtering after fmriprep. Thank you!


Any follow up to this? I am in the same situation as @ElenaP :slight_smile:

@rastko how would you implement the simultaneous bandpass+regression approach? Coming to this post from Saren H Seeley’s where it notes:

If you’re using the non-aggressively denoised AROMA files (*_bold_space-MNI152NLin2009cAsym_variant-smoothAROMAnonaggr_preproc.nii ), you do NOT need to use the confounds “X”, “Y”, “Z”, “RotX”, “RotY”, “RotZ” as you would with the regular preprocessed files.

Does that mean I should use directly the non-aggressive AROMA fMRI for any brain function connectivity analyses? Thanks!

The afni function 1dBport creates a set of columns of sines and cosines for the purpose of bandpassing via regression. I have not yet used it myself, so I cannot give specifics. You may be able to include these in the non-aggressive regression.

1 Like