Skip to content
/ eegvis Public

visualization functions for EEG in matplotlib and jupyter notebooks

Notifications You must be signed in to change notification settings

eegml/eegvis

Repository files navigation

eegvis

  • work in progress to visualize EEG files in python
  • currently lots of experimentation - not ready for general consumption
  • goal is to provide portion of software infrastructure for EEG analysis

Scope of Project

  • functions to work with matplotlib to visualize EEG
  • functions to interactively plot EEGs in the jupyter notebook
  • web (bokeh) applications to browse and annotate EEGs

Status

  • currently this is still experimental, but it has a useful eeg browser for the jupyter notebook

  • basic filtering added, with notch and low-pass/high-pass filter

  • version 0.2.1 works with bokeh 2.0.2 !

install

jupyter nbextension enable --py widgetsnbextension --sys-prefix

To do

  • matplotlib EEG plotting (firstdraft)

  • basic bokeh EEG plotting (firstdraft)

  • basic montage EEG plotting, (firstdraft)

  • simple browsing EEG with bokeh in jupyter (firstdraft)

  • first filtering dropdowns added to nb browser tool

  • allow kwargs to set plot width and height

  • [/] notch and HF filters dropdowns - problem with ringing on current firwin filters

  • [/] need scale/calibration bars - [x] vertical scale bars can be added for any stackplot

  • catch when current displayed data is not big enough to filter

  • add common avg reference montage (CAR)

  • remove cruft from plotting in various widgets

  • [/] bokeh application to browse + annotate EEG, - still experimenting

  • montage parser/loader (priority long-term)

  • keyboard responses, howto?

  • add ability to control scale of each electrode waveform individually

  • rewrite and package

  • publish

  • possible re-write/extend Bokeh for canvas widget

  • update to bokeh 1.0.x (now at 2.3)

  • tests for mpl_helpers

  • clearcut examples of using plotting tools with:

    • numpy arrays
    • edf EEGs
    • eeghdf EEGs
    • mne eeg and/or meg (should this use, be in eegml-mne-utils)
  • [/] trial implement panel based version of browser widget

  • explore low-level implementation of browser widget using bokeh for more control

  • explore new annotation bokeh controls

  • [/] switch to new packaging for ppa using pyproject.toml and move setup.py to setup-dev.py

  • add tools to mark events in plots and in bokeh

Other notes

Developer Install

currently this is developer only package To install from the head of development

pip install -U git+https://github.com/eegml/eegvis.git

I have started using f-strings in my code, so I no longer support python 3.6 and below

To work on the code yourself:

    git clone https://github.com/eegml/eegvis.git
    cd eegvis
    pip install -e .

jupyter notebook use

conda install ipywidgets conda install widgetsnbextension

jupyter lab use

jupyter labextension install jupyterlab_bokeh jupyter labextension install @jupyter-widgets/jupyterlab-manager

About

visualization functions for EEG in matplotlib and jupyter notebooks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published