Welcome to SpikeInterface’s documentation!

_images/logo.png

SpikeInterface is a Python module to analyze extracellular electrophysiology data.

With a few lines of code, SpikeInterface enables you to load and pre-process the recording, run several state-of-the-art spike sorters, post-process and curate the output, compute quality metrics, and visualize the results.

Warning

New features under construction! 🚧🚧🚧: after the 0.100.0 release (and related bug fixes), the next release will contain a major API improvement: the SortingAnalyzer. To read more about this, checkout the enhancement proposal. Please refer to the stable documentation here

Overview of SpikeInterface modules

_images/overview.png

SpikeInterface is made of several modules to deal with different aspects of the analysis pipeline:

  • read/write many extracellular file formats.

  • pre-process extracellular recordings.

  • run many popular, semi-automatic spike sorters (also in Docker/Singularity containers).

  • post-process spike sorted data.

  • compare and benchmark spike sorting outputs.

  • compute quality metrics to validate and curate spike sorting outputs.

  • visualize recordings and spike sorting outputs.

  • export a report and/or export to Phy.

  • offer a powerful Qt-based viewer in a separate package spikeinterface-gui

  • have some powerful sorting components to build your own sorter.

  • have a full motion/drift correction framework (See Motion/drift correction)

Other resources

To get started with SpikeInterface, you can take a look at the following additional resources:

  • spiketutorials is a collection of basic and advanced
    tutorials. It includes links to videos to dive into the SpikeInterface framework.
  • SpikeInterface Reports contains several notebooks to reproduce analysis
    figures of SpikeInterface-based papers and to showcase the latest features of SpikeInterface.
  • The 2020 eLife paper introduces the concept and motivation and
    performs an in-depth comparison of multiple sorters (spoiler alert: they strongly disagree with each other!).
    Note: the code-base and implementation have changed a lot since the “paper” version published in 2020.
    For detailed documentation we therefore suggest more recent resources, like this documentation and spiketutorials.