Giter Site home page Giter Site logo

SpikeInterface: a unified framework for spike sorting

Latest Release latest release
Documentation latest documentation
License license
Build Status CI build status
Codecov codecov

Twitter Mastodon

🚀🚀🚀 New features!: after months of development and testing, we are happy to announce that the latest release (0.101.0) includes a major API improvement: the SortingAnalyzer! To read more about why we did this, checkout the SpikeInterface Enhancement Proposal. Please follow this guide to transition from the old API to the new one: Updating from legacy.

SpikeInterface is a Python framework designed to unify preexisting spike sorting technologies into a single code base.

Please Star the project to support us and Watch to always stay up-to-date!

With SpikeInterface, users can:

  • read/write many extracellular file formats.
  • pre-process extracellular recordings.
  • run many popular, semi-automatic spike sorters (also in Docker/Singularity containers).
  • post-process sorted datasets.
  • compare and benchmark spike sorting outputs.
  • compute quality metrics to validate and curate spike sorting outputs.
  • visualize recordings and spike sorting outputs in several ways (matplotlib, sortingview, jupyter, ephyviewer)
  • export a report and/or export to phy
  • offer a powerful Qt-based viewer in a separate package spikeinterface-gui
  • have powerful sorting components to build your own sorter.

Documentation

Detailed documentation of the latest PyPI release of SpikeInterface can be found here.

Detailed documentation of the development version of SpikeInterface can be found here.

Several tutorials to get started can be found in spiketutorials.

Checkout our YouTube channel for video tutorials: SpikeInterface YouTube Channel.

There are also some useful notebooks on our blog that cover advanced benchmarking and sorting components.

You can also have a look at the spikeinterface-gui.

How to install spikeinterface

You can install the latest version of spikeinterface version with pip (using quotes ensures pip install works in all terminals/shells):

pip install "spikeinterface[full]"

The [full] option installs all the extra dependencies for all the different sub-modules.

To install all interactive widget backends, you can use:

 pip install "spikeinterface[full,widgets]"

To get the latest updates, you can install spikeinterface from source:

git clone https://github.com/SpikeInterface/spikeinterface.git
cd spikeinterface
pip install -e .
cd ..

Citation

If you find SpikeInterface useful in your research, please cite:

@article{buccino2020spikeinterface,
  title={SpikeInterface, a unified framework for spike sorting},
  author={Buccino, Alessio Paolo and Hurwitz, Cole Lincoln and Garcia, Samuel and Magland, Jeremy and Siegle, Joshua H and Hurwitz, Roger and Hennig, Matthias H},
  journal={Elife},
  volume={9},
  pages={e61834},
  year={2020},
  publisher={eLife Sciences Publications Limited}
}

Please also cite other relevant papers for the specific components you use. For a ful list of references, please check the references page.

SpikeInterface's Projects

mearec icon mearec

Fast and customizable of extracellular recordings on MEA

probeinterface icon probeinterface

Python package to handle probe layout, geometry and wiring to device.

spikecomparison icon spikecomparison

Python-based modules to compare and benchmark spike sorting results.

spikeextractors icon spikeextractors

Python-based module for extracting from, converting between, and interfacing with many common file formats in extracellular recording.

spikeinterface icon spikeinterface

A Python-based module for creating flexible and robust spike sorting pipelines.

spikely icon spikely

A GUI for running popular spike sorting algorithms on extracellular data of any file format.

spikeresults icon spikeresults

A collection of notebooks with results obtained with the help of SpikeInterface

spikesorters icon spikesorters

Python-based module with spike sorter wrappers and a simple API for running them.

spiketoolkit icon spiketoolkit

Python-based tools for pre-, post-processing, validating, and curating spike sorting datasets.

spikewidgets icon spikewidgets

Python-based widgets for spike sorting and electrophysiology.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.