SpikeSort is a flexible spike sorting framework implemented completely in Python. It features manual and automatic clustering, many data formats and it is memory-efficient. Truely Open Source, BSD-licensed.
Spike sorting is a common pre-processing step for the analysis of neuroscientific data. The goal of the procedure is to detect the times at which neurons generated action potential, also called spikes.
The times at which spikes arrive encode information about sensory stimuli and their perception. Therefore, correct identification of occurrences of spikes elicited by different neurons is necessary to understand the function and disfunction of nervous system.
Spike sorting is based on extracellular recordings of small electric potential associated with spikes by microelectrodes placed very close to the cell. In practice, such electrodes pick up activity of multiple neurons active simultaneously. The goal of spike sorting is to discriminate the responses of indvidual cells from others.
Each cell has its own characteristic spike waveshape, so that cells can be easily differentiated just by comparing their spikes. Spikes of similar shapes and amplitudes are grouped together using automatic or manual clustering procedure.
Run included Python script:
$ export DATAPATH='where/your/data/is/located' $ python -i cluster_beans.py
and you can start sorting:
>>> browser.show() # sort and show results >>> cluster = base.features['LabelSource'] >>> cluster.recluster(1, 'gmm',2 ) # split cell 1 into 2 clusters >>> cluster.delete_cells(2, 3) # delete unwanted cells
Found a bug? Have a good idea for improving SpikeSort? Need help to analyse your data? Head over to github page and create a new ticket or fork. If you just want to chat with developers, send us an e-mail.