Source Code


 

Measuring spike train synchrony I:   SPIKY (graphical user interface) and PySpike

Graphical user interface (Matlab) which can be used to calculate and visualize the SPIKE-distance, the ISI-distance and SPIKE synchronization between two (or more) spike trains. This is an extension and update of the code in II (there you also find the links to the relevant articles).



For a detailed description of SPIKY please refer to:

Kreuz T, Mulansky M, Bozanic N:

SPIKY: A graphical user interface for monitoring spike train synchrony.

JNeurophysiol 113, 3432 (2015) [PDF].


Bozanic N, Mulansky M, Kreuz T:
SPIKY
Scholarpedia 9(12), 32344 (2014).

For a detailed description of all three methods please refer to:

Mulansky M, Bozanic N, Sburlea A, Kreuz T:
A guide to time-resolved and parameter-free measures of spike train synchrony.
IEEE Proceeding on Event-based Control, Communication, and Signal Processing (EBCCSP), 1-8 and arXiv [PDF] (2015).

A list of papers (including our own) that use either of these measures can be found here.


Note that recently we have developed a complementary directional appoach to multivariate spike train analysis which quantifies the consistency of spatio-temporal propagation patterns and allows to sort spike trains from leader to follower. The corresponding measures SPIKE-Order and Spike Train Order will be part of SPIKY as soon as the paper gets published. However, the manuscript is already available on the ArXiV:


Kreuz T, Satuvuori E, Pofahl M, Mulansky M:
Leaders and followers: Quantifying consistency in spatio-temporal propagation patterns
Submitted, already available on the arXiv [PDF] (2016).


Please also have a look at the SPIKY Facebook page and the SPIKY Youtube Channel.

PySpike

SPIKY is now complemented by PySpike, an open source Python library written by Mario Mulansky and available on github. Its core functionality is the implementation of the bivariate ISI- and SPIKE-distance. Additionally, it provides functions to compute multivariate ISI- and SPIKE-distances, as well as averaging and general spike train processing. All computation intensive parts are implemented in C (via cython) to reach a competitive performance (factor 100-200 over plain Python). There is also documentation, currently consisting of a brief introduction and the API reference.

An article describing PySpike has been accepted for publication at Software X and can already be found on the ArXiV:

Mulansky M, Kreuz T:
PySpike - A Python library for analyzing spike train synchrony
Software X (in press) and arXiv [PDF] (2016).


Measuring spike train synchrony II:   cSPIKE

cSPIKE

SPIKY and PySpike are now accompanied by cSPIKE. This Matlab command line software utilizes MEX files with C++ back ends for improved performance and abstraction. It offers the same basic functionality as SPIKY and PySpike and can be easily incorporated as part of your own Matlab program. You can also use cSPIKE as a stand-alone program to calculate the ISI-distance, SPIKE-distance and SPIKE synchronization measures and many more for your spike train sets.

 

Measuring spike train synchrony III:   SPIKE- and ISI-Distance

Matlab codes to calculate both the SPIKE- and the ISI-distance between two (or more) spike trains

For a detailed description of the methods please refer to:

Kreuz T, Chicharro D, Houghton C, Andrzejak RG, Mormann F:
Monitoring spike train synchrony.
J Neurophysiol 109, 1457 (2013) [PDF].

Kreuz T:
SPIKE-distance.
Scholarpedia 7(12), 30652 (2012).

 
Previous articles:

Kreuz T, Chicharro D, Greschner M, Andrzejak RG:
Time-resolved and time-scale adaptive measures of spike train synchrony.
J Neurosci Methods 195, 92 (2011) [PDF].

Kreuz T, Chicharro D, Andrzejak RG, Haas JS, Abarbanel HDI:
Measuring multiple spike train synchrony.
J Neurosci Methods 183, 287 (2009) [PDF].

Kreuz T, Haas JS, Morelli A, Abarbanel HDI, Politi A:
Measuring spike train synchrony.
J Neurosci Methods 165, 151 (2007) [PDF].


See also:

Python-Implementation of the pairwise SPIKE-distance (written by Jeremy Fix)

Python-Implementation of the pairwise ISI-distance (written by Michael Chary)

 

Measuring spike train synchrony IV:   Event Synchronization

Matlab code to calculate the event synchronization and the event delay between two given spike trains

For a detailed description of the method please refer to:

Quian Quiroga R, Kreuz T, and Grassberger P:
Event Synchronization: A simple and fast method to measure synchronicity and time delay patterns.
Phys Rev E 66, 041904 (2002) [PDF].

 

Measuring spike train synchrony V:   Directionality

Matlab code to calculate the directionality measure L between two given spike trains (or between two continuous datasets or between a spike train and a continuous dataset)

For a detailed description of the method please refer to:

Andrzejak RG, Kreuz T:
Characterizing unidirectional couplings between point processes and flows.
Eur Phys Lett 96, 50012 (2011) [PDF].

 

Measuring spike train synchrony VI:   van Rossum distance and multi-neuron extension

Matlab codes to calculate the spike train metric by van Rossum and the multi-neuron extension by Houghton and Sen.

For a detailed description of the method please refer to:

Houghton C, Kreuz T:
On the efficient calculation of van Rossum distances.
Network: Computation in neural systems 23, 48 (2012) [PDF].

See also:

C++ - Implementation of the pairwise van Rossum-distance (maintained by Conor Houghton)

Python wrapping of the C++ implementation of the multiunit Van Rossum metric (maintained by Eugenio Piasini)


Measuring spike train synchrony VII:  Victor-Purpura distance and multi-neuron extension

Matlab codes to calculate the spike train metric by Victor-Purpura and the multi-neuron extension by Victor-Purpura-Aronov.

(Homepage of Prof. Jonathan D. Victor, Cornell, NY, USA)

See also:

Matlab code for the Victor-Purpura distance which in addition calculates the percentage of spikes that have been matched by a time shift as well as the average time shift

For a detailed description of the algorithm please refer to:

Chicharro D, Kreuz T, Andrzejak RG:
What can spike train distances tell us about the neural code?
J Neurosci Methods 199, 146 (2011) [PDF].

 

 

activate the plugin aktuelle Homepage