Is there any script available for optimal combination of dual-echo EPI data?

Hi there,

I have EPI data with two echoes and would like to combine it with the “optimal” method (Kundu/Posse method). The available codes (tedana, need at least three echoes. I think this is a must for ICA, but to combine only the echoes, I think it should be possible with two echoes, even if it could be sup-optimal. I wonder if there is any code for double echoes… and if the PCA part can be run for such data as well? I would appreciate any advice and help.

1 Like

Hi Marzieh,

The optimal combination method we use is based on Poser et al 2006 ( ). “Optimal” is defined by making an estimate of the T2* signal in every voxel and using those as part of a weighted average of the echoes. You need at least 3 echoes to make that estimate. If you happen to have T2* estimates from another scan, you can use those values to calculate the weights for a two echo data set. You can do this within tedana using the --t2smap parameter, but tedana is designed to only work with data with at least 3 echoes. I don’t foresee us adding a 2-echo option to tedana in the near future, but the math for optimal combination isn’t too complex and it should be possible to implement within AFNI or other data processing packages.

If you don’t have a T2* map then you can’t claim to be making an optimal combination of the echoes. You could just average the two echoes or use a weighted average based on a T2* estimate of gray matter from the literature. Either option would definitely be better than just selecting one of the echoes.

FWIW, there are other methods that use dual-echo for denoising, like Bright & Murphy 2013 ( Removing motion and physiological artifacts from intrinsic BOLD fluctuations using short echo data - ScienceDirect ). That specific method require a first echo with a very short TE.

Hope this helps.


1 Like

Hi Dan,

Thank you for your very helpful comment.
I don’t have a separate 3-echo scan for the participants, unfortunately. I was wondering if it would be meaningful to convert an existing T2* map from another dataset to each participant’s native space, or if you would suggest the averaging method?

Also, regarding averaging, I wonder if calculating a mean image for each echo from a short rest scan and using those images for weighted averaging of the echoes of the main task (please see the following formulas), can mimic the T2* map to some degree?

mean_echo1=mean (scans-rest_echo-1)
mean_echo2=mean (scans-rest_echo-2)
w_echo1 = mean_echo1 / (mean_echo1 + mean_echo2)
w_echo2 = mean_echo2 / (mean_echo1 + mean_echo2)
combined_echo= w_echo1 .* scan_run1_echo1 + w_echo2 .* scan_run1_echo2

Best wishes,