Skip to content

mne-tools/mne-icalabel

mne-icalabel

Ruff Code style: black Imports: isort Codecov tests doc PyPI version PyPI Download count Conda Version Conda Downloads Conda Platforms JOSS

This repository is a conversion of the popular Matlab-based ICLabel classifier for Python. In addition, mne-icalabel provides extensions and improvements in the form of other models.

Why?

EEG and MEG recordings include artifacts, such as heartbeat, eyeblink, muscle, and movement activity. Independent component analysis (ICA) is a common method to remove artifacts, but typically relies on manual annotations labelling which independent components (IC) reflect noise and which reflect brain activity.

This package aims at automating this process, using the popular MNE-Python API for EEG, MEG and iEEG data.

Basic Usage

MNE-ICALabel estimates the labels of ICA components given a MNE-Python Raw or Epochs object and an ICA instance using the ICA decomposition available in MNE-Python.

from mne_icalabel import label_components

# assuming you have a Raw and ICA instance previously fitted
label_components(raw, ica, method='iclabel')

The only current available method is 'iclabel'.

Documentation

Stable version documentation. Dev version documentation.

Installation

The current stable release of mne-icalabel can be installed with pip, for example, by running:

pip install mne-icalabel

For further details about installation, see the install page.

To get the latest (development) version, using git, open a terminal and type:

git clone git://github.com/mne-tools/mne-icalabel.git
cd mne-icalabel
pip install -e .

The development version can also be installed directly using pip:

pip install https://api.github.com/repos/mne-tools/mne-icalabel/zipball/main

Alternatively, you can also download a zip file of the latest development version.

Contributing

If you are interested in contributing, please read the contributing guidelines.

Getting Help

MNE Forum

For any usage questions, please post to the MNE Forum. Be sure to add the mne-icalabel tag to your question.

Citing

If you use the mne-icalabel, please consider citing our paper:

@article{Li2022,
  title = {MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python},
  volume = {7},
  ISSN = {2475-9066},
  url = {http://dx.doi.org/10.21105/joss.04484},
  DOI = {10.21105/joss.04484},
  number = {76},
  journal = {Journal of Open Source Software},
  publisher = {The Open Journal},
  author = {Li,  Adam and Feitelberg,  Jacob and Saini,  Anand Prakash and H\"{o}chenberger, Richard and Scheltienne,  Mathieu},
  year = {2022},
  month = aug,
  pages = {4484}
}

And the paper associated to the model used:

  • ICLabel
@article{PionTonachini2019,
  title = {ICLabel: An automated electroencephalographic independent component classifier,  dataset,  and website},
  volume = {198},
  ISSN = {1053-8119},
  url = {http://dx.doi.org/10.1016/j.neuroimage.2019.05.026},
  DOI = {10.1016/j.neuroimage.2019.05.026},
  journal = {NeuroImage},
  publisher = {Elsevier BV},
  author = {Pion-Tonachini,  Luca and Kreutz-Delgado,  Ken and Makeig,  Scott},
  year = {2019},
  month = sep,
  pages = {181–197}
}

Future versions of the software are aimed at improved models and may have different papers associated with it.