Skip to content

Latest commit

 

History

History
680 lines (395 loc) · 22.9 KB

README.md

File metadata and controls

680 lines (395 loc) · 22.9 KB

Open Software for Human Electrophysiology

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

Language

MNE is a general purpose tool for processing, analyzing, and visualizing M/EEG data.

HomePage - Github - Paper

Neural Ensemble Tools

Language

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.

HomePage - Github

elephant is a tool for analyzing electrophysiological data.

HomePage - Github

Wonambi

Language Language

Wonambi is a general purpose tool for processing, analyzing, and visualizing EEG data, including specific tools focused on sleep scoring and analysis.

HomePage - Github

NeuroKit2

Language

NeuroKit2 is a tool for neurophysiological signal processing.

HomePage - Github

FieldTrip

Language Language

FieldTrip is a general purpose tool for processing, analyzing, and visualizing M/EEG and iEEG/ECoG data.

HomePage - Github - Paper

BrainStorm

Language Language

BrainStorm is a general purpose tool for processing, analyzing and visualizing focused primarily on MEG data, with additional support for EEG & ECoG data.

HomePage - Github - Paper

EEGLab

Language Language

EEGLab is a general purpose tool for processing, analyzing, and visualizing EEG data.

HomePage - Paper

SPM

Language Language

SPM is a general purpose toolbox for neuroimaging, including support for processing M/EEG data.

HomePage

NutMEG

Language

NutMEG is a general purpose tool for processing, analyzing, and visualizing MEG data.

HomePage - Github - Paper

Signaleeg

Language

Signaleeg is a general purpose tool for processing and analyzing EEG data, with a focus on signal-data mining.

Code - Paper

BBCI - Berlin brain-computer interface

Language

The BBCI tool is collection of tools for online and offline analyses for brain-computer interface experiments.

Github - Paper

EEGUtils

Language

EEGUtils is a general purpose tool for processing, analyzing, and visualizing EEG data.

HomePage - Github

EEGuana

Language

EEGuana is a package for working with EEG data.

HomePage - Github

RAVE

Language

R Analysis and Visualization of iEEG (RAVE) is a tool for analyzing intracranial EEG data.

HomePage - Paper

EEG.jl

Language

EEG.jl is library for processing EEG data.

HomePage - Github

CarTool

Language

CarTool is an EEG analysis toolbox.

HomePage - Paper

Standalone Tools

The following are standalone tools, independent of general software platforms, for specific purposes.

NeuroDSP

Language

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.

Homepage - Github - Paper

SpecParam (formerly 'fooof')

Language

SpecParam (formerly called fooof) is a package for parameterizing neural power spectra.

Homepage - Github - Paper

ByCycle

Language

ByCycle is a tool for cycle-by-cycle analyses of neural oscillations.

Homepage - Github - Paper

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.

Homepage - Github

IRASA

Language

A Python implementation of the 'irregular resampling auto-spectral analysis'. Note that this is a re-implementation of the algorithm described in the paper.

Github - Paper

Frites - Framework for Information Theoretic analysis of Electrophysiological data and Statistics

Language

FRITES is package for computing information-theoretic measures on human and electrophysiological data.

Homepage - Github

Antropy

Language

Antropy is a package for computing entropy and complexity measures on EEG data.

Homepage - Github

PTSA - Python Time Series Analysis

Language

PTSA is package for time series analysis in Python, focused on analyzing electrophysiological data.

Homepage - Github

GhostiPy - General Hub Of Spectral Techniques In Python

Language

Ghostipy is a toolbox for signal processing and spectral analyses.

Github - Paper

Spectral Connectivity

Language

Spectral Connectivity is a package for functional connectivity and coherence related measures.

HomePage - Github

Brain Connectivity Toolbox for Python

Language

The Brain Connectivity Toolbox is a package for brain connectivity measures.

Github

Tensor PAC

Language

TensorPAC is a tool for calculating phase-amplitude coupling measures, using tensors and parallel computing.

HomePage - Github - Paper

PACTools

Language

PACTools is a package for calculating phase-amplitude coupling measures in neural time series.

HomePage - Github

PyEEG

Language

PyEEG includes some implementations of information theoretic and complexity related measures for neural time series.

Github - Paper

ECoGTools

Language

ECoGTools is a collection of tools for analyzing ECoG data.

Github

EELBrain

Language

EELBrain is a tool for statistical analysis of M/EEG data.

HomePage - Github - Paper

YASA - Yet another spindle algorithm

Language

YASA is a package for analyzing polysomnograghy recordings.

HomePage - Github

kCSD - kernel Current Source Density

Language

The kCSD tool implements kernel Current Source Density.

HomePage - Github - Paper

EMD - Empirical Mode Decomposition

Language

