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.
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.