Installation
spikeinterface is a Python package.
From PyPi
To install the current release version, you can use:
pip install spikeinterface[full]
The [full] option installs all the extra dependencies for all the different sub-modules.
Note that if using Z shell (zsh - the default shell on macOS), you will need to use quotes (pip install "spikeinterface[full]").
To install all interactive widget backends, you can use:
pip install spikeinterface[full,widgets]
Note that the [widgets] option also installs jupyter (and relative dependencies).
If you wish to only install the core module, without optional dependencies, you can use:
pip install spikeinterface
From source
As spikeinterface is undergoing a heavy development phase, it is sometimes convenient to install from source
to get the latest bug fixes and improvements. We recommend constructing the package within a
virtual environment
to prevent potential conflicts with local dependencies.
git clone https://github.com/SpikeInterface/spikeinterface.git
cd spikeinterface
pip install -e .
cd ..
Note that this will install the package in editable mode.
It is also recommended in that case to also install neo and probeinterface from source,
as spikeinterface strongly relies on these packages to interface with various formats and handle probes:
pip install git+https://github.com/NeuralEnsemble/python-neo.git
pip install git+https://github.com/SpikeInterface/probeinterface.git
It is also sometimes useful to have local copies of neo and probeinterface to make changes to the code. To achieve this, repeat the first set of commands,
replacing https://github.com/SpikeInterface/spikeinterface.git with the appropriate repository in the first code block of this section.
Testing a PR
If you have submitted an issue and another contributor has attempted to fix your issue by creating a pull request (PR), you might want to test the PR. To do this, first install spikeinterface “from source” in editable mode by following the instructions in the above Section.
Now enter the spikeinterface folder in your terminal
cd path/to/spikeinterface
There are a few ways to checkout a PR. The simplest is to first install the GitHub command line interface (https://cli.github.com/).
After installing this, you can run gh pr checkout PR_NUMBER. Every pull request has an ID, which can be found on the
github Pull Request page (https://github.com/SpikeInterface/spikeinterface/pulls). So if you’re interested in PR 4200 you should run:
gh pr checkout 4200
If successful, the returned message should end “Switched to branch ‘blah blah blah’”. You’re now using spikeinterface
including the changes made in PR 4200.
For beginners
We provide some installation tips for beginners in Python here:
https://github.com/SpikeInterface/spikeinterface/tree/main/installation_tips
Requirements
spikeinterface.core itself has only a few dependencies:
numpy
probeinterface
neo
threadpoolctl
tqdm
zarr
pydantic
numcodecs
packaging
Sub-modules have more dependencies, so you should also install:
h5py
scipy
pandas
xarray
scikit-learn
networkx
matplotlib
numba
distinctipy
skops
huggingface_hub
cuda-python (for non-macOS users)
For developers we offer a [dev] option which installs testing, documentation, and linting packages necessary
for testing and building the docs.
All external spike sorters can be either run inside containers (Docker or Singularity - see Running sorters in Docker/Singularity Containers) or must be installed independently (see Installing Spike Sorters).