Skip to main content

MNE-RT — real-time M/EEG signal processing and analysis

Project description

MNE-RT Logo

MNE-RT — Real-time M/EEG Signal Processing
From amplifier to 3-D brain display in a single, researcher-friendly API

License: MIT PyPI Python Docs


MNE-RT is an open-source Python library for real-time M/EEG signal processing, built on MNE-Python and MNE-LSL. It covers the full closed-loop pipeline — from amplifier to 3-D brain display — in a single API designed for neurofeedback, BCI, and clinical or basic-science monitoring.

Highlights

Feature Details
20 NF modalities Band power, ERD/ERS, laterality, Hjorth, spectral centroid, CFC, connectivity, graph Laplacian — sensor and source space
10 adaptive protocols Z-score, threshold, percentile, staircase, operant, RL, sham, multi-band, and cross-session transfer
5 artifact correction methods ASR, adaptive LMS, GEDAI, ORICA, real-time Maxwell/SSS (MEG)
9 live visualisation windows Scrolling raw · NF signal · epoch overlays · scalp topo · 3-D brain · butterfly · ERP comparison · TFR heatmaps
Feature combiners Weighted sum, geometric mean, z-scored norm, or any sklearn estimator
External feedback output OSC (Max/MSP, SuperCollider) and LSL outlet (PsychoPy, OpenViBE, BCI2000)
BIDS-compatible saving Session JSON + TSV with full metadata, artifact rate, and SNR
CLI mne-rt info · mne-rt demo · mne-rt baseline · mne-rt run
Mock mode Full pipeline without hardware via built-in LSL replay

Installation

pip install mne-rt                 # core package
pip install "mne-rt[full]"         # + 3-D viz, dev tools, docs
Other installation methods

uv (fast Rust-based installer):

uv pip install mne-rt
uv pip install "mne-rt[full]"

Development install from source:

git clone https://github.com/payamsash/mne-rt.git
cd mne-rt
pip install -e ".[dev]"

Verify:

mne-rt info     # prints MNE-RT and dependency versions
mne-rt demo     # runs a 60-second mock neurofeedback session

Quick start

from mne_rt import RTStream
from mne_rt.protocols import ZScoreProtocol

# 1 — Create a session object
nf = RTStream(
    subject_id="sub01",
    session="01",
    subjects_dir="/data/subjects",
    montage="easycap-M1",
)

# 2 — Connect to a live LSL stream (or replay a file without hardware)
nf.connect_to_lsl(mock_lsl=True)

# 3 — Record a resting-state baseline (bad channels, ICA, noise cov)
nf.record_baseline(duration=120)

# 4 — Run a closed-loop NF session
nf.record_main(
    duration=300,
    modality=["sensor_power", "erd_ers"],
    protocol=ZScoreProtocol(direction="up", zscore_threshold=0.5),
    show_nf_signal=True,
    show_topo=True,
)

# 5 — Save results (BIDS-compatible JSON + TSV)
nf.save()

CLI

# Print version and all dependency versions
mne-rt info

# Quick demo — no amplifier needed
mne-rt demo --duration 60 --modality sensor_power erd_ers

# Record a resting-state baseline
mne-rt baseline --subject sub01 --subjects-dir /data --session 01

# Run a full session with artifact correction and live displays
mne-rt run --subject sub01 --subjects-dir /data --duration 600 \
           --modality sensor_power erd_ers \
           --artifact-correction asr \
           --topo --brain

Documentation

Full documentation (API reference, tutorials, visualization gallery) is available at payamsash.github.io/mne-rt.

Cite

If you use MNE-RT in your research, please cite:

@inproceedings{shabestari2025advances,
  title        = {Advances on Real Time {M/EEG} Neural Feature Extraction},
  author       = {Shabestari, Payam S and Ribes, Delphine and D{\'e}fayes, Lara
                  and Cai, Danpeng and Groves, Emily and Behjat, Harry H
                  and Van de Ville, Dimitri and Kleinjung, Tobias
                  and Naas, Adrian and Henchoz, Nicolas and others},
  booktitle    = {2025 IEEE 38th International Symposium on Computer-Based
                  Medical Systems (CBMS)},
  pages        = {337--338},
  year         = {2025},
  organization = {IEEE}
}

Acknowledgements

Development was supported by the Swiss National Science Foundation (grant 208164 — Advancing Neurofeedback in Tinnitus).

License

MIT License — © 2025 Payam S. Shabestari

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mne_rt-1.0.0.tar.gz (206.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mne_rt-1.0.0-py3-none-any.whl (234.8 kB view details)

Uploaded Python 3

File details

Details for the file mne_rt-1.0.0.tar.gz.

File metadata

  • Download URL: mne_rt-1.0.0.tar.gz
  • Upload date:
  • Size: 206.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for mne_rt-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a656cc6288695225a1d0fdea551a6275a40230e909702f828178e0e0bf6251d1
MD5 1177f213985836c6b5706f83f1ca10ad
BLAKE2b-256 9a9c00e8bb24d8dd2ba7e930827f2b4e06e23ddcb8fd377ef8547615b8a49483

See more details on using hashes here.

File details

Details for the file mne_rt-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mne_rt-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 234.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.9

File hashes

Hashes for mne_rt-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c59322ae097d1bc4e9e0f5ff4405d1605d58367a6f212b44ae1aa5aedf26968
MD5 4cdc0c48724d354838619c56f7a575d8
BLAKE2b-256 a5b587d1aec09689d15cf504cc70a8da3d533ed6f4279c0d4bf08242835d0f1a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page