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 anti-correlation, 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 cross-correlate. 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