MNE-ICALabel

MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python - Published in JOSS (2022)

https://github.com/mne-tools/mne-icalabel

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 9 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

eeg ica neuroscience python

Keywords from Contributors

electroencephalography magnetoencephalography meg neuroimaging bids ecog electrocorticography ieeg mne meshing

Scientific Fields

Medicine Life Sciences - 84% confidence
Mathematics Computer Science - 84% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Automatic labeling of ICA components in Python.

Basic Info
Statistics
  • Stars: 104
  • Watchers: 8
  • Forks: 18
  • Open Issues: 14
  • Releases: 9
Topics
eeg ica neuroscience python
Created over 4 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Citation

README.md

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 mneicalabel import labelcomponents

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.

Owner

  • Name: MNE tools for MEG and EEG data analysis
  • Login: mne-tools
  • Kind: organization

JOSS Publication

MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python
Published
August 26, 2022
Volume 7, Issue 76, Page 4484
Authors
Adam Li ORCID
Department of Computer Science, Columbia University, New York, United States
Jacob Feitelberg ORCID
Department of Biomedical Engineering, Johns Hopkins University, Baltimore, United States
Anand Prakash Saini ORCID
Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland
Richard Höchenberger ORCID
Institute of Neuroscience and Medicine (INM-3), Research Center Jülich, Germany
Mathieu Scheltienne ORCID
Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland, Institute of Bioengineering, Center for Neuroprosthetics, EPFL, Geneva, Switzerland, Department of Radiology and Medical Informatics, University of Geneva (UNIGE), Geneva, Switzerland
Editor
Elizabeth DuPre ORCID
Tags
MNE MEG EEG iEEG ICA EEGLab

Citation (CITATION.cff)

# YAML 1.2
---
# Metadata for citation of this software according to the CFF format (https://citation-file-format.github.io/)
cff-version: 1.2.0
title: 'MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python'
abstract: 'MNE-ICALabel is a Python library to facilitate the automatic annotation of ICA components for MEG, EEG, and iEEG data with MNE-Python. More information about MNE-Python can be found at <a href="https://mne.tools">mne.tools</a>.'
authors:
    - given-names: Adam
      family-names: Li
      affiliation: 'Department of Computer Science, Columbia University, New York, NY, USA'
      orcid: 'https://orcid.org/0000-0001-8421-365X'
    - given-names: Richard
      family-names: Höchenberger
      affiliation: 'Institute of Neuroscience and Medicine (INM-3), Research Center Jülich, Germany'
      orcid: 'https://orcid.org/0000-0002-0380-4798'
    - given-names: Thomas
      family-names: Donoghue
      affiliation: 'Department of Biomedical Engineering, Columbia University'
      orcid: 'https://orcid.org/0000-0001-5911-0472'
    - given-names: Mathieu
      family-names: Scheltienne
      affiliation: 'Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland'
      orcid: 'https://orcid.org/0000-0001-8316-7436'
    - given-names: Jacob
      family-names: Feitelberg
      affiliation: 'Department of Biomedical Engineering, Johns Hopkins University, Baltimore, MD, USA'
      orcid: 'https://orcid.org/0000-0002-4551-0245'
    - given-names: Anand
      family-names: Saini
      affiliation: 'Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland'
      orcid: 'https://orcid.org/0000-0003-3595-5969'
type: software
repository-code: 'https://github.com/mne-tools/mne-icalabel'
license: BSD-3-Clause
keywords:
  - neuroscience
  - neuroimaging
  - mne
  - python
  - magnetoencephalography
  - meg
  - electroencephalography
  - eeg
  - ieeg
  - ica
message: >-
  Please cite this software using the metadata from
  'preferred-citation' in the CITATION.cff file.
preferred-citation:
  title: >-
    MNE-ICALabel: Automatically annotating ICA components with ICLabel in Python
  journal: Journal of Open Source Software
  type: article
  year: 2022
  volume: 7
  issue: 76
  start: 4484
  doi: 10.21105/joss.04484
  authors:
    - given-names: Adam
      family-names: Li
      affiliation: 'Department of Computer Science, Columbia University, New York, NY, USA'
      orcid: 'https://orcid.org/0000-0001-8421-365X'
    - given-names: Richard
      family-names: Höchenberger
      affiliation: 'Institute of Neuroscience and Medicine (INM-3), Research Center Jülich, Germany'
      orcid: 'https://orcid.org/0000-0002-0380-4798'
    - given-names: Thomas
      family-names: Donoghue
      affiliation: 'Department of Biomedical Engineering, Columbia University'
      orcid: 'https://orcid.org/0000-0001-5911-0472'
    - given-names: Mathieu
      family-names: Scheltienne
      affiliation: 'Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland'
      orcid: 'https://orcid.org/0000-0001-8316-7436'
    - given-names: Jacob
      family-names: Feitelberg
      affiliation: 'Department of Biomedical Engineering, Johns Hopkins University, Baltimore, MD, USA'
      orcid: 'https://orcid.org/0000-0002-4551-0245'
    - given-names: Anand
      family-names: Saini
      affiliation: 'Human Neuroscience Platform, Fondation Campus Biotech Geneva, Geneva, Switzerland'
      orcid: 'https://orcid.org/0000-0003-3595-5969'
