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.
RAVE
R Analysis and Visualization of iEEG (RAVE) is a tool for analyzing intracranial EEG data.
EEG.jl
EEG.jl is library for processing EEG data.
CarTool
CarTool is an EEG analysis toolbox.
Luna
Luna is a software toolkit for analyzing sleep data, including implementations in C/C++, R, and Python.
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.
Xenon LFP Analysis Platform
Xenon is an interactive platform for analyzing LFP activity from multi-electrode array (MEA) recordings.
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
OpenMEEG is a package for solving forward problems for EEG & MEG data.
fast Continuous Wavelet Transform
fCWT is a package for fast calculations of Continuous Wavelet Transforms.
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.