Combining fmriprep with ME-ICA from tedana



Dear all,

I have a task and resting multi-echo datasets. Very nice to see that fmriprep now has a multiecho pipeline. However, as far as I can see, fmriprep does not yet apply multiecho ICA denoising. For this, I would still be required to use tedana. My query is regarding the optimal pipeline for processing my multiecho datasets with me-ica denoising.

Does the following approach sound sensible:

  1. Use fmriprep to perform slice-timing correction on multiecho dataset.
  2. Use tedana to optimally combine multiecho-data and perform ICA denoising, removing motion, physiology, etc… non-bold components.
  3. Feed optimally combined and denoised multiecho data to fmriprep for normalisation and distortion correction using field map.

Please let me know if this sounds like a sensible approach, or whether there is an imminent release of fmriprep with me-ica denoising.

Thank you in advance for your help.
Kind regards,


Hi Gershon,

I know that @emdupre is working on integrating multi-echo denoising (in addition to optimal combination) with tedana into fMRIPrep, but that’s a little ways out.

I agree that, in the mean time, it makes sense to use fMRIPrep and tedana separately, but within the same overall pipeline. However, I’m not sure about the details of your approach. Specifically, I don’t think you can break fMRIPrep into separate parts like that.

The approach we’re planning to take in a tedana analysis is to run fMRIPrep and then to grab native-space partially preprocessed data (i.e., post STC and HMC) from the fMRIPrep working directory. We’ll then feed those data through tedana and finally apply fMRIPrep’s calculated transforms for coregistration and normalization. We haven’t completed the code to do this yet, but I believe that it’s all doable. The overall pipeline is the same as yours, but doesn’t require stopping and restarting fMRIPrep.



Dear Taylor,

Thank you for the helpful reply. It is good to know that integration of multi-echo denoising and fmriprep is on its way. Do you know what the timeline for this might be?

In the mean time, I wonder whether we might not just be able to obtain some partially processed images from fmriprep. For example, echo1_bold_hmc_stc, echo2_bold_hmc_stc, echo3_bold_hmc_stc and feed these files into tedana.

I take it tedana would then output a combined file of denoised optimally combined echos. Could I then feed this one file into fmriprep, to complete the SDC, normalisation etc…?

Just as a note, I am new to tedana and fmriprep so I may be naive to certain aspects of the workflow/pipeline.

Kind regards,


The first files that you should be able to access (which will be stored in the working directory, I think) should be the data in native space, after slice timing correction, motion correction, and distortion correction. You can take those, run tedana on them, and then use coregistration and normalization warp files, saved by fMRIPrep, to transform the denoised data into standard space. I don’t think that you can submit partially processed data into fMRIPrep without it re-running the entire pipeline.

So the only difference from your proposed approach is that you would apply the final transforms, originally estimated by fMRIPrep, yourself instead of re-submitting the denoised data to fMRIPrep to have it do them. That said, I think SDC will have to be performed before tedana, although I could be wrong.


Dear Taylor,

Thank you. This sounds like a sensible solution until ME-ICA is fully integrated with fmriprep.

Thanks for giving your time.

Kind regards,


Dear @tsalo @emdupre ,

Thank you thus far for your help setting up a pipeline using fmriprep. I have managed to get fmriprep to run, though I have a few things that are still not working correctly. I was wondering whether you had any thoughts.


  1. BIDS directory: This was setup using heudiconv for BIDS directory. I a customised heuristic file to, largely, set up my directory as required. Ie., my multiecho files were individual list in /func folder. However, my sbref images were labeled with rec_magnitude for each echo image. I relabeled these to align with the labels for echo images. I have attached my heuristic file as well as an image for reference.

  2. fmriprep: I then used this BIDS directory in the fmriprep analysis pipeline (code used is attached). I managed for this to run successfully on our cluster using singularity. However, it seems as though only echo 1 was processed–I see no optimically combined image and cannot locate the minimally preprocessed echo images in my working directory that I would like to feed into tedana. Moreover, fmriprep is not recognising the I have a fieldmap in /fmap folder and sbref images for each echo. Any ideas why fmriprep is skipping these images?

Please let me know if you would like for me to attach anything else, please let me know.

Kind regards,
Gershon.fmriprep_launch_v3.txt (455 Bytes)

convert_dicom_gut2.txt (2.6 KB)