Software
This is a list of openly available software and code for working with electrophysiological data, including EEG, MEG, ECoG/iEEG, and LFP.
Table of Contents
Overview
This list is focused on re-usable tools for working with electrophysiological data. Generally, this does not include code that is available for specific analysis on particular datasets (though these may be included where they are potentially useful and licensed for re-use).
By ‘open’, here we mean that source code is provided and is released with a permissive license. Commercial products are not listed. Be sure to double check the license before using / modifying linked code. Note that some tools may require non-open dependencies (for example, Matlab tools are listed, but are not fully open).
Other available lists of relevant tools include:
- The Physionet project maintains a list of software available in the PhysioToolkit
- This includes some software that can be used with electrophysiology data.
General Purpose Tools
The following are general purpose platforms, with functionality including: loading data, preprocessing, visualization, standard analysis, and making figures.
MNE
MNE
is a general purpose tool for processing, analyzing, and visualizing M/EEG data.
Neural Ensemble Tools
Neural Ensemble is an initiative for open-source software in neuroscience and includes a set of tools for managing and analyzing electrophysiology data.
neo
is a tool for representing electrophysiology data, and reading neurophysiological file formats.
elephant
is a tool for analyzing electrophysiological data.
Wonambi
Wonambi
is a general purpose tool for processing, analyzing, and visualizing EEG data, including specific tools focused on sleep scoring and analysis.
NeuroKit2
NeuroKit2
is a tool for neurophysiological signal processing.
FieldTrip
FieldTrip
is a general purpose tool for processing, analyzing, and visualizing M/EEG and iEEG/ECoG data.
BrainStorm
BrainStorm
is a general purpose tool for processing, analyzing and visualizing focused primarily on MEG data, with additional support for EEG & ECoG data.
EEGLab
EEGLab
is a general purpose tool for processing, analyzing, and visualizing EEG data.
SPM
SPM
is a general purpose toolbox for neuroimaging, including support for processing M/EEG data.
NutMEG
NutMEG
is a general purpose tool for processing, analyzing, and visualizing MEG data.
Signaleeg
Signaleeg
is a general purpose tool for processing and analyzing EEG data, with a focus on signal-data mining.
BBCI - Berlin brain-computer interface
The BBCI
tool is collection of tools for online and offline analyses for brain-computer interface experiments.
EEGUtils
EEGUtils
is a general purpose tool for processing, analyzing, and visualizing EEG data.
EEGuana
EEGuana
is a package for working with EEG data.
EEG.jl
EEG.jl
is library for processing EEG data.
CarTool
CarTool
is an EEG analysis toolbox.
Standalone Tools
The following are standalone tools, independent of general software platforms, for specific purposes.
NeuroDSP
NeuroDSP
is a package for calculating a broad range of measures on neural time series, including a range of time-domain measures such as waveform shape analyses.
SpecParam (formerly ‘fooof’)
SpecParam
(formerly called fooof
) is a package for parameterizing neural power spectra.
ByCycle
ByCycle
is a tool for cycle-by-cycle analyses of neural oscillations.
pynapple
Pynapple (Python Neural Analysis Package) is a lightweight, general purpose library for analyzing neurophysiological data, that includes some utilities for working with field data.
IRASA
A Python implementation of the ‘irregular resampling auto-spectral analysis’. Note that this is a re-implementation of the algorithm described in the paper.
Frites - Framework for Information Theoretic analysis of Electrophysiological data and Statistics
FRITES
is package for computing information-theoretic measures on human and electrophysiological data.
Antropy
Antropy
is a package for computing entropy and complexity measures on EEG data.
PTSA - Python Time Series Analysis
PTSA
is package for time series analysis in Python, focused on analyzing electrophysiological data.
GhostiPy - General Hub Of Spectral Techniques In Python
Ghostipy
is a toolbox for signal processing and spectral analyses.
Spectral Connectivity
Spectral Connectivity
is a package for functional connectivity and coherence related measures.
Brain Connectivity Toolbox for Python
The Brain Connectivity Toolbox
is a package for brain connectivity measures.
Tensor PAC
TensorPAC
is a tool for calculating phase-amplitude coupling measures, using tensors and parallel computing.
PACTools
PACTools
is a package for calculating phase-amplitude coupling measures in neural time series.
PyEEG
PyEEG
includes some implementations of information theoretic and complexity related measures for neural time series.
ECoGTools
ECoGTools
is a collection of tools for analyzing ECoG data.
EELBrain
EELBrain
is a tool for statistical analysis of M/EEG data.
YASA - Yet another spindle algorithm
YASA
is a package for analyzing polysomnograghy recordings.
kCSD - kernel Current Source Density
The kCSD
tool implements kernel Current Source Density.
EMD - Empirical Mode Decomposition
The EMD
toolbox implements empirical mode decomposition and Hilbert-Huang spectral analyses.
eBOSC - extended Better OSCillation detector
eBOSC
is a tool for oscillation detection and measurement.
BEST - Brain Electrophysiological recording & STimulation
BEST
is a tool for designing and running non-invasive brain stimulation experiments.
restingIAF
RestingIAF
is a tool for estimating the peak individual alpha frequency.
Phase Opposition Code
Phase Opposition is a collection of functions for calculating phase opposition measures.
ADAM - Amsterdam Decoding and Modeling Toolbox
ADAM
is a tool for encoding and decoding model analysis on M/EEG data.
HERMES
HERMES
is tool for estimating connectivity measures between M/EEG signals.
SEREEGA - Simulating Event-Related EEG Activity
SEREEGA
is a package for simulating synthetic data that mimic event-related EEG activity.
UNFOLD
Unfold
is a tool for deconvolving overlapping EEG signals and for non-linear modeling.
ept-TFCE
ept-TFCE
is a tool for statistical analysis of already preprocessed M/EEG data, focused mainly around the ‘threshold-free cluster enhancement’ method.
ERA - ERP Reliability Analysis
ERA
is a tool for calculating reliability estimates for ERP data.
SynchSqueezing
SynchroSqueezing
is a tool for time-frequency and time-scale analyses.
AutoMagic
AutoMagic
is a standardized toolbox for preprocessing EEG datasets.
MVGC - Multivariate Granger Causality Toolbox
The MVGC
toolbox is designed to run Granger-causal analysis on multivariate time-series data.
OpenMEEG
OpemMEEG
is a package for solving forward problems for EEG & MEG data.
Plugins
The following are plugins, designed primary for use with one of the aforementioned general purpose tools.
AutoReject
AutoReject
is a tool for preprocessing M/EEG data, but algorithmically determining and applying rejection thresholds, with MNE.
MNE-BIDS
MNE-BIDS
is a tool for creating BIDS compatible datasets with MNE.
PyPREP
PrPREP
is an implementation of the ‘Preprocessing Pipeline’ (PREP) for EEG data, in Python and using MNE.
PREP Pipeline
The PREP
pipeline is a standardized pre-processing tool for EEG data, using EEGLab.
RELAX
RELAX
(Reduction of Electroencephalographic Artifacts) provides a fully automated method to clean EEG data.
ADJUST
ADJUST
is an automatic artifact identification and removal tool, using EEGLab.
ERPlab
ERPLab
is a tool for event-related potential (ERP) analysis of EEG data, with EEGLab.
LIMO - Linear Modeling
LIMO
is a tool for Linear Modeling of EEG data, with EEGLab.
SIFT - Source Information Flow Toolbox
SIFT
is a tool for causality and information flow measures, with EEGLab.
MPT - Measure Projection Toolbox
MPT
is a tool for probabilistic multi-subject EEG independent component analysis, with EEGLab.
Neuro Tools
The following are broader purpose neuro-tools that could be used with electrophysiology data.
nibabel
nibabel
is a tool for read/write access to common neuroimaging file formats.
nilearn
nilearn
is a tool for applying machine learning to neuroimaging data.
Visbrain
Visbrain
is a tool for brain data visualization.
PyCortex
PyCortex
is a tool for visualizing cortical surfaces.
BrainSpace
BrainSpace
is a tool for analyzing gradients in neuroimaging datasets.
neuromaps
neuromaps
is a tool for comparing between brain maps.