Code to reproduce all analysis in this paper is available in Jupyter (Python) notebook format:
https://spikeinterface.github.io/
All data sets can be downloaded from the Dandi Archive:
https://dandiarchive.org/dandiset/000034?search=spikeinterface&pos=1
To replicate the results shown in the figures, SpikeInterface version 0.9.9 has to be installed. This release bundles the following packages, which can be installed from the Python Package Index:
https://pypi.org/project/spikeinterface/0.9.9/
Specifically, the relevant package versions are required for exact replication:
- spikeextractor: 0.8.4
- spiketoolkit: 0.6.3
- spikesorters: 0.3.3
- spikecomparison: 0.2.6
- spikewidgets: 0.4.3
Note that in more recent versions of SpikeInterface all these sub-modules are bundled into a single package. The analysis will yield almost identical results with more recent versions, but may differ in detail as some functionality was changed and random seeds may be altered.
The analysis shown in the paper consisted of two steps:
- execution of different spike sorters for all data sets
- analysis and comparison of the spike sorted data
Step 1 was performed directly on the raw data, without performing any filtering or processing. However, for some sorters the functions executing a spike sorter in the spikesorters module makes use of built-in SpikeInterface functions to pre-filter the data. This can be seen in the source code for each sorter. For instance, no processing is performed for Kilosort, but for HerdingSpikes the data is bandpass filtered (200Hz - 6kHz) and re-scaled. This can be seen in the relevant code, for instance:
https://github.com/SpikeInterface/spikesorters/blob/503b83e743236a9464a1aa09322d51be685940cb/spikesorters/herdingspikes/herdingspikes.py
For any specific queries about parameters please contact the last author, Matthias Hennig (m.hennig@ed.ac.uk).
The following links point to code that reproduce each figure in the paper:
Figure 1 + supplements 1,2: https://spikeinterface.github.io/blog/ensemble-sorting-of-a-neuropixels-recording/
Figure 1—figure supplement 3: https://spikeinterface.github.io/blog/ensemble-sorting-of-a-neuropixels-recording-2/
Figure 1—figure supplement 3: https://spikeinterface.github.io/blog/ensemble-sorting-of-a-3brain-biocam-recording-from-a-retina/
Figure 2 + supplement: https://spikeinterface.github.io/blog/ground-truth-comparison-and-ensemble-sorting-of-a-synthetic-neuropixels-recording/
Figure 3 + supplements: https://spikeinterface.github.io/blog/ground-truth-comparison-and-ensemble-sorting-of-a-synthetic-neuropixels-recording/
Figure 4: https://spikeinterface.github.io/blog/ensemble-sorting-of-a-neuropixels-recording/
Do you have any questions about this protocol?
Post your question to gather feedback from the community. We will also invite the authors of this
article to respond.