Spikes

This is a collection of tools & resources related to ‘spikes’ in neuroscience (action potentials recorded from individual neurons).

This list covers single-unit and multi-unit data, including data management, spike sorting, and available tools and analyses.

To contribute a new link to a tool or resource, open an issue mentioning it, or a pull request with a link.

Note that single-unit datasets are listed in the OpenData list.

Table of Contents

Data Recording

Single-unit data can be recorded with various different amplifiers and recording systems from different companies.

This section lists companies that make recording systems for single-unit recordings.

Recording Systems

Data Management

Data from different recording system are often stored in proprietary file formats.

This section collects tools and resources related to data management for neural recordings of single- an multi-unit data.

Neurodata Without Borders

NWB is a standardized data schema that can be used to store single-unit data.

NWB includes a broad ecosystem of related tools for working with NWB files, as described on the NWB overview page.

This ecosystem includes the following tools developed by NWB:

  • PyNWB, a Python interface for NWB files
  • MatNWB, a Matlab interface for NWB files
  • NWBinspector for inspecting NWB files for compliance
  • NWBwidgets for interactive visualizations of NWB files in notebooks

In addition, there are other available tools related to NWB, including:

  • neuroconv, which provides tools for converting and combining data into NWB
  • CellExplorer, which is a Matlab tool providing a GUI for exploring and classifying single cells

Other Data Management Tools

Other tools related to data management for single-unit data include:

  • NEO, a Python tool for reading neurophysiology file formats

Spike Sorting

Spike sorting is the process of the grouping spikes into clusters, that relate to putative individual neurons. There have been many proposed algorithms for spike sorting. This section lists tools and resources related to spike sorting.

Tutorials

Spike sorting tutorials:

Spike Interface

SpikeInterface is a Python module for performing spike sorting and associated processes.

SpikeInterface can be used to run multiple available spike-sorting algorithms, including this list of spike sorters.

SpikeInterface includes multiple sub-modules, including:

  • comparison for comparing and benchmarking sorting outputs
  • extractors for interfacing with data files
  • toolkit for pre- & post-processing related to spike sorting
  • sorters for running supported spike sorters
  • widgets for using widgets for visualizations

Spike Sorters

Spike sorters that can be used on single-channel / microwire recordings, such as in human data:

Spike sorters that can be used on multi-channel / high density recordings, such as in animal data:

Comparisons & Quality Control

Spike sorting solutions can vary, and in general requires quality control procedures to ensure that sorting solution are robust and adequately reflect isolated units. Different spike sorters can give different solutions, and it may be useful to compare different spike sorters to each other.

The following are guides to quality control for spike sorting:

The following are systematic comparisons of different spike sorters:

  • SpikeForrest is a project that systematically compares multiple spike sorting algorithms.

Spike Analyses

The following collects tools and resources for analyzing (sorted) single neuron data.

General Toolboxes

General Tools:

  • spiketools is a Python package for analyzing spike data
  • pynapple, the PYthon Neural Analysis Package, has some tools for working with spike data
  • Spykes is a Python toolbox for spike data analysis & visualizations
  • elephant, the electrophysiology analysis toolkit, which uses neo
  • Phy is a Python tool providing a graphical interface for visualization and manual curation of large-scale electrophysiology data
  • Brainstorm, a general purpose, Matlab toolbox, has tools for processing ephys data

Simulations

The following are tools and utilities for simulating spiking data:

  • MEArec, a Python toolbox for simulating extra-cellular recordings on multi-unit arrays
  • PyRates, a Python framework for rate-based neural simulations
  • Brian2, a Python toolbox for simulating spiking neural networks

Individual Analyses

The following are dedicated tutorials for single-cell analyses:

The following are tools and resources for particular analyses:

The following are code repositories for individual analyses / projects / papers:

The following are collections of available code from individual labs: