klusta is an open source package for automatic spike sorting of multielectrode neurophysiological recordings made with probes containing up to a few dozens of sites.
We are also working actively on more sophisticated algorithms that will scale to hundreds/thousands of channels. This work is being done within the phy project, which is still experimental at this point.
klusta implements the following features:
- Kwik: An HDF5-based file format that stores the results of a spike sorting session.
- Spike detection (also known as SpikeDetekt): an algorithm designed for probes containing tens of channels, based on a flood-fill algorithm in the adjacency graph formed by the recording sites in the probe.
- Automatic clustering (also known as Masked KlustaKwik): an automatic clustering algorithm designed for high-dimensional structured datasets.
You will need a GUI to visualize the spike sorting results.
We have developed two GUI programs with the same features:
- phy KwikGUI: newer project, scales to hundreds/thousands of channels, still relatively experimental. It will be automatically installed if you follow the install instructions below.
- KlustaViewa: widely used, but older and a bit hard to install since it relies on very old dependencies.
Both GUIs work with the same Kwik format.
The following instructions will install both klusta and the phy KwikGUI.
-
Make sure that you have miniconda installed. You can choose the Python 3.5 64-bit version for your operating system (Linux, Windows, or OS X).
-
Open a terminal (on Windows,
cmd
, not Powershell) in the directory where you saved the file and type:conda env create -n klusta -f environment.yml
-
Done! Now, to use klusta and the phy KwikGUI, enter the directory that contains your files and type:
source activate klusta # omit the `source` on Windows klusta yourfile.prm # spikesort your data with a PRM file phy kwik-gui yourfile.kwik # open the GUI
See the documentation for more details.
To get the latest version of the software, open a terminal and type:
source activate klusta # omit the `source` on Windows
pip install klusta phy phycontrib --upgrade
klusta is written in pure Python. The clustering code, written in Python and Cython, currently lives in another repository.
- Documentation (work in progress)
- Paper in Nature Neuroscience (April 2016)
- Mailing list
- Sample data repository (work in progress)
klusta is developed by Cyrille Rossant, Shabnam Kadir, Dan Goodman, Max Hunter, and Kenneth Harris, in the Cortexlab, University College London.