Tedana ICA components for Multi-echo data small number of components

AFNI version info (afni -ver): Precompiled binary linux_rocky_8: Apr 10 2026 (Version AFNI_26.1.00 'Balbinus')

Hello,

I am currently running multi-echo data for participants through afni_proc.py with tedana. One of my runs for one of my participants is coming up with only 25 components (compared to a range of 220-250 for other participants and runs). This run also has higher elbows for Kappa and Rho. I am wondering if this should be of concern and, if so, if I can force a specific number of components for the tedana script to pull from the data.

Below is my current call to afni_proc.py


afni_proc.py -subj_id ${subject_id}\
	-script afni_proc_${subject_id}_${modality_type}.tcsh  -scr_overwrite \
	-out_dir ${subject_id}_${modality_type}.proc\
	-dsets_me_echo ${epi_dataset_file_path_1}\
	-dsets_me_echo ${epi_dataset_file_path_2}\
	-dsets_me_echo ${epi_dataset_file_path_3}\
	-echo_times 15 28.6 32.2 \
	-blip_forward_dset ${blip_forward_file_path}           \
    -blip_reverse_dset ${blip_reverse_file_path}           \
	-blocks despike tshift align tlrc volreg mask combine blur scale regress\
		-copy_anat ./mri/brain_afni+orig\
		-anat_has_skull no\
		-anat_follower_ROI aaseg anat ./mri/aparc.a2009s+aseg.nii\
		-anat_follower_ROI aeseg epi ./mri/aparc.a2009s+aseg.nii\
		-anat_follower_ROI FSvent epi ./mri/FSmask_vent.nii\
		-anat_follower_ROI FSWMe epi ./mri/FSmask_WM.nii\
		-anat_follower_erode FSvent FSWMe\
	-tcat_remove_first_trs 6 \
	-tshift_opts_ts -tpattern alt+z2\
		-align_opts_aea \
			-cost lpc+ZZ \
			-giant_move \
			-check_flip \
			-epi_strip 3dAutomask\
	-tlrc_base ~/afni_templates/MNI152_T1_2009c+tlrc\
	-tlrc_opts_at \
		-at_opts -keep_tmp \
		-at_opts -no_ss \
	-tlrc_NL_warp \
		-volreg_align_to MIN_OUTLIER\
		-volreg_align_e2a \
		-volreg_tlrc_warp \
	-combine_opts_tedwrap -tedana_is_exec \
	-combine_tedana_path ${TEDANA} \
	-combine_method m_tedana\
	-mask_epi_anat yes \
	-blur_size 6\
	-blur_in_mask yes\
	-regress_ROI_PC FSvent 3\
	-regress_make_corr_vols aeseg FSvent\
	-regress_anaticor_fast \
	-regress_anaticor_label FSWMe\
	-regress_censor_motion 0.3\
	-regress_censor_outliers 0.1\
	-regress_apply_mot_types demean deriv \
	-regress_est_blur_epits \
	-regress_est_blur_errts \
	-regress_run_clustsim no \
	-regress_reml_exec \
	-regress_opts_3dD \
		-jobs 4 \
-execute

Thank you!

For clarity, I want to confirm you are talking about the total number of ICA components and not the number of accepted component.

I've been looking into the estimation of the total number of components for a while. It seems like all the commonly used estimation methods for fMRI data fail on a non-trivial number of runs. For a recent OHBM abstract, we demonstrate this and then show that, for the type of denoising done by tedana, the level of denoising will be stable across a fairly wide range of numbers of components. The abstract is here and I should have the full poster uploaded here in the next few days.

In practice, this means, if 220-250 components seem to be working well, pre-set to 250 components with `-combine_opts_tedana "--tedpca 250"` FWIW, I find that a "good number of components is usually between 1/3-1/2 of the total number of volumes, so, if you're getting 250 components, I assume you have over 500 volumes in the run.

Hope this helps.

Dan