This is a list of openly available software and code for working with electrophysiological data, including EEG, MEG, ECoG/iEEG, and LFP.
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.
The following are general purpose platforms, with functionality including: loading data, preprocessing, visualization, standard analysis, and making figures.
MNE is a general purpose tool for processing, analyzing, and visualizing M/EEG data.
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 is a general purpose tool for processing, analyzing, and visualizing EEG data, including specific tools focused on sleep scoring and analysis.
NeuroKit2 is a tool for neurophysiological signal processing.
FieldTrip is a general purpose tool for processing, analyzing, and visualizing M/EEG and iEEG/ECoG data.
BrainStorm is a general purpose tool for processing, analyzing and visualizing focused primarily on MEG data, with additional support for EEG & ECoG data.
EEGLab is a general purpose tool for processing, analyzing, and visualizing EEG data.
SPM is a general purpose toolbox for neuroimaging, including support for processing M/EEG data.
NutMEG is a general purpose tool for processing, analyzing, and visualizing MEG data.
Signaleeg is a general purpose tool for processing and analyzing EEG data, with a focus on signal-data mining.
The BBCI tool is collection of tools for online and offline analyses for brain-computer interface experiments.
EEGUtils is a general purpose tool for processing, analyzing, and visualizing EEG data.
EEGuana is a package for working with EEG data.
R Analysis and Visualization of iEEG (RAVE) is a tool for analyzing intracranial EEG data.
EEG.jl is library for processing EEG data.
CarTool is an EEG analysis toolbox.
Luna is a software toolkit for analyzing sleep data, including implementations in C/C++, R, and Python.
The following are standalone tools, independent of general software platforms, for specific purposes.
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 called fooof) is a package for parameterizing neural power spectra.
ByCycle is a tool for cycle-by-cycle analyses of neural oscillations.
Pynapple (Python Neural Analysis Package) is a lightweight, general purpose library for analyzing neurophysiological data, that includes some utilities for working with field data.
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 is package for computing information-theoretic measures on human and electrophysiological data.
Antropy is a package for computing entropy and complexity measures on EEG data.
PTSA is package for time series analysis in Python, focused on analyzing electrophysiological data.
Ghostipy is a toolbox for signal processing and spectral analyses.
Spectral Connectivity is a package for functional connectivity and coherence related measures.
The Brain Connectivity Toolbox is a package for brain connectivity measures.
TensorPAC is a tool for calculating phase-amplitude coupling measures, using tensors and parallel computing.
PACTools is a package for calculating phase-amplitude coupling measures in neural time series.
PyEEG includes some implementations of information theoretic and complexity related measures for neural time series.
ECoGTools is a collection of tools for analyzing ECoG data.
EELBrain is a tool for statistical analysis of M/EEG data.
YASA is a package for analyzing polysomnograghy recordings.
The kCSD tool implements kernel Current Source Density.
The EMD toolbox implements empirical mode decomposition and Hilbert-Huang spectral analyses.
Xenon is an interactive platform for analyzing LFP activity from multi-electrode array (MEA) recordings.
eBOSC is a tool for oscillation detection and measurement.
BEST is a tool for designing and running non-invasive brain stimulation experiments.
RestingIAF is a tool for estimating the peak individual alpha frequency.
Phase Opposition is a collection of functions for calculating phase opposition measures.
ADAM is a tool for encoding and decoding model analysis on M/EEG data.
HERMES is tool for estimating connectivity measures between M/EEG signals.
SEREEGA is a package for simulating synthetic data that mimic event-related EEG activity.
Unfold is a tool for deconvolving overlapping EEG signals and for non-linear modeling.
ept-TFCE is a tool for statistical analysis of already preprocessed M/EEG data, focused mainly around the 'threshold-free cluster enhancement' method.
ERA is a tool for calculating reliability estimates for ERP data.
SynchroSqueezing is a tool for time-frequency and time-scale analyses.
AutoMagic is a standardized toolbox for preprocessing EEG datasets.
The MVGC toolbox is designed to run Granger-causal analysis on multivariate time-series data.
OpenMEEG is a package for solving forward problems for EEG & MEG data.
fCWT is a package for fast calculations of Continuous Wavelet Transforms.
The following are plugins, designed primary for use with one of the aforementioned general purpose tools.
AutoReject is a tool for preprocessing M/EEG data, but algorithmically determining and applying rejection thresholds, with MNE.
MNE-BIDS is a tool for creating BIDS compatible datasets with MNE.
PrPREP is an implementation of the 'Preprocessing Pipeline' (PREP) for EEG data, in Python and using MNE.
The PREP pipeline is a standardized pre-processing tool for EEG data, using EEGLab.
RELAX (Reduction of Electroencephalographic Artifacts) provides a fully automated method to clean EEG data.
ADJUST is an automatic artifact identification and removal tool, using EEGLab.
ERPLab is a tool for event-related potential (ERP) analysis of EEG data, with EEGLab.
LIMO is a tool for Linear Modeling of EEG data, with EEGLab.
SIFT is a tool for causality and information flow measures, with EEGLab.
MPT is a tool for probabilistic multi-subject EEG independent component analysis, with EEGLab.
The following are broader purpose neuro-tools that could be used with electrophysiology data.
nibabel is a tool for read/write access to common neuroimaging file formats.
nilearn is a tool for applying machine learning to neuroimaging data.
Visbrain is a tool for brain data visualization.
PyCortex is a tool for visualizing cortical surfaces.
BrainSpace is a tool for analyzing gradients in neuroimaging datasets.
neuromaps is a tool for comparing between brain maps.