Installation ============ :code:`spikeinterface` is a Python package. From PyPi --------- To install the current release version, you can use: .. code-block:: bash pip install spikeinterface[full] The :code:`[full]` option installs all the extra dependencies for all the different sub-modules. Note that if using Z shell (:code:`zsh` - the default shell on macOS), you will need to use quotes (:code:`pip install "spikeinterface[full]"`). To install all interactive widget backends, you can use: .. code-block:: bash pip install spikeinterface[full,widgets] Note that the :code:`[widgets]` option also installs jupyter (and relative dependencies). If you wish to only install the :code:`core` module, without optional dependencies, you can use: .. code-block:: bash pip install spikeinterface From source ----------- As :code:`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. .. code-block:: bash 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 :code:`neo` and :code:`probeinterface` from source, as :code:`spikeinterface` strongly relies on these packages to interface with various formats and handle probes: .. code-block:: bash 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 :code:`neo` and :code:`probeinterface` to make changes to the code. To achieve this, repeat the first set of commands, replacing :code:`https://github.com/SpikeInterface/spikeinterface.git` with the appropriate repository in the first code block of this section. For beginners ------------- We provide some installation tips for beginners in Python here: https://github.com/SpikeInterface/spikeinterface/tree/main/installation_tips Requirements ------------ :code:`spikeinterface.core` itself has only a few dependencies: * numpy * probeinterface * neo>=0.9.0 * joblib * threadpoolctl * tqdm Sub-modules have more dependencies, so you should also install: * zarr * h5py * scipy * pandas * xarray * scikit-learn * networkx * matplotlib * numba * distinctipy * cuda-python (for non-macOS users) All external spike sorters can be either run inside containers (Docker or Singularity - see :ref:`containerizedsorters`) or must be installed independently (see :ref:`get_started/install_sorters:Installing Spike Sorters`).