tedana.selection.selcomps

selcomps(seldict, mmix, mask, ref_img, manacc, n_echos, t2s, s0, olevel=2, oversion=99, filecsdata=True, savecsdiag=True, strict_mode=False)[source]

Labels ICA components to keep or remove from denoised data

The selection process uses pre-calculated parameters for each ICA component inputted into this function in seldict such as Kappa (a T2* weighting metric), Rho (an S0 weighting metric), and variance explained. Additonal selection metrics are calculated within this function and then used to classify each component into one of four groups.

Parameters:
  • seldict (dict) – As output from fitmodels_direct
  • mmix ((C x T) array_like) – Mixing matrix for converting input data to component space, where C is components and T is the number of volumes in the original data
  • mask ((S,) array_like) – Boolean mask array
  • ref_img (str or img_like) – Reference image to dictate how outputs are saved to disk
  • manacc (list) – Comma-separated list of indices of manually accepted components
  • n_echos (int) – Number of echos in original data
  • t2s ((S,) array_like) – Estimated T2* map
  • s0 ((S,) array_like) – S0 map
  • olevel (int, optional) – Default: 2
  • oversion (int, optional) – Default: 99
  • filecsdata (bool, optional) – Default: False
  • savecsdiag (bool, optional) – Default: True
  • strict_mode (bool, optional) – Default: False
Returns:

  • acc (list) – Indices of accepted (BOLD) components in mmix
  • rej (list) – Indices of rejected (non-BOLD) components in mmix
  • midk (list) – Indices of mid-K (questionable) components in mmix These components are typically removed from the data during denoising
  • ign (list) – Indices of ignored components in mmix Ignored components are considered to have too low variance to matter. They are not processed through the accept vs reject decision tree and are NOT removed during the denoising process

Notes

The selection algorithm used in this function is from work by prantikk It is from selcomps function in select_model_fft20e.py in version 3.2 of MEICA at: https://github.com/ME-ICA/me-ica/blob/b2781dd087ab9de99a2ec3925f04f02ce84f0adc/meica.libs/select_model_fft20e.py Many of the early publications using and evaulating the MEICA method used a different selection algorithm by prantikk. The final 2.5 version of that algorithm in the selcomps function in select_model.py at: https://github.com/ME-ICA/me-ica/blob/b2781dd087ab9de99a2ec3925f04f02ce84f0adc/meica.libs/select_model.py

In both algorithms, the ICA component selection process uses multiple metrics that include: kappa, rho, variance explained, compent spatial weighting maps, noise and spatial frequency metrics, and measures of spatial overlap across metrics. The precise calculations may vary between algorithms. The most notable difference is that the v2.5 algorithm is a fixed decision tree where all sections were made based on whether combinations of metrics crossed various thresholds. In the v3.5 algorithm, clustering and support vector machines are also used to classify components based on how similar metrics in one component are similar to metrics in other components.