elephant.spike_train_correlation.spike_time_tiling_coefficient¶

elephant.spike_train_correlation.
spike_time_tiling_coefficient
(spiketrain_i, spiketrain_j, dt=array(0.005) * s)[source]¶ Calculates the Spike Time Tiling Coefficient (STTC) as described in [cor1] following their implementation in C. The STTC is a pairwise measure of correlation between spike trains. It has been proposed as a replacement for the correlation index as it presents several advantages (e.g. it’s not confounded by firing rate, appropriately distinguishes lack of correlation from anticorrelation, periods of silence don’t add to the correlation and it’s sensitive to firing patterns).
The STTC is calculated as follows:
Where PA is the proportion of spikes from train 1 that lie within [dt, +dt] of any spike of train 2 divided by the total number of spikes in train 1, PB is the same proportion for the spikes in train 2; TA is the proportion of total recording time within [dt, +dt] of any spike in train 1, TB is the same proportion for train 2. For the resulting is replaced with , since every spike from the train with is within [dt, +dt] of a spike of the other train.
This is a Python implementation compatible with the elephant library of the original code by C. Cutts written in C and available here:
Parameters:  spiketrain_i, spiketrain_jneo.SpikeTrain
Spike trains to crosscorrelate. They must have the same t_start and t_stop.
 dtpq.Quantity.
The synchronicity window is used for both: the quantification of the proportion of total recording time that lies [dt, +dt] of each spike in each train and the proportion of spikes in spiketrain_i that lies [dt, +dt] of any spike in spiketrain_j. Default : 0.005 * pq.s
Returns:  indexfloat or np.nan
The spike time tiling coefficient (STTC). Returns np.nan if any spike train is empty.
Notes
Alias: sttc
Examples
>>> import neo >>> import quantities as pq >>> from elephant.spike_train_correlation import ... spike_time_tiling_coefficient
>>> spiketrain1 = neo.SpikeTrain([1.3, 7.56, 15.87, 28.23, 30.9, 34.2, ... 38.2, 43.2], units='ms', t_stop=50) >>> spiketrain2 = neo.SpikeTrain([1.02, 2.71, 18.82, 28.46, 28.79, 43.6], ... units='ms', t_stop=50) >>> spike_time_tiling_coefficient(spiketrain1, spiketrain2) 0.4958601655933762