Installing Spike Sorters

An important aspect of spikeinterface is the spikeinterface.sorters module. This module wraps many popular spike sorting tools. This means that you can run multiple sorters on the same dataset with only a few lines of code and through Python.

These spike sorting algorithms must be installed externally. Some of theses sorters are written in Matlab, so you will also to install Matlab if you want to use them (Kilosort, Kilosort2, Ironclust, …) Some of then will also need some computing library like CUDA (Kilosort, Kilosort2, Ironclust (optional)) or opencl (Tridesclous) to use hardware acceleration (GPU).

Here is a list of the implemented wrappers and some instructions to install them on your local machine. Installation instructions are given for an Unbuntu platform. Please check the documentation of the different spike sorters to retrieve installation instructions for other operating systems. We use pip to install packages, but conda should also work in many cases.

If you experience installation problems please directly contact the authors of theses tools or write on the related mailing list, google group, etc.

Please feel free to enhance this document with more installation tips.

Herdingspikes2

  • Python + C++

  • Url: https://github.com/mhhennig/hs2

  • Authors: Matthias Hennig, Jano Horvath,Cole Hurwitz, Oliver Muthmann, Albert Puente Encinas, Martino Sorbaro, Cesar Juarez Ramirez, Raimon Wintzer: GUI and visualisation

  • Installation:

    pip install herdingspikes
    

HDSort

  • Matlab

  • Url: https://git.bsse.ethz.ch/hima_public/HDsort.git

  • Authors: Roland Diggelmann, Felix Franke

  • Installation:

    git clone https://git.bsse.ethz.ch/hima_public/HDsort.git
    # provide installation path by setting the HDSORT_PATH environment variable
    # or using HDSortSorter.set_hdsort_path()
    

IronClust

  • Matlab

  • Url: https://github.com/jamesjun/ironclust

  • Authors: James J. Jun

  • Installation need Matlab:

    git clone https://github.com/jamesjun/ironclust
    # provide installation path by setting the IRONCLUST_PATH environment variable
    # or using IronClustSorter.set_ironclust_path()
    

Kilosort

Kilosort2

Kilosort2.5

Kilosort3

pykilosort

  • Python, requires cuda

  • Url: https://github.com/MouseLand/pykilosort

  • Authors: Marius Pachitariu, Shashwat Sridhar, Alexander Morley, Cyrille Rossant

  • Install the python cuda toolkit. In principle, this should work:

    pip install cupy  (or pip install cupy-cudaXXX)
    
  • However, conda installation could be less painful:

    conda install cupy
    
  • Next, clone and install pykilosort. Note that we support the newer version on the develop branch:

    pip install phylib, pypandoc
    git clone https://github.com/MouseLand/pykilosort
    git checkout develop
    cd pykilosort
    pip install -r requirements.txt
    python setup.py install
    
  • Alternatively, you can use the pyks2.yml environment file in the pykilosort repo and update your favorite environment with:

    conda env update --name my-fav-env --file pyks2.yml --prune
    
  • See also https://github.com/MouseLand/pykilosort#installation

Klusta

Mountainsort4

SpykingCircus

  • Python, requires MPICH

  • Url: https://spyking-circus.readthedocs.io

  • Authors: Pierre Yger, Olivier Marre

  • Installation:

    sudo apt install libmpich-dev
    pip install mpi4py
    pip install spyking-circus --no-binary=mpi4py
    

Tridesclous

  • Python, runs faster with opencl installed but optional

  • Url: https://tridesclous.readthedocs.io

  • Authors: Samuel Garcia, Christophe Pouzat

  • Installation:

    pip install tridesclous
    
  • Optional installation of opencl ICD and pyopencl for hardware acceleration:

    sudo apt-get install beignet (optional if intel GPU)
    sudo apt-get install nvidia-opencl-XXX (optional if nvidia GPU)
    sudo apt-get install pocl-opencl-icd (optional for multi core CPU)
    sudo apt-get install opencl-headers ocl-icd-opencl-dev libclc-dev ocl-icd-libopencl1
    pip install pyopencl
    

Waveclus

  • Matlab

  • Url: https://github.com/csn-le/wave_clus/wiki

  • Authors: Fernando Chaure, Hernan Rey and Rodrigo Quian Quiroga

  • Installation needs Matlab:

    git clone https://github.com/csn-le/wave_clus/
    # provide installation path by setting the WAVECLUS_PATH environment variable
    # or using WaveClusSorter.set_waveclus_path()
    

Combinato

  • Python

  • Url: https://github.com/jniediek/combinato/wiki

  • Authors: Johannes Niediek, Jan Boström, Christian E. Elger, Florian Mormann

  • Installation:

    git clone https://github.com/jniediek/combinato
    # Then inside that folder, run:
    python setup_options.py
    # provide installation path by setting the COMBINATO_PATH environment variable
    # or using CombinatoSorter.set_combinato_path()
    

Yass