ICA FIX wth fMRIPrep?

Any plans/progress in having an ICA FIX option in fMRIPrep? Has anyone run fMRIPrep outputs through ICA FIX and be willing to share implementation hints?

I see that ICA AROMA is implemented, but we’re duplicating an existing resting state processing pipeline (based on Siegel2016) for comparison purposes, so need FIX. I saw a twitter discussion of FIX back in August 2017, but can’t tell if it’s proceeded further.


1 Like

We have not considered implementing ICA FIX because of the need to train a new classifier for every sequence/scanner. However, it would be great to explore this topic. How would the ideal support for ICA FIX in FMRIPREP look like in your opinion?

Hey Chris,
I’m responding on behalf of Jo,
We are using the ICA-FIX from the hcp pipelines right now. The normal processing stream for us is:

  • run both resting state and task images through the HCP
  • push the resulting resting state images through the HCP’s ICA-FIX
  • Take the output (*_hp2000.dtseries.nii) and pass them into the Siegel16 Pipeline to generate Functional Connectivity Matrices

An Ideal implementation for us, would be some parameter when running fmriprep that would tac the HCP’s ICA-FIX for Gifti’s and Nifti’s on to the end of preprocessing.


@mitchem890 do you think that creating a small script/tool that understands fmriprep’s output and runs ICA-FIX would be too much added friction to your stream?

I see. Such solution would only yield valid results if the input data was HCP (since that what was the classifier trained on). Correct?

I actually don’t know how correct that is, and would love to hear if resting state ICA preprocessing gurus have insights. It’s certainly the case that you need to specify training data or which set of pre-calculated weights to use ICA-FIX, but I honestly don’t have a sense of how sensitive the output is to the choice. If it’s very sensitive to proper hand-tuning I can see that as a reason to not incorporate ICA-FIX into fMRIPrep.

For background, the dataset we’re concerned about here is sort of close to the "HCP_hp2000.RData" description, but not a perfect match. Digging through my notes, we’d spot-checked the identified component images for a few people back in 2016, decided they were ok, and proceeded. Resting state runs are a comparatively small part of the study I’m involved with, and a part I spend very little time thinking about. But that’s not an excuse for neglecting those runs entirely, and if we switch all preprocessing over to fMRIPrep the resting state runs will need to be included!

1 Like

Thanks for the comments; I withdraw my feature request for an ICA-FIX fMRIPrep option. We’ll be giving our resting state processing a close look in the next few weeks, most likely omitting ICA FIX.

FSL put out a couple of different classifiers to use as a base (including one trained from single band data). So that is not so much the issue.

The harder bit is that ICA FIX uses many different files from the FEAT (and MELODIC) outputs to train the build the features uses in the classifier, and expects the FSL folder structure, so it’s not too easy to run outside of an FSL workflow. It would be a decent amount of work to get it to work with BIDS common derivatives.


I am re-opening this thread because I have ran FMRIPrep using the paediatric template and I would like to use FSL FIX after training it on some paediatric data. As already mentioned here, FIX expects the input to be in FSL format. I was wondering if anyone has already ran FIX with fMRIprep and can suggest whether I am matching the images correctly. In italics are the files from fsl and in bold are the files from fMRIprep. Sorry if it looks confusing!

  • filtered_func_data.nii.gz preprocessed 4D data –> MNI paediatric asymm desc-preproc bold (I personally also applied 6mm smoothing and high band pass filtering)
  • filtered_func_data.ica melodic (command-line program) full output directory –> you get this by running single subject ICA
  • mc/prefiltered_func_data_mcf.par motion parameters created by mcflirt (in mc subdirectory) –> I don’t know what is the par extension, but I should be able to get the motion regressors from the confound regressors tsv file, columns “trans_x”, “trans_y”, “trans_z”, “rot_x”, “rot_y”, "rot_z"
  • mask.nii.gz valid mask relating to the 4D data –> MNI paediatric asymm desc-brain mask
  • mean_func.nii.gz temporal mean of 4D data –> you can calculate this with fslmaths T mean I think
  • reg/example_func.nii.gz example image from 4D data –> given that I don’t need to apply any transformation, should I just use the MNI paediatric asymm desc-preproc bold?
  • reg/highres.nii.gz brain-extracted structural –> MNI paediatric asymm T1w
  • reg/highres2example_func.mat FLIRT transform from structural to functional space –> all the images already in MNI paediatric asymmetrical space, so should I replace this with an identity matrix, as suggested here https://github.com/poldracklab/fmriprep/issues/1765?
  • design.fsf FEAT/MELODIC setup file; if present, this controls the
    default temporal filtering of motion parameters –> I think this is optional

Any feedback would be appreciated!
Thank you

1 Like

Hi Elena,

I am running into the same issue, my data is 3T with a UK BB-kind of like scanning sequence. Since AROMA is no good for this kind of fast sequence, I am thinking of giving FIX a go. I am not aware of anyone actually trying to do FIX after fmriprep.

1 Like