The EMD toolbox implements empirical mode decomposition and Hilbert-Huang spectral analyses.

HomePage - Code - Paper

Xenon LFP Analysis Platform

Language

Xenon is an interactive platform for analyzing LFP activity from multi-electrode array (MEA) recordings.

HomePage - Github - Paper

eBOSC - extended Better OSCillation detector

Language

eBOSC is a tool for oscillation detection and measurement.

Github - Paper

BEST - Brain Electrophysiological recording & STimulation

Language

BEST is a tool for designing and running non-invasive brain stimulation experiments.

Homepage - Github - Paper

restingIAF

Language

RestingIAF is a tool for estimating the peak individual alpha frequency.

Github - Paper

Phase Opposition Code

Language

Phase Opposition is a collection of functions for calculating phase opposition measures.

HomePage - Paper

ADAM - Amsterdam Decoding and Modeling Toolbox

Language

ADAM is a tool for encoding and decoding model analysis on M/EEG data.

Github - Paper

HERMES

Language

HERMES is tool for estimating connectivity measures between M/EEG signals.

HomePage - Github - Paper

SEREEGA - Simulating Event-Related EEG Activity

Language

SEREEGA is a package for simulating synthetic data that mimic event-related EEG activity.

Github - Paper

UNFOLD

Language

Unfold is a tool for deconvolving overlapping EEG signals and for non-linear modeling.

HomePage - Github - Paper

ept-TFCE

Language

ept-TFCE is a tool for statistical analysis of already preprocessed M/EEG data, focused mainly around the 'threshold-free cluster enhancement' method.

Github - Paper

ERA - ERP Reliability Analysis

Language

ERA is a tool for calculating reliability estimates for ERP data.

HomePage - Github - Paper

SynchSqueezing

Language

SynchroSqueezing is a tool for time-frequency and time-scale analyses.

Github

AutoMagic

Language

AutoMagic is a standardized toolbox for preprocessing EEG datasets.

Github - Paper

MVGC - Multivariate Granger Causality Toolbox

Language

The MVGC toolbox is designed to run Granger-causal analysis on multivariate time-series data.

HomePage - Code - Paper

OpenMEEG

Language

OpenMEEG is a package for solving forward problems for EEG & MEG data.

HomePage - Github - Paper

fast Continuous Wavelet Transform

Language

fCWT is a package for fast calculations of Continuous Wavelet Transforms.

Github - Paper

Plugins

The following are plugins, designed primary for use with one of the aforementioned general purpose tools.

AutoReject

Language PlugIn

AutoReject is a tool for preprocessing M/EEG data, but algorithmically determining and applying rejection thresholds, with MNE.

HomePage - Github - Paper

MNE-BIDS

Language PlugIn

MNE-BIDS is a tool for creating BIDS compatible datasets with MNE.

HomePage - Github - Paper

PyPREP

Language

PrPREP is an implementation of the 'Preprocessing Pipeline' (PREP) for EEG data, in Python and using MNE.

Homepage - Github

PREP Pipeline

Language PlugIn

The PREP pipeline is a standardized pre-processing tool for EEG data, using EEGLab.

HomePage - Github - Paper

RELAX

Language PlugIn

RELAX (Reduction of Electroencephalographic Artifacts) provides a fully automated method to clean EEG data.

Github - Paper1 - Paper2

ADJUST

Language PlugIn

ADJUST is an automatic artifact identification and removal tool, using EEGLab.

HomePage - Paper

ERPlab

Language PlugIn

ERPLab is a tool for event-related potential (ERP) analysis of EEG data, with EEGLab.

HomePage - Github - Paper

LIMO - Linear Modeling

Language PlugIn

LIMO is a tool for Linear Modeling of EEG data, with EEGLab.

HomePage - Github - Paper

SIFT - Source Information Flow Toolbox

Language PlugIn

SIFT is a tool for causality and information flow measures, with EEGLab.

HomePage

MPT - Measure Projection Toolbox

Language PlugIn

MPT is a tool for probabilistic multi-subject EEG independent component analysis, with EEGLab.

HomePage

Neuro Tools

The following are broader purpose neuro-tools that could be used with electrophysiology data.

nibabel

Language

nibabel is a tool for read/write access to common neuroimaging file formats.

HomePage - Github

nilearn

Language

nilearn is a tool for applying machine learning to neuroimaging data.

HomePage - Github

Visbrain

Language

Visbrain is a tool for brain data visualization.

Homepage - Github

PyCortex

Language

PyCortex is a tool for visualizing cortical surfaces.

Homepage - Github

BrainSpace

Language

BrainSpace is a tool for analyzing gradients in neuroimaging datasets.

HomePage - Github - Paper

neuromaps

Language

neuromaps is a tool for comparing between brain maps.

HomePage - Github - Paper