nstat.extras.metrics.spike_distances

Spike-train distance metrics — ISI, SPIKE, SPIKE-synchronization.

Thin wrappers around PySpike (https://github.com/mariomulansky/PySpike), a BSD-2 library with C/Cython acceleration that implements the Kreuz / Mulansky family of time-resolved spike-train distances:

  • ISI-distance (Kreuz 2007) — instantaneous dissimilarity in ISIs.

  • SPIKE-distance (Kreuz 2013) — instantaneous dissimilarity in spike timing. Bounded in [0, 1].

  • SPIKE-synchronization (Kreuz 2015) — fraction of “synchronous” spikes; symmetric in [0, 1].

All three are parameter-free — no kernel bandwidth, no binning. That’s their main advantage over rate-based or kernel-density measures.

Install:

pip install nstat-toolbox[metrics]

Functions

isi_distance(a, b)

ISI-distance between two spike trains (Kreuz 2007).

pairwise_spike_distance_matrix(trains)

N×N matrix of pairwise SPIKE-distances over a population.

spike_distance(a, b)

SPIKE-distance between two spike trains (Kreuz 2013).

spike_synchronization(a, b)

SPIKE-synchronization between two spike trains (Kreuz 2015).

nstat.extras.metrics.spike_distances.isi_distance(a, b)[source]

ISI-distance between two spike trains (Kreuz 2007).

Returns:

Scalar ISI-distance in [0, 1].

Return type:

float

Parameters:
nstat.extras.metrics.spike_distances.spike_distance(a, b)[source]

SPIKE-distance between two spike trains (Kreuz 2013).

Returns:

Scalar SPIKE-distance in [0, 1].

Return type:

float

Parameters:
nstat.extras.metrics.spike_distances.spike_synchronization(a, b)[source]

SPIKE-synchronization between two spike trains (Kreuz 2015).

Returns:

Scalar synchronization in [0, 1] — fraction of “coincident” spikes (1.0 = perfectly synchronous, 0.0 = no coincidences).

Return type:

float

Parameters:
nstat.extras.metrics.spike_distances.pairwise_spike_distance_matrix(trains)[source]

N×N matrix of pairwise SPIKE-distances over a population.

Parameters:

trains (list[nspikeTrain]) – List of nstat spike trains; all must share the same recording window (minTime / maxTime).

Returns:

Symmetric matrix of shape (N, N); diagonal is zero.

Return type:

numpy.ndarray