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.