identifiers:
  - description: "Code archive on Zenodo"
    type: doi
    value: 10.5281/zenodo.7017165
...

GitHub Events

Total
  • Issues event: 4
  • Watch event: 14
  • Delete event: 43
  • Issue comment event: 21
  • Push event: 51
  • Pull request review comment event: 27
  • Pull request review event: 26
  • Pull request event: 82
  • Fork event: 3
  • Create event: 39
Last Year
  • Issues event: 4
  • Watch event: 14
  • Delete event: 43
  • Issue comment event: 21
  • Push event: 51
  • Pull request review comment event: 27
  • Pull request review event: 26
  • Pull request event: 82
  • Fork event: 3
  • Create event: 39

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 323
  • Total Committers: 11
  • Avg Commits per committer: 29.364
  • Development Distribution Score (DDS): 0.749
Past Year
  • Commits: 57
  • Committers: 5
  • Avg Commits per committer: 11.4
  • Development Distribution Score (DDS): 0.211
Top Committers
Name Email Commits
Adam Li a****2@g****m 81
pre-commit-ci[bot] 6****] 74
Mathieu Scheltienne m****e@f****h 64
Jacob Feitelberg j****g@g****m 45
Mathieu Scheltienne m****e@g****m 29
dependabot[bot] 4****] 11
Anand Saini 3****4 7
github-actions[bot] 4****] 7
Tom t****h@g****m 2
Anand Saini a****i@f****h 2
Scott Huberty 5****y 1
Committer Domains (Top 20 + Academic)
fcbg.ch: 2

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 57
  • Total pull requests: 228
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 21
  • Total pull request authors: 9
  • Average comments per issue: 4.21
  • Average comments per pull request: 1.26
  • Merged pull requests: 208
  • Bot issues: 0
  • Bot pull requests: 142
Past Year
  • Issues: 3
  • Pull requests: 84
  • Average time to close issues: 1 day
  • Average time to close pull requests: about 5 hours
  • Issue authors: 3
  • Pull request authors: 5
  • Average comments per issue: 2.67
  • Average comments per pull request: 0.19
  • Merged pull requests: 76
  • Bot issues: 0
  • Bot pull requests: 82
Top Authors
Issue Authors
  • adam2392 (13)
  • hoechenberger (11)
  • mscheltienne (8)
  • adswa (5)
  • scott-huberty (2)
  • CarinaFo (2)
  • TomDonoghue (2)
  • chmendoza (1)
  • FedeC3N (1)
  • sjyzhu (1)
  • alexrockhill (1)
  • Ayumu722 (1)
  • vferat (1)
  • lucapton (1)
  • visserle (1)
Pull Request Authors
  • pre-commit-ci[bot] (137)
  • mscheltienne (57)
  • adam2392 (22)
  • github-actions[bot] (11)
  • dependabot[bot] (10)
  • anandsaini024 (4)
  • TomDonoghue (3)
  • colehank (2)
  • jacobf18 (1)
  • scott-huberty (1)
Top Labels
Issue Labels
🌟 enhancement (1) help wanted (1)
Pull Request Labels
dependencies (6) 🐞 bug (4) 📓 doc (1) 🌟 enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 4,012 last-month
  • Total docker downloads: 12
  • Total dependent packages: 3
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 14
  • Total maintainers: 2
pypi.org: mne-icalabel

MNE-ICALabel: Automatic labeling of ICA components from MEG, EEG and iEEG data with MNE.

  • Documentation: https://mne-icalabel.readthedocs.io/
  • 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.
  • Latest release: 0.7.0
    published over 1 year ago
  • Versions: 9
  • Dependent Packages: 3
  • Dependent Repositories: 3
  • Downloads: 4,012 Last month
  • Docker Downloads: 12
Rankings
Dependent packages count: 2.4%
Docker downloads count: 3.9%
Average: 5.2%
Downloads: 5.5%
Dependent repos count: 9.0%
Maintainers (2)
Last synced: 4 months ago
conda-forge.org: mne-icalabel
  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Stargazers count: 38.2%
Average: 43.2%
Forks count: 49.6%
Dependent packages count: 51.2%
Last synced: 4 months ago

Dependencies

.github/workflows/draft-pdf.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • openjournals/openjournals-draft-action master composite
pyproject.toml pypi
  • importlib-metadata python_version<"3.8"
  • importlib-resources python_version<"3.9"
  • mne >= 1.1
  • numpy >= 1.21
  • pooch *
  • scipy >= 1.2.0
  • torch *
.github/workflows/doc.yaml actions
  • JamesIves/github-pages-deploy-action v4 composite
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • pyvista/setup-headless-display-action main composite
.github/workflows/publish.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
.github/workflows/pytest.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action v3 composite
  • pyvista/setup-headless-display-action main composite
doc/_static/versions.json meteor
.github/workflows/stubs.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pyvista/setup-headless-display-action main composite