Compatible Technology¶
Supported File Formats¶
Currently, we support many popular file formats for both raw and sorted extracellular datasets. Given the standardized, modular design of our recording and sorting extractors, adding new file formats is straightforward so we expect this list to grow in future versions.
Most of format are supported on top on NEO
Raw Data Formats¶
For raw data formats, we currently support:
BlackRock - BlackRockRecordingExtractor
Binary - BinaryRecordingExtractor
Biocam HDF5 - BiocamRecordingExtractor
CED - CEDRecordingExtractor
Intan - IntanRecordingExtractor
Klusta - KlustaRecordingExtractor
MaxOne - MaxOneRecordingExtractor
MCSH5 - MCSH5RecordingExtractor
MEArec - MEArecRecordingExtractor
Mountainsort MDA - MdaRecordingExtractor
Neurodata Without Borders - NwbRecordingExtractor
Neuroscope - NeuroscopeRecordingExtractor
NIX - NIXIORecordingExtractor
Neuralynx - NeuralynxRecordingExtractor
Open Ephys Leagacy - OpenEphysLegacyRecordingExtractor
Open Ephys Binary - OpenEphysBinaryRecordingExtractor
Phy/Kilosort - PhyRecordingExtractor/KilosortRecordingExtractor
Plexon - PlexonRecordingExtractor
Shybrid - SHYBRIDRecordingExtractor
SpikeGLX - SpikeGLXRecordingExtractor
Spyking Circus - SpykingCircusRecordingExtractor
Sorted Data Formats¶
For sorted data formats, we currently support:
BlackRock - BlackRockSortingExtractor
Combinato - CombinatoSortingExtractor
Cell Explorer - CellExplorerSortingExtractor
Experimental Directory Structure (Exdir) - ExdirSortingExtractor
HerdingSpikes2 - HS2SortingExtractor
JRClust - JRCSortingExtractor
Kilosort/Kilosort2 - KiloSortSortingExtractor
Klusta - KlustaSortingExtractor
MEArec - MEArecSortingExtractor
Mountainsort MDA - MdaSortingExtractor
Neurodata Without Borders - NwbSortingExtractor
Neuroscope - NeuroscopeSortingExtractor
NPZ (created by SpikeInterface) - NpzSortingExtractor
Open Ephys - OpenEphysSortingExtractor
Shybrid - SHYBRIDSortingExtractor
Spyking Circus - SpykingCircusSortingExtractor
Trideclous - TridesclousSortingExtractor
YASS - YassSortingExtractor
Installed Extractors¶
To check which extractors are useable in a given python environment, one can print the installed recording extractor list and the installed sorting extractor list. An example from a newly installed miniconda3 environment is shown below,
First, import the spikeextractors package,
import spikeinterface.extractors as se
Then you can check the installed RecordingExtractor list,
se.installed_recording_extractor_list
which outputs,
[spikeinterface.extractors.MdaRecordingExtractor,
spikeinterface.extractorsBiocamRecordingExtractor,
spikeinterface.core..BinaryRecordingExtractor,
...
and the installed SortingExtractors list,
se.installed_sorting_extractor_list
which outputs,
[spikeinterface.extractors.SpykingCircusSortingExtractor,
spikeinterface.extractors.HerdingspikesSortingExtractor,
...
When trying to use an extractor that has not been installed in your environment, an installation message will appear indicating which python packages must be installed as a prerequisite to using the extractor,
mearec_file = 'path_to_exdir_file.h5'
recording = se.MEArecRecordingExtractor(mearec_file)
throws the error,
----> 1 se.MEArecRecordingExtractor(mearec_file)
AssertionError: To use the MEArecRecordingExtractor run:
pip install MEARec
Dealing with Non-Supported File Formats¶
Many users store their datasets in custom file formats that are not general enough to create new extractors. To allow these users to still utilize SpikeInterface with their data, we built two in-memory Extractors: the NumpyRecordingExtractor and the NumpySortingExtractor.
The NumpyRecordingExtractor can be instantiated with a numpy array that contains the underlying extracellular traces (channels x frames), the sampling frequency, and the probe geometry (optional). Once instantiated, the NumpyRecordingExtractor can be used like any other RecordingExtractor.
The NumpySortingExtractor does not need any data during instantiation. However, after instantiation, it can be filled with data using its built-in functions (load_from_extractor, set_times_labels, and add_unit). After sorted data is added to the NumpySortingExtractor, it can be used like any other SortingExtractor.
With these two objects, we hope that any user can access SpikeInterface regardless of the nature of their underlying file format. If you feel like a non-supported file format should be included in SpikeInterface as an actual extractor, please leave an issue in the spikeextractors repository.
Supported Spike Sorters¶
Currently, we support many popular semi-automatic spike sorters. Given the standardized, modular design of our sorters, adding new ones is straightforward so we expect this list to grow in future versions.
HerdingSpikes2 - HerdingspikesSorter
IronClust - IronClustSorter
Kilosort - KilosortSorter
Kilosort2 - Kilosort2Sorter
Kilosort2.5 - Kilosort2_5Sorter
Kilosort3 - Kilosort3Sorter
PyKilosort - PyKilosortSorter
Klusta - KlustaSorter
Mountainsort4 - Mountainsort4Sorter
SpyKING Circus - SpykingcircusSorter
Tridesclous - TridesclousSorter
Wave clus - WaveClusSorter
Combinato - CombinatoSorter
HDSort - HDSortSorter
yass - YassSorter
Installed Sorters¶
To check which sorters are useable in a given python environment, one can print the installed sorters list. An example is shown in a pre-defined miniconda3 environment.
First, import the spikesorters package,
import spikeinterface.sorters as ss
Then you can check the installed Sorter list,
ss.installed_sorters()
which outputs,
['herdingspikes',
'klusta',
'mountainsort4',
'spykingcircus',
'tridesclous']
When trying to use an sorter that has not been installed in your environment, an installation message will appear indicating how to install the given sorter,
recording = ss.run_ironclust(recording)
throws the error,
AssertionError: This sorter ironclust is not installed.
Please install it with:
To use IronClust run:
>>> git clone https://github.com/jamesjun/ironclust
and provide the installation path by setting the IRONCLUST_PATH
environment variables or using IronClustSorter.set_ironclust_path().