PyLossless EEG Processing Pipeline#
Note
This repository is in a constant state of flux and not yet ready for outside use!
🦾 Automated
Automatic Processing Pipeline cleans your EEG data. 🧹
🐍 Built on Python
Ported from MATLAB for easier use and access!
♻️ Non-destructive
Keeps your EEG continuous, so you can epoch your data however and whenever you want to.
📝 Artifacts are Noted
Bad channels, times, and
components are stored as
Annotations
in your
raw data.
👩💻 Streamlined Review
Web dashboard built with Plotly/Dash helps you Review the pipeline output and make informed decisions about your data
Motivation#
This project is a port of the MATLAB Lossless EEG Processing Pipeline (Github repo) presented in Desjardins et al (2021). This port aims at 1) making this pipeline available to the Python community and 2) providing a version of the pipeline that is easier to deploy by outsiders.
This pipeline is built on the idea that sharing and pooling data across the scientific community is most efficient when sharing a standardized (e.g., in BIDS) and “clean” version of a dataset. However, cleaning artifacts in a dataset generally results in a loss of data (i.e., the original recorded signals are generally not recoverable). This is particularly problematic given that preprocessing steps for a dataset are rarely perfect (i.e., future developments may offer methods that would perform better at removing some artifacts) and can be project-dependent. The Lossless pipeline addresses this issue by proposing a “lossless” process where data are annotated for artifacts in a non-destructive way, so that users have access to a readily clean dataset if they are comfortable with the existing annotations. Alternative, they can choose which annotations to use for preprocessing in a piecemeal fashion, or simply use the raw data without excluding any artifacts based on provided annotations. Artifacts are annotated for channels, epochs, and independent components; see Desjardins et al (2021) for a more detailed presentation.