What is Spiker?




License Agreement

  What is Spiker?

Spiker is a program to sort data into different categories. It was designed with the specific aim of sorting data recorded from extracellular recordings to extract activity from single units in a neurophysiology experiment.

When a neurophysiologists records electrical activity by placing an electrode in the extracellular media, all the neurons in the surrounding area contribute to the signal. The exact contribution of each neuron will depend on a number of factors, notably the distance from the neuron to the electrode1,2. If the experimenter is interested in studying the activity of well-isolated single neurons, he needs to separate the signals from the different neuronal sources.

            A number of different procedures and algorithms have been suggested for this purpose over the last two decades (for a review see3,4). A common algorithm is to allow the user to manually set the cluster boundaries in several two-dimensional graphs plotting the waveforms heights, widths, slopes, peak and trough times and principal components of the data. This is implemented in commercial software such as Datawave (Datawave, Denver, CO). This procedure is time-consuming and relies heavily on the user to determine the number of clusters and their boundaries. Fully automatic algorithms have been suggested and implemented by Lewicki5 and Sahani4.

            Instead of fine-tuning the parameters of the models for each data set, Spiker performs a classification of the data, shows some relevant statistics (such as the percentage of small interspike intervals) and then allows the user to re-sort a specific cluster or merge cluster if this is necessary. SPIKER comes with a user-friendly graphical interface, which displays the clustering results and allows the user to manually modify the classification criteria if desired.

The sorting algorithm is based on an expectation maximization algorithm6. The interspike interval distribution, power spectrum and percentage of spikes within the refractory period are computed for each cluster. A spline interpolation of the waveform source is computed7 and from this, we estimate the width and height of each source. Spiker is freely available and easy to install and use.

SPIKER was written by Angela Yu and Gabriel Kreiman while both were working in the laboratory of Prof. Koch at Caltech.


1.         Holt, G. R. & Koch, C. Electrical interactions via the extracellular potential near cell bodies. J. Comp. Neurosci. 6, 169-184 (1999).

2.         Johnston, D. & Wu, S. M. Foundations of cellular neurophysiology (The MIT Press, Cambridge, 1995).

3.         Lewicki, M. S. A review of methods of spike sorting: the detection and classification of neural action potentials. Network: Computation and Neural Systems. 9, R53-R78 (1998).

4.         Sahani, M. in Computation and Neural Systems (Caltech, Pasadena, 1999).

5.         Lewicki, M. Bayesian modeling and classification of neural signals. Neural Computation 6, 1005-1030 (1994).

6.         Bishop, C. M. Neural Networks for Pattern Recognition (Clarendon Press, Oxford, 1995).

7.         Dierckx, P. Curve and surface fitting with splines (Clarendon, Oxford, 1993).


Before downloading any of the files below you must agree to the following license agreement. Downloading the software and manuals below indicates that you have read, understood and agree to the terms and conditions indicated in the license agreement.

Note that this software is provided "AS IS" and we do not provide any technical support in the installation or its usage.

Spiker v1 Download (zipped, 185 kb)                          Version 1, all Matlab files

Spiker v4 Download (zipped, 303 kb)                          Version 4, Matlab/C files

Spiker Instructions (Word)      

Spiker Instructions (Postscript)


Or you can also download it and retrieve additional information from:



Please send questions, comments, bug reports, feedback to

Angela Yu,                   feraina@mit.edu

Gabriel Kreiman,          gabriel@klab.caltech.edu

Due to the rather large number of questions that we receive over email we do not provide technical support for Spiker. The programs are offered free of charge to the scientific community. A short manual (also available free in the download section above) explains some of the main variables and programs and also includes some references to the theory of spike sorting in general. The program was mostly written in MATLAB. The MATLAB code was not encrypted so that it can easily be modified to fit the necessities and customizations of the users. In order to make the computationally intensive parts run faster we re-wrote part of the code in C. These parts are provided as compiled versions for PC computers. The C code is available upon request. Please refer to the web page for an explanation of the different versions available. Compilation in other operating systems should be pretty straightforward but we cannot offer technical support for this either. We would still appreciate it if you send us email telling us your experience with Spiker. In particular, if you would like to report a bug please be sure to include:

- The log file generated by Spiker and stored in the temporary directory (as set in the configuration file)

- Operating System

- Matlab version

- Brief description of the data format you used

- The problem that you have encountered


License agreement

You must agree to the terms and conditions of this license agreement to use the software.


This page was prepared by GK, gabriel@klab.caltech.edu

Last updated: Jan. 30, 2000