Using ICA-AROMA after preprocessing

Hello,

I hope this message finds you well. I’m reaching out regarding our ongoing project where we have a dataset comprising both young and older participants, with 80 individuals in each group. We have already completed the preprocessing phase for the young subjects’ data. However, upon reviewing our ROI, it appears that incorporating ICA-AROMA might enhance our analysis. Given this, I have a couple of queries:

  1. Is it feasible to integrate ICA-AROMA towards the end of the processing pipeline for our young participants? This approach would prevent the need to rerun the entire preprocessing. If this proves successful, we could then process the older subjects’ data without ICA-AROMA initially and subsequently add ICA-AROMA at the end.

  2. OR, should we include ICA-AROMA as part of the standard preprocessing pipeline for our older participants and then reprocess the young subjects’ data from scratch to incorporate ICA-AROMA?

I would greatly appreciate your insights or suggestions on the best course of action. Thank you for your assistance!

Best regards.

If you target the MNI152NLin6Asym output space, you can use ICA-AROMA as described by the tool’s own documentation. It is no longer included in fMRIPrep and will not be re-added.

We do have the stub of a repository for writing a workflow that runs ICA-AROMA on an fMRIPrep derivative dataset: GitHub - nipreps/fmripost-aroma: Run ICA-AROMA on fMRIPrep derivatives Please feel free to contribute to that, if you would like to see it happen sooner.

1 Like

Thanks very much for a quick response!

Thank you for this info! I was wondering if you know what the status of the repository is? It seems like some work has been done in the last few weeks, but I wasn’t sure if there’s a way to tell when the fmripost-aroma might be ready for use. I’m new to using GitHub, so please excuse me if I’ve overlooked something really obvious. Thanks!

It’s not currently working. Once it is, we’ll make a release and publish an image to DockerHub.

1 Like

I was wondering about the status of fmripost-aroma? Is there already a a usable docker or singularity image?

In its current state, it should work pretty well as long as you run fMRIPrep with MNI152NLin6Asym:res-2 derivatives. It can do the ICA and component classification, which produces confound regressors. It can also denoise the MNI152NLin6Asym:res-2 derivatives, but not any others (yet).

I haven’t made a release or deployed a Docker image, but you can try building the Docker image yourself by cloning the repository, then doing docker build -t nipreps/fmripost_aroma:unstable . within the repo.

Any feedback/bug reports would be welcome.

It’s now deploying to DockerHub. You can get the image with docker pull nipreps/fmripost-aroma:unstable. There’s an issue with tagged releases right now, so unstable is all that’s available at the moment.

Hello tsalo,
Thank you for your great work! I’ve been trying to run fmripost-aroma on my MacBook (M1 processor), but I’ve encountered issues getting it to work through Docker. Is there any alternative way to run it on an M1 Mac?

Thank you in advance.

Sorry @Szym.Ty, outside of a container (Docker, Apptainer/Singularity, podman) I can’t think of any way of running fMRIPost-AROMA. You could try installing it as a Python package and running it directly on your machine, but that will almost certainly fail.

If you want to try debugging the Docker image, I’m happy to try to help. I’d recommend opening a new topic for that though, since it’s likely specific to your situation.

Does docker run --platform linux/amd64 ... work?

Hello tsalo and effigies,

Thank you for your responses. Initially, I tried downloading the container from Docker, but it couldn’t find a version compatible with the M1. Then I attempted to build it myself using the command above, but I kept encountering missing libraries from older Ubuntu distributions. I wasn’t too optimistic about running it from the script either and was hoping for a ready-made solution.

Anyway, thank you for your help! I might just try using different hardware.

Hi everyone,

I’m a colleague of Maarten Mennes (the original ICA-AROMA repo owner), and unfortunately, he is indeed not making any effort to support his tool. So here is what I say to people that come to me for doing fmriprep + ICA-AROMA. Since ICA-AROMA is all about time courses that are not very dependent on the frmiprep version (or at least in an arbitrary way), I tell them, until fmripost is ready, to just run fmriprep twice, once with an older fmriprep version to just get ICA-AROMA time-courses, and the second time with the latest fmriprep version. Then they can just add the ICA-AROMA nuisance regressors with the nuisance regressors from the latest fmriprep. It’s a bit of a silly solution, but I think technically such a procedure is quite ok and it works well for people that don’t know how to program the AROMA pipeline themselves.

Here’s another thing that I tell them that may interest you, which is what I call ICA-AROMA2. The thing is, the original development was totally focussed on resting-state fmri, and often took away task-related variance, even when using the “non-aggressive” option. Moreover, for people doing functional analysis, it is more optimal to estimate the task-related variance and IC-AROMA variance in one model, so using the filtered ICA-AROMA output was always a bad idea for fMRI. What I call ICA-AROMA2 is a kind of an ad hoc way of making ICA-AROMA less aggressive by re-classifying ICA nuisance components as non-nuisance when they are co-linear with the task regressors. The empirical threshold we used is to relabel (take out) the ICA AROMA nuisance regressors if the correlation is larger than 0.3. That works very well, but I must say that I think this is a safe thing to do for e.g. SPM users, who only take the betas to the second level, but for mixed effects analyses / FSL users it may see inflate the effects of interest due to the orthogonal variance that is filtered out.

A better way of doing ICA-AROMA2 would be to include the correlation with the design matrix (task regressors) directly in the LDA classification, but this needs more work / a new publication

Hope these are useful thoughts for anyone,

Best,
Marcel