ICA failed to converge

Hi,
I’m running afni_proc.py on ME data from the 7T. It usually works fine but for some reason on one scan it gives me the following warning:

WARNING ica:tedica:81 Random seed updated to 47
WARNING ica:tedica:75 ICA with random seed 47 failed to converge after 500 iterations

what might be the reason?

Thank you,
Michal

Hi, Michal-

Can I ask what “-combine_method …” you are using? I guess it is either the older (Kundu et al) or newer (du Pre et al) MEICA? Probably it is going to be an issue within that software specifically to try to work out.

–pt

You are right, MEICA.

Hi, Michal-

I pinged some MEICA experts here, and the advice was:
That particular error message could apparently come up relatively often in the older (Kundu et al.) MEICA, but the recommended way to solve/address/avoid it would be to use the newer tedana (Du Pre et al.):
https://tedana.readthedocs.io/en/stable/

It integrates into your afni_proc.py command in essentially the exact same way as using the older version, just using a different “-combine_method METHOD”, such as m_tedana instead of tedana. Here is the AP help snippet about MEICA group tedana option usage:


---- combine methods that use tedana from the MEICA group ----

       The MEICA group tedana is specified with 'm_tedana*' methods.

          This tedana requires python 3.6+.

          AFNI does not distribute this version of tedana, so it must
          be in the PATH.  For installation details, please see:

             https://tedana.readthedocs.io/en/stable/installation.html

        methods
        m_tedana         : tedana from MEICA group (dn_ts_OC.nii.gz)
        m_tedana_OC      : tedana OC from MEICA group (ts_OC.nii.gz)
        m_tedana_m_tedort: tedana from MEICA group (dn_ts_OC.nii.gz)
                           "tedort" from MEICA group
                           (--tedort: "good" projected from "bad")

How does that seem?

Note that the older (Kundu et al.) MEICA approach only works in Python 2.7; the newer (Du Pre et al.) approach only works in Python 3.*. If you are using Conda to manage your Python environments, we actually have some notes about what you would want to include for using the latter in the environment_afni_ted.yml described here:
https://afni.nimh.nih.gov/pub/dist/doc/htmldoc/background_install/miniconda.html#comments-on-afni-specific-conda-environments

–pt

Hi, thank you for your reply.
I’m using the m_tedana, which works fine on all the other runs.
I have a specific run that keeps falling due to this issue.
Do you have any other thoughts on it?
Thank you,
Michal

I’m one of the people working on tedana.

What version of tedana are you using. AFNI should use whatever version of tedana is in your path so, if you type


tedana --version

that should tell you.

The most common reason this happens is if too many components are retained during the PCA dimensionality reduction step. As part of the tedana output, you should have a file called tedana_[date/time].tsv. There should be a section that looks like:


2022-11-22T15:17:19	pca.tedpca      	INFO    	Computing PCA of optimally combined multi-echo data with selection criteria: aic
2022-11-22T15:17:27	pca.tedpca      	INFO    	Optimal number of components based on different criteria:
2022-11-22T15:17:27	pca.tedpca      	INFO    	AIC: 71 | KIC: 62 | MDL: 42 | 90% varexp: 128 | 95% varexp: 162
2022-11-22T15:17:27	pca.tedpca      	INFO    	Explained variance based on different criteria:
2022-11-22T15:17:27	pca.tedpca      	INFO    	AIC: 0.802% | KIC: 0.784% | MDL: 0.735% | 90% varexp: 0.9% | 95% varexp: 0.95%

For this dataset, I am using the AIC selection criterion which gives me 71 components with an explained variance of 80.2%. (This specific dataset has 200 volumes total). What numbers are you seeing here? You can either cut & paste this section, or attach your output file here.

Dan