Skip to content

Commit

Permalink
Merge commit and updated paper for emdupre review
Browse files Browse the repository at this point in the history
  • Loading branch information
adam2392 committed Aug 23, 2022
1 parent aa198c4 commit 0ffd5eb
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
5 changes: 3 additions & 2 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ @article{iclabel2019
pages = {181-197},
year = {2019},
issn = {1053-8119},
doi = {https://doi.org/10.1016/j.neuroimage.2019.05.026},
doi = {10.1016/j.neuroimage.2019.05.026},
url = {https://www.sciencedirect.com/science/article/pii/S1053811919304185},
author = {Luca Pion-Tonachini and Ken Kreutz-Delgado and Scott Makeig},
keywords = {EEG, ICA, Classification, Crowdsourcing},
Expand Down Expand Up @@ -102,7 +102,8 @@ @article{Pytorch2019
eprint = {1912.01703},
timestamp = {Tue, 02 Nov 2021 15:18:32 +0100},
biburl = {https://dblp.org/rec/journals/corr/abs-1912-01703.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
bibsource = {dblp computer science bibliography, https://dblp.org},
doi = {10.48550/ARXIV.1912.01703}
}
@article{Bell1995,
author = {Bell, Anthony J. and Sejnowski, Terrence J.},
Expand Down
4 changes: 2 additions & 2 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ bibliography: paper.bib

# Summary

Scalp electroencephalography (EEG) and magnetoencephalography (MEG) analysis is typically very noisy and contains various non-neural signals, such as heartbeat artifacts. Independent component analysis (ICA) is a common procedure to remove these artifacts [@Bell1995]. However, removing artifacts requires manual annotation of ICA components, which is subject to human error and very laborious when operating on large datasets. This work makes the popular ICLabel model [@iclabel2019] available in Python by creating a software package compatible with MNE-Python [@Agramfort2013] software toolkit in a modern PyTorch format [@Pytorch2019]. The ICLabel model was previously only available in an outdated version of TensorFlow that was no longer supported, and migrating the model now to an updated PyTorch version will ensure the model will not break due to unmaintained versions of software. This enables the automatic labeling of ICA components, improving the preprocessing and analysis pipeline of electrophysiological data.
Scalp electroencephalography (EEG) and magnetoencephalography (MEG) analysis is typically very noisy and contains various non-neural signals, such as heartbeat artifacts. Independent component analysis (ICA) is a common procedure to remove these artifacts [@Bell1995]. However, removing artifacts requires manual annotation of ICA components, which is subject to human error and very laborious when operating on large datasets. This work makes the popular ICLabel model [@iclabel2019] available in Python by creating a software package compatible with the MNE-Python [from v1.1; @Agramfort2013] software toolkit in a modern PyTorch format [@Pytorch2019]. The ICLabel model was previously only available in an outdated version of TensorFlow that was no longer supported, and migrating the model now to an updated PyTorch version will ensure the model will not break due to unmaintained versions of software. This enables the automatic labeling of ICA components, improving the preprocessing and analysis pipeline of electrophysiological data.

The Python ICLabel model is fully tested against and matches exactly the output produced in its MATLAB counterpart [@iclabel2019]. Moreover, this work builds the API on top of the robust MNE-Python ecosystem, enabling a seamless integration of automatic ICA analysis.

# Statement of need

Typically EEG and MEG data have many artifacts due to a variety of signal sources, such as heartbeats, eye blinks, line noise, channel noise, or muscle artifacts. A common signal processing technique for assisting in separating true brain signals from noise sources is ICA [@Bell1995]. ICA performs blind-source separation decomposing the observed noisy electrophysiological signals into maximally independent sources. For example, it allows researchers to decompose EEG signals into brain signals and a heartbeat signal. Then by manually annotating a component time-series as a heartbeat, one can remove the heartbeat source from the signal and obtain their signals without the heartbeat. This process is typically manually carried out and requires a human to label each component that comes out from an ICA decomposition. This process is subject to human error and is difficult to scale up when dealing with high-dimensional EEG or MEG recordings.

ICLabel was a proposed statistical model that uses neural networks and a crowdsourced training dataset to automatically label ICA components [@iclabel2019]. However, this package was previously only available in MATLAB, limiting its usage among neuroscientists preferring Python-based tools. Moreover, the package relied on an outdated version of Tensorflow [@Tensorflow2016], which makes the model difficult to build on. PyTorch is the most common Python deep-learning framework among researchers. Replicating the model in PyTorch enables future automatic ICA annotation research to easily build upon the model. MNE-Python is a general-purpose electrophysiology analysis package in Python that has a large core group of developers. Integration into MNE makes it likely that MNE-ICALabel will be maintained and continue to be improved. MNE-Python also has stability due to the funding it receives directly for development from institutions such as National Institutes of Health, the Chan Zuckerberg open-source initiative, the European Research Council and Agence Nationale de la Recherche in France.
ICLabel is a proposed statistical model that uses neural networks and a crowdsourced training dataset to automatically label ICA components [@iclabel2019]. However, this package was previously only available in MATLAB, limiting its usage among neuroscientists preferring Python-based tools. Moreover, the package relied on an outdated version of Tensorflow [@Tensorflow2016], which makes the model difficult to build on. PyTorch is the most common Python deep-learning framework among researchers. Replicating the model in PyTorch enables future automatic ICA annotation research to easily build upon the model. MNE-Python is a general-purpose electrophysiology analysis package in Python that has a large core group of developers. Integration into MNE makes it likely that MNE-ICALabel will be maintained and continue to be improved. MNE-Python also has stability due to the funding it receives directly for development from institutions such as National Institutes of Health, the Chan Zuckerberg open-source initiative, the European Research Council and Agence Nationale de la Recherche in France.

# Future Directions

Expand Down

0 comments on commit 0ffd5eb

Please sign in to comment.