A new backend based on pyqtgraph for the 2D-Data-Browser in MNE-Python
Project description
mne-qt-browser
A new backend based on pyqtgraph for the 2D-Data-Browser in MNE-Python.
This repository hosts the code for an alternative backend for plotting 2D-Data with MNE-Python.
The backend is based on pyqtgraph which uses Qt's Graphics View Framework for the plotting. Development started as a 2021's Google Summer of Code Project.
Installation
Install full MNE-Python version 1.0 or greater with the instructions provided here or install minimal MNE-Python with
pip
pip install "mne>=1.0" matplotlib mne-qt-browser
or
conda
conda install -c conda-forge mne-base matplotlib mne-qt-browser
Update
Refer to the MNE-Python documentation for updating MNE-Python. To update this package, do:
pip install -U mne-qt-browser
To update this package to the development version, do:
pip install -U --no-deps https://github.com/mne-tools/mne-qt-browser/archive/refs/heads/main.zip
Usage
The backend supports plotting for the following MNE-Python methods:
mne.io.Raw.plot()
mne.Epochs.plot()
mne.preprocessing.ICA.plot_sources(raw)
mne.preprocessing.ICA.plot_sources(epochs)
In the following example, we'll read M/EEG raw data from the MNE sample
dataset
and plot it using the qt
-backend.
(For mne-version >= 1.0 the qt
-backend will be the default)
from pathlib import Path
import mne
sample_dir = mne.datasets.sample.data_path()
raw_path = Path(sample_dir) / 'MEG' / 'sample' / 'sample_audvis_raw.fif'
raw = mne.io.read_raw(raw_path)
mne.viz.set_browser_backend('qt') # Enable mne-qt-browser backend if mne < 1.0
raw.plot(block=True)
If the plot is not showing, search for solutions in the troubleshooting section below.
This will use the mne-qt-browser
for the current Python session. If you
want to make this change permanent, so you don't have to use the
set_browser_backend()
each time after restarting Python, run the following
line to modify your MNE configuration file:
import mne
mne.set_config('MNE_BROWSER_BACKEND', 'qt')
Troubleshooting
Running from a script
If you are running a script containing raw.plot()
like
python example_script.py
the plot will not stay open when the script is done.
To solve this either change raw.plot()
to raw.plot(block=True)
or run the script with the interactive flag
python -i example_script.py
IPython
If the integration of the Qt event loop is not activated for IPython, a plot with raw.plot()
will freeze.
Do avoid that either change raw.plot()
to raw.plot(block=True)
or activate the integration of the event loop with
%gui qt5
Report Bugs & Feature Requests
Please report bugs and feature requests in the issues of this repository.
Development and testing
You can run a benchmark locally with:
pytest -m benchmark mne_qt_browser
To run the PyQtGraph tests you have to run:
pytest mne_qt_browser/tests/test_pg_specific.py
Additionally, clone mne-python, and then run:
pytest -m pgtest ../mne-python/mne/viz/tests
If you do not have OpenGL installed, this will currently raise errors, and
you'll need to add this line to mne/conftest.py
after the error::
line:
ignore:.*PyOpenGL was not found.*:RuntimeWarning
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mne_qt_browser-0.6.2.tar.gz
.
File metadata
- Download URL: mne_qt_browser-0.6.2.tar.gz
- Upload date:
- Size: 59.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dc265e3eb5d8577c4da11e8a2bf5aeb7c7e2f73fa54d594a8b2d0e0b04ae5d4 |
|
MD5 | 79657c11b884eb5b880123398ec951cc |
|
BLAKE2b-256 | a5dbcc5fecfa19e96fc15a806df1e722635195d2c998fc961dba6a37005381e4 |
File details
Details for the file mne_qt_browser-0.6.2-py3-none-any.whl
.
File metadata
- Download URL: mne_qt_browser-0.6.2-py3-none-any.whl
- Upload date:
- Size: 74.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd143462cfa2d9088a26b4b469fd398e0d2216761bdff1387eb920920a9e4e19 |
|
MD5 | dfef0326143493e4dac338bc3fd14af8 |
|
BLAKE2b-256 | 233126975ad8b0433448aefd4bbdf5bbde5f59e4e3f29c869c4464c0e9903429 |