Metadata-Version: 2.4
Name: mne-icalabel
Version: 0.8.0
Summary: MNE-ICALabel: Automatic labeling of ICA components from MEG, EEG and iEEG data with MNE.
Maintainer-email: Adam Li <adam.li@columbia.edu>, Mathieu Scheltienne <mathieu.scheltienne@gnail.com>
License: BSD 3-Clause License
        
        Copyright (c) 2022, MNE
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its
           contributors may be used to endorse or promote products derived from
           this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Project-URL: documentation, https://mne.tools/mne-icalabel
Project-URL: source, https://github.com/mne-tools/mne-icalabel
Project-URL: tracker, https://github.com/mne-tools/mne-icalabel/issues
Keywords: eeg,ica,ieeg,meg,neuroscience
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: mne>=1.2
Requires-Dist: numpy>=1.21
Requires-Dist: packaging
Requires-Dist: pooch
Requires-Dist: psutil
Requires-Dist: scipy>=1.4.0
Provides-Extra: all
Requires-Dist: mne-icalabel[build]; extra == "all"
Requires-Dist: mne-icalabel[doc]; extra == "all"
Requires-Dist: mne-icalabel[gui]; extra == "all"
Requires-Dist: mne-icalabel[ica]; extra == "all"
Requires-Dist: mne-icalabel[onnx]; extra == "all"
Requires-Dist: mne-icalabel[stubs]; extra == "all"
Requires-Dist: mne-icalabel[style]; extra == "all"
Requires-Dist: mne-icalabel[test]; extra == "all"
Requires-Dist: mne-icalabel[torch]; extra == "all"
Provides-Extra: build
Requires-Dist: build; extra == "build"
Requires-Dist: twine; extra == "build"
Provides-Extra: doc
Requires-Dist: memory-profiler; extra == "doc"
Requires-Dist: mne-icalabel[gui]; extra == "doc"
Requires-Dist: mne-icalabel[ica]; extra == "doc"
Requires-Dist: mne-icalabel[onnx]; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: pydata-sphinx-theme==0.14.1; extra == "doc"
Requires-Dist: PyQt6; extra == "doc"
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-copybutton; extra == "doc"
Requires-Dist: sphinx-design; extra == "doc"
Requires-Dist: sphinx-gallery; extra == "doc"
Requires-Dist: sphinx-issues; extra == "doc"
Requires-Dist: sphinxcontrib-bibtex; extra == "doc"
Provides-Extra: full
Requires-Dist: mne-icalabel[all]; extra == "full"
Provides-Extra: gui
Requires-Dist: matplotlib; extra == "gui"
Requires-Dist: mne-qt-browser>=0.6.0; extra == "gui"
Requires-Dist: qtpy; extra == "gui"
Provides-Extra: ica
Requires-Dist: joblib; extra == "ica"
Requires-Dist: python-picard; extra == "ica"
Requires-Dist: scikit-learn; extra == "ica"
Provides-Extra: onnx
Requires-Dist: onnxruntime; extra == "onnx"
Provides-Extra: stubs
Requires-Dist: isort; extra == "stubs"
Requires-Dist: mne-icalabel[gui]; extra == "stubs"
Requires-Dist: mne-icalabel[onnx]; extra == "stubs"
Requires-Dist: mne-icalabel[torch]; extra == "stubs"
Requires-Dist: mypy; extra == "stubs"
Requires-Dist: PyQt6; extra == "stubs"
Requires-Dist: ruff>=0.6.0; extra == "stubs"
Provides-Extra: style
Requires-Dist: bibclean; extra == "style"
Requires-Dist: codespell[toml]>=2.2.4; extra == "style"
Requires-Dist: ruff>=0.6.0; extra == "style"
Requires-Dist: toml-sort; extra == "style"
Requires-Dist: yamllint; extra == "style"
Provides-Extra: test
Requires-Dist: mne-bids>=0.14; extra == "test"
Requires-Dist: mne-icalabel[gui]; extra == "test"
Requires-Dist: mne-icalabel[ica]; extra == "test"
Requires-Dist: mne-icalabel[onnx]; extra == "test"
Requires-Dist: mne-icalabel[torch]; extra == "test"
Requires-Dist: pandas; extra == "test"
Requires-Dist: pymatreader; extra == "test"
Requires-Dist: PyQt6; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest>=8.0.0; extra == "test"
Provides-Extra: torch
Requires-Dist: torch; extra == "torch"
Dynamic: license-file

# mne-icalabel

[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![Codecov](https://codecov.io/gh/mne-tools/mne-icalabel/branch/main/graph/badge.svg)](https://codecov.io/gh/mne-tools/mne-icalabel)
[![tests](https://github.com/mne-tools/mne-icalabel/actions/workflows/pytest.yaml/badge.svg?branch=main)](https://github.com/mne-tools/mne-icalabel/actions/workflows/pytest.yaml)
[![doc](https://github.com/mne-tools/mne-icalabel/actions/workflows/doc.yaml/badge.svg?branch=main)](https://github.com/mne-tools/mne-icalabel/actions/workflows/doc.yaml)
[![PyPI version](https://img.shields.io/pypi/v/mne-icalabel.svg)](https://pypi.org/project/mne-icalabel/)
[![PyPI Download count](https://pepy.tech/badge/mne-icalabel)](https://pepy.tech/project/mne-icalabel)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/mne-icalabel.svg)](https://anaconda.org/conda-forge/mne-icalabel/)
[![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/mne-icalabel.svg)](https://anaconda.org/conda-forge/mne-icalabel)
[![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/mne-icalabel.svg)](https://anaconda.org/conda-forge/mne-icalabel)
[![JOSS](https://joss.theoj.org/papers/d91770e35a985ecda4f2e1f124977207/status.svg)](https://joss.theoj.org/papers/d91770e35a985ecda4f2e1f124977207)

This repository is a conversion of the popular Matlab-based
[ICLabel](https://github.com/sccn/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](https://mne.tools/stable/generated/mne.io.Raw.html) or
[Epochs](https://mne.tools/stable/generated/mne.Epochs.html) object and an ICA instance using the
[ICA decomposition](https://mne.tools/stable/generated/mne.preprocessing.ICA.html)
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](https://mne.tools/mne-icalabel/stable/index.html) documentation.
[Dev version](https://mne.tools/mne-icalabel/dev/index.html) 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](https://mne.tools/mne-icalabel/stable/install.html) page.

To get the latest (development) version, using [git](https://git-scm.com/), 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](https://github.com/mne-tools/mne-icalabel/archive/main.zip).

# Contributing

If you are interested in contributing, please read the
[contributing guidelines](https://github.com/mne-tools/mne-icalabel/blob/main/CONTRIBUTING.md).

# Getting Help

[<img alt="MNE Forum" src="https://user-images.githubusercontent.com/1681963/52239617-e2683480-289c-11e9-922b-5da55472e5b4.png" height=60/>](https://mne.discourse.group)

For any usage questions, please post to the
[MNE Forum](https://mne.discourse.group). 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.
