# SPIKE-order

Thomas Kreuz et al. (2017), Scholarpedia, 12(7):42441. | doi:10.4249/scholarpedia.42441 | revision #196761 [link to/cite this article] |

**SPIKE-order** and Spike Train Order (Kreuz et al., 2017) are two indicators that allow to sort multiple sequences of discrete events (here spike trains) from leader to follower and to quantify the consistency of the temporal leader-follower relationships for both the original and the optimized sorting. This is achieved via the Synfire Indicator which attains its maximal value of 1 for a perfect synfire pattern in which all neurons fire repeatedly in a consistent order from leader to follower (Figure 1a). An example of the sorting is shown in the next two subplots. Whereas Figure 1b shows an unsorted spike train set, in Figure 1c the same spike trains have been sorted to become as close as possible to a synfire pattern. Now the spike trains that tend to fire first lead the spike trains with predominantly trailing spikes.

## Contents |

### Adaptive coincidence detection

Analyzing leader-follower relationships in a spike train set requires a criterion that determines which spikes should be compared against each other. What is needed is a match maker, a method which pairs spikes in such a way that each spike is matched with at most one spike in each of the other spike trains. Such a match maker is provided by the adaptive coincidence detection (Figure 2) first proposed as the fundamental ingredient for the bivariate measure event synchronization (Quian Quiroga et al., 2002). This method is parameter- and scale-free since the maximum time lag \(\tau_{ij}\) up to which two spikes \(t_i^{(1)}\) and \(t_j^{(2)}\) are considered to be synchronous is adapted to the local spike rates (Figure 2a). First to all spikes \(t_i^{(1)}\) of the first spike train non-overlapping coincidence windows \[\tag{1} \tau_i^{(1)} = \min \{t_{i+1}^{(1)} - t_i^{(1)}, t_i^{(1)} - t_{i-1}^{(1)}\}/2 \] are assigned (Figure 2b). In the same way coincidence windows \(\tau_j^{(2)}\) are defined for all spikes \(t_j^{(2)}\) from the second spike train. To be considered coincident, spikes have to lie in each other's coincidence window (Figure 2c) which means that their absolute time difference has to be smaller than \[\tag{2} \begin{split} \tau_{ij}^{(1,2)} & = \min \{\tau_i^{(1)}, \tau_j^{(2)}\} \\ & = \min \{t_{i+1}^{(1)} - t_i^{(1)}, t_i^{(1)} - t_{i-1}^{(1)},t_{j+1}^{(2)} - t_j^{(2)}, t_j^{(2)} - t_{j-1}^{(2)}\}/2. \end{split} \]

### SPIKE synchronization

SPIKE synchronization (Kreuz et al., 2015) uses the adaptive coincidence detection to quantify the (symmetric) level of synchrony from the number of quasi-simultaneous appearances of spikes. First the coincidence criterion is quantified by means of a coincidence indicator \[ \tag{3} C_i^{(1,2)} = \begin{cases} 1 & {\rm if} ~~ \min_j(|t_i^{(1)} - t_j^{(2)}|) < \tau_{ij}^{(1,2)} \\ 0 & {\rm otherwise} \end{cases} \] which assigns to each spike either a one or a zero depending on whether it is part of a coincidence or not. Here the minimum function takes already into account that a spike can at most be coincident with one spike (the nearest one) in the other spike train. In cases where a spike is right in the middle between two spikes from the other spike train there is no ambiguity since there is no coincidence.

The extension to the case of more than two spike trains (\(N > 2\)) is straightforward. First, bivariate coincidence detection is performed for each pair of spike trains \((n,m)\). Generalizing Eq. (3) gives the coincidence indicators \[ \tag{4} C_i^{(n,m)} = \begin{cases} 1 & {\rm if} ~~ \min_j(|t_i^{(n)} - t_j^{(m)}|) < \tau_{ij}^{(n,m)} \\ 0 & {\rm otherwise} \end{cases} \] where \(\tau_{ij}^{(n,m)}\) is defined as in Eq. (2), but for arbitrary spike trains \(n\) and \(m\). Subsequently, for each spike of every spike train a normalized coincidence counter \[ \tag{5} C_i^{(n)} = \frac1{N-1}\sum_{m\neq n} C_i^{(n,m)}. \] is obtained by averaging over all \(N-1\) bivariate coincidence indicators involving the spike train \(n\).

This defines for both the bivariate and the multivariate case a coincidence counter for each individual spike in every spike train. In order to obtain one combined similarity profile the spikes of all the spike trains as well as their coincidence counters are pooled by introducing one overall spike index \(k\): \[ \tag{6} \{C_k\} = \bigcup_n \{C_{i}^{(n)} \}. \]

In the case of perfectly coincident spikes \(k\) counts over all of these spikes. From this discrete set of coincidence counters \(C_k\) the SPIKE-Synchronization profile \(C (t_k)\) is obtained via \(C (t_k) = C (k)\). Finally, SPIKE-Synchronization is defined as the average value of this profile \[ \tag{7} S_C = \frac{1}{M} \sum_{k=1}^M C (t_k) \] with \(M = \sum_n^N M_n\) denoting the total number of spikes in the pooled spike train.

The interpretation is very intuitive: SPIKE-Synchronization quantifies the overall fraction of coincidences. It is zero if and only if the spike trains do not contain any coincidences, and reaches one if and only if each spike in every spike train has one matching spike in all the other spike trains.

### SPIKE-order and Spike Train order

In a similar manner as SPIKE-Synchronization assigns bivariate coincidence indicators to spikes, SPIKE-Order and Spike Train Order assign bivariate order indicators to spikes. Also these two order indicators, the asymmetric \(D_i^{(n,m)}\) and the symmetric \(E_i^{(n,m)}\), are averaged over spike train pairs and converted into two overall profiles \(D(t_k)\) and \(E(t_k)\). Since the indicators can take the values \(-1\), \(0\), or \(+1\), the profiles are normalized between \(-1\) and \(1\). The SPIKE-Order profile \(D(t_k)\) distinguishes leading and following spikes, whereas the Spike Train Order profile \(E(t_k)\) provides information about the order of spike trains, i.e. it allows to sort spike trains from leaders to followers.

First of all, the symmetric coincidence indicator \(C^{(n,m)}_i\) of SPIKE-Synchronization (Eq. (4)) is replaced by the asymmetric SPIKE-Order indicator \[ \tag{8} D_i^{(n,m)} = C_i^{(n,m)} \cdot sign (t_{j'}^{(m)} - t_i^{(n)}), \] where the index \(j'\) is defined as \(j' = \arg \min_j (|t_i^{(n)}-t_j^{(m)}|)\). The corresponding value \(D_{j'}^{(m,n)}\) is obtained in an antisymmetric manner as \[ \tag{9} D_{j'}^{(m,n)} = C_{j'}^{(m,n)} \cdot sign (t_i^{(n)} - t_{j'}^{(m)}) = - D_i^{(n,m)}. \]

Therefore, this indicator assigns to each spike either a \(1\) or a \(-1\) depending on whether the respective spike is leading or following a coincident spike from the other spike train. The value \(0\) is obtained for cases in which there is no coincident spike in the other spike train (\(C^{(n,m)}_i = 0\)), but also in cases in which the times of the two coincident spikes are absolutely identical (\(t_{j'}^{(m)} = t_i^{(n)}\)).

The multivariate profile \(D(t_k)\) obtained analogously to Eq. (6) is normalized between \(1\) and \(-1\) and the extreme values are obtained if a spike is either leading (\(+1\)) or following (\(-1\)) coincident spikes in all other spike trains. It can be \(0\) either if a spike is not part of any coincidences or if it leads exactly as many spikes from other spike trains in coincidences as it follows.

While the SPIKE-Order profile can be very useful for color-coding and visualizing local spike leaders and followers (Figure 3a), it is not useful as an overall indicator of Spike Train Order (Figure 3b). The profile is invariant under exchange of spike trains, i.e. it looks the same for all events no matter what the order of the firing is (in the example only the last event looks slightly different since one spike is missing). Moreover, summing over all profile values, which is equivalent to summing over all coincidences, necessarily leads to an average value of \(0\), since for every leading spike (\(+1\)) there has to be a following spike (\(-1\)).

So in order to quantify any kind of leader-follower information between spike trains a second kind of order indicator is needed. The Spike Train Order indicator is similar to the SPIKE-Order indicator defined in Eqs. (8) and (9) with two important differences. Both spikes are assigned the same value and this value now depends on the order of the spike trains: \[ \tag{10} E_{j'}^{(m,n)} = E_i^{(n,m)} = C_i^{(n,m)} \cdot \begin{cases} sign (t_{j'}^{(m)} - t_i^{(n)})\quad\text{if}\quad n<m\\ sign (t_i^{(n)} - t_{j'}^{(m)})\quad\text{if}\quad n>m. \end{cases} \]

Thus this symmetric indicator assigns to both spikes a \(+1\) in case the two spikes are in the correct order, i.e. the spike from the spike train with the lower spike train index is leading the coincidence, and a \(-1\) in the opposite case. Once more the value \(0\) is obtained when there is no coincident spike in the other spike train or when the two coincident spikes are absolutely identical.

The multivariate profile \(E(t_k)\), again obtained similarly to Eq. (6), is also normalized between \(1\) and \(-1\) and the extreme values are obtained for a coincident event covering all spike trains with all spikes emitted in the order from first (last) to last (first) spike train, respectively (see the first two and the last four events in Figure 3). It can be \(0\) either if a spike is not a part of any coincidences or if the order is such that correctly and incorrectly ordered spike train pairs cancel each other. As can be seen in Figure 3c, for the Spike Train Order profile the order of spikes within an event clearly matters.

### Synfire Indicator

In contrast to the SPIKE-Order profile \(D_k\), for the Spike Train Order profile \(E_k\) it does make sense to define an average: \[ \tag{11} F = \frac{1}{M} \sum_{k=1}^M E(t_k). \] This Synfire Indicator \(F\) quantifies to what degree the spike trains in their current order resemble a perfect synfire pattern. It is normalized between \(1\) and \(-1\) and attains the value \(1\) (\(-1\)) if the spike trains in their current order form a perfect (inverse) synfire pattern. This means that all spikes are coincident with spikes in all other spike trains and that all orders from leading (following) to following (leading) spike consistently reflect the order of the spike trains. It is \(0\) either if the spike trains do not contain any coincidences at all or if among all spike trains there is a complete symmetry between leading and following spikes. The Synfire Indicator \(F\) for the example dataset of Figure 3 is slightly negative indicating that the current order of the spike trains is actually closer to an inverse synfire pattern.

In order to sort a given set of spike trains from leader to follower such that it comes as close as possible to a synfire pattern, as many coincidences as possible have to be correctly ordered. The most intuitive way to maximize the Synfire Indicator is to use the anti-symmetric cumulative pairwise SPIKE-Order matrix \[ D^{(n,m)} = \sum_i D_i^{(n,m)} \] which sums up orders of coincidences from the respective pair of spike trains only and quantifies the relative order between spike trains \(n\) and \(m\) (Figure 4). In particular, \(D^{(n,m)}>0\) (\(D^{(n,m)}<0\)) means spike train \(n\) is leading (following) spike train \(m\).

Thus, since a Spike Train Order consistent with the synfire property means \(D^{(n,m)} > 0\) for \(n<m\), the overall SPIKE-Order can be constructed as \[ \tag{12} D_< = \sum_{n<m} D^{(n,m)}, \] i.e. the sum over the upper right tridiagonal part of the matrix \(D^{(n,m)}\).

Normalizing by the overall number of possible coincidences results in this more practical definition of the Synfire Indicator: \[ \tag{13} F = \frac{2 D_<}{(N-1) M}. \] This is identical to the definition in Eq. (11), only the temporal and the spatial summation of coincidences (i.e., over the profile and over spike train pairs) are performed in the opposite order.

Since \(F\) depends on the order of spike trains, for each spike train index permutation \(\varphi\) there exists one overall Synfire Indicator \(F_\varphi\). Accordingly, for the initial (**u**nsorted) order of spike trains \(\varphi_u\) the Synfire Indicator is denoted as \(F_u = F_{\varphi_u}\). The aim of the analysis is now to find the optimal (**s**orted) order \(\varphi_s\) with the maximal overall Synfire Indicator \(F_s = F_{\varphi_s}\):
\[
\varphi_s: F_{\varphi_s} = \max_\varphi \{F_\varphi\} = F_s.
\]

This Synfire Indicator for the sorted spike trains quantifies how close spike trains can be sorted to resemble a synfire pattern, i.e., to what extent coinciding spike pairs with correct order can be made to prevail over coinciding spike pairs with incorrect order. Unlike the Synfire Indicator for the unsorted spike trains \(F_u\), the optimized Synfire Indicator \(F_s\) can only attain values between \(0\) and \(1\) (any order that yields a negative result could simply be reversed). For a perfect synfire pattern \(F_s=1\) is obtained, while sufficiently long Poisson spike trains without any synfire structure yield \(F_s\approx 0\).

The complexity of the problem to find the optimal Spike Train Order is similar to the well-known travelling salesman problem (Applegate et al., 2011). For \(N\) spike trains there are \(N!\) permutations~\(\varphi\), so for large numbers of spike trains finding the optimal Spike Train Order \(\varphi_s\) is a non-trivial problem and brute-force methods such as calculating the \(F_\varphi\)-value for all possible permutations are not feasible. Instead, the search for the optimal order is performed via simulated annealing (Dowsland and Thompson, 2012), which probabilistically approximates the global maximum of the Synfire Indicator \(F_\varphi\) in the large permutation space of all spike trains. Starting from the \(F_u\)-value of the unsorted permutation nearby permutations are visited using the fundamental move of exchanging two neighboring spike trains within the current permutation. All moves with positive \(\Delta F\) are accepted, while the likelihood of accepting moves with negative \(\Delta F\) is decreased along the way according to a standard slow cooling scheme. The procedure is repeated iteratively until the order of the spike trains no longer changes or until a predefined end temperature is reached.

### Statistical significance

The statistical significance of the optimized Synfire Indicator \(F_s\) is evaluated by estimating the likelihood that for the given total number of coincidences the prevalence of correctly ordered spike pairs could have been obtained by chance. If all coincident spike pairs would be independent, the probability distribution would be strictly binomial and this likelihood could be calculated analytically. However, the pairwise spike orders in coincident events involving multiple spike trains are not independent from each other, and so instead the likelihood is estimated numerically using a set of carefully constructed spike order surrogates. For each surrogate (Figure 5a) the coincidence structure of the original spike trains is preserved via the SPIKE-Synchronization values of every individual spike. However, the spike order patterns are destroyed by swapping the orders of the two spikes IN randomly selected coincident spike pairs. From one spike order surrogate to the next the number of such spike order swaps is set to the number of coincident spikes in the spike train set, such that all possible spike order patterns can be reached. Only for the first surrogate, since it starts from the original spike trains, we swap twice as many coincidences in order to account for transients.

Subsequently, exactly the same optimization in the spike train permutation space that is done for the original dataset is carried out for each spike train surrogate. If the original Synfire Indicator is higher than the Synfire Indicator obtained for all of the \(19\) surrogate datasets, it is deemed significant with \(p^* = 0.05\). Note that in order to achieve a better sampling of the underlying null distribution a larger number of surrogates would be preferable but the chosen value of \(19\) is a compromise that takes into account the computational cost of the surrogate generation.

The second indicator is the z-score, e.g., the deviation of the original value \(x\) from the mean \(\mu\) of the surrogates in units of their standard deviation \(\sigma\): \[ z = \frac{x-\mu}{\sigma}. \]

Results of the significance analysis for the standard example of Figure 3 are shown in the histogram in Figure 5b. In this case the absolute value of the z-score is smaller than one and the p-value is larger than \(p^*\) and the result is thus statistically non-significant.

## Full analysis

Figure 6 shows the complete SPIKE-order analysis from the unsorted spike trains (Figure 6a) and their Spike Train Order profile (Figure 6b) to the results for the sorted spike trains. The sorting of the spike trains maximizes the Synfire Indicator as reflected by both the normalized sum of the upper right half of the pairwise cumulative SPIKE-Order matrix (Eq.(13), Figure 6c) and the average value of the Spike Train Order profile \(E (t_k)\) (Eq.(11), Figure 6d). The sorted spike trains in Figure 6e are now ordered such that the first spike trains have predominantly high values (red) and the last spike trains predominantly low values (blue) of \(D (t_k)\). Finally, a surrogate analysis reveals that the Synfire Indicator for the original spike trains is not distinct from the values for the surrogates and thus not statistically significant (Figure 6f).

The results consist of several levels of information. Time-resolved (local) information is represented in the spike-coloring and in the profiles \(D\) and \(E\). The pairwise information in the SPIKE-order matrix reflects the leader-follower relationship between two spike trains at a time. The Synfire Indicator \(F\) characterizes the closeness of the dataset as a whole to a synfire pattern, both for the unsorted (\(F_u\)) and for the sorted (\(F_s\)) spike trains. Finally, the sorted order of the spike trains is a very important result in itself since it identifies the leading and the following spike trains.

## Potential applications

Recordings of spatio-temporal activity are ubiquitous in many scientific disciplines. Among the most prominent examples are large-scale electrophysiological measurements of neuronal firing patterns in experimental neuroscience (Lewis et al., 2015) and sensor data acquisition in seismology (Marano et al., 2014), oceanography (Heidemann et al., 2012), meteorology (Muller et al., 2013), or climatology (Menne et al., 2012). Other examples include interaction protocols in social communication (Lazer et al., 2009) or monitoring single-node dynamics in network science (Boccaletti et al., 2014).

In all of these fields recordings often exhibit well-defined patterns of spatio-temporal propagation where some prominent feature first appears at a specific location and then spreads to other areas until potentially becoming a global event. Such characteristic propagation patterns occur in phenomena such as avalanches (Lacroix et al., 2012), tsunamis (Pelinovsky 2006), chemical waves and diffusion processes (Kuramoto 2012), and epileptic seizures (Baier et al., 2012). Further examples are the epidemic transmission of diseases (Belik et al., 2011), and, more recently, the spreading of memes on social networks (Wei et al., 2013) or in science (Kuhn et al., 2014).

Specific questions addressing leader-follower dynamics have already been investigated not only in neuroscience (Pereda et al., 2005), but also in fields as wide-ranging as, e.g., climatology (Boers et al., 2014), social communication (Varni et al., 2010), and human-robot interaction (Rahbar et al., 2015). The present algorithm has already been applied to real datasets from both neuroscience and climatology (Kreuz et al., 2017). The universality of the phenomenon, repetitive propagation patterns, makes it applicable in a wide array of fields such as medical sciences, seismology, oceanography, or meteorology.

## Source codes

### Matlab graphical user interface: SPIKY

*Main article: SPIKY*

SPIKY is a graphical user interface written in Matlab that facilitates the application of time-resolved measures of spike train synchrony to both simulated and real data. Among others, it can be used to calculate and visualize the ISI-distance (Kreuz et al., 2007), the SPIKE-distance (Kreuz et al., 2013) and SPIKE synchronization (Kreuz et al., 2015). Source codes can be found on the SPIKY download page. On this webpage there are also two movies which demonstrate the SPIKE-distance best.

### Python library: PySpike

PySpike is a Python library that provides implementations of the ISI-distance, SPIKE-distance and SPIKE-Synchronization, as well as some functions for loading, generating and plotting spike trains. In contrast to SPIKY, it does not include a graphical user interface (GUI) and hence requires some programming experience. PySpike is an open source library and freely available on Github and PyPi. It is independent of Matlab and only needs Python to run. The core functions of PySpike are implemented in Cython to ensure optimal performance. PySpike comes with a tutorial-like documentation as a starting point for new users and a reference for experienced users.

### Matlab command line package: cSPIKE

SPIKY and PySpike are now complemented by cSPIKE, an easy to use spike train analysis software. It is run on Matlab command line and uses MEX files with C++ backends for speed. cSPIKE implements functions such as ISI-distance, SPIKE-distance, SPIKE synchronisation and their adaptive variants as well as basic functions for plotting spike trains and profiles. Source codes and documentation are publicly available.

## References

- Applegate DL, Bixby RE, Chvatal V, Cook WJ (2011). The traveling salesman problem: A computational study. Princeton University Press.
- Baier G, Goodfellow M, Taylor PN, Wang Y, Garry DJ (2012). The importance of modeling epileptic seizure dynamics as spatio-temporal patterns. Front Physiol 3, 281.
- Belik V, Geisel T, Brockmann D (2011). Natural human mobility patterns and spatial spread of infectious diseases. Physical Review X 1 (1), 011001.
- Boccaletti S, Bianconi G, Criado R, Del GenioCI, Gómez-Gardeñes J, Romance M, Sendiña-Nadal I, Wang Z and Zanin M (2014). The structure and dynamics of multilayer networks. Phys. Rep. 544, 1.
- Boers N, Bookhagen B, Barbosa H, Marwan N, Kurths J, Marengo J (2014). Prediction of extreme floods in the eastern central andes based on a complex networks approach. Nature Communications 5, 5199.
- Dowsland KA, Thompson JM (2012). Simulated annealing. In: Handbook of Natural Computing. Springer, pp. 1623-1655.
- Heidemann J, Stojanovic M, Zorzi M (2012). Underwater sensor networks: applications, advances and challenges. Phil Trans R Soc A 370, 158.
- Kreuz T, Haas JS, Morelli A, Abarbanel HDI, Politi A (2007a). Measuring spike train synchrony. J Neurosci Methods 165:151–161.
- Kreuz T, Chicharro D, Andrzejak RG, Haas JS, Abarbanel HDI (2009). Measuring multiple spike train synchrony. J Neurosci Methods 183:287–299.
- Kreuz T, Chicharro D, Greschner M, Andrzejak RG (2011). Time-resolved and time-scale adaptive measures of spike train synchrony. J Neurosci Methods 195:92–106.
- Kreuz T, Chicharro D, Houghton C, Andrzejak RG, Mormann F (2013). Monitoring spike train synchrony. JNeurophysiol 109:1457-72.
- Kreuz T, Mulansky M, Bozanic N (2015). SPIKY: A graphical user interface for monitoring spike train synchrony. JNeurophysiol 113, 3432.
- Kreuz T, Satuvuori E, Pofahl M, Mulansky M (2017). Leaders and followers: Quantifying consistency in spatio-temporal propagation patterns. New J Phys., 19, 043028.
- Kuhn T, Perc M, Helbing D (2014). Inheritance patterns in citation networks reveal scientific memes. Physical Review X 4 (4), 041036.
- Kuramoto Y (2012). Chemical oscillations, waves, and turbulence, Vol. 19 (Springer Science & Business Media).
- Lacroix P, Grasso J-R, Roulle J, Giraud G, Goetz D, Morin S, Helmstetter A (2012). Monitoring of snow avalanches using a seismic array: Location, speed estimation, and relationships to meteorological variables. J Geophys Research: Earth Surface 117 (F1).
- Lazer D et al (2009). Life in the network: the coming age of computational social science. Science 323, 721.
- Lewis C, Bosman C, Fries P (2015). Recording of brain activity across spatial scales. Curr Opin Neurobiol 32, 68.
- Maranò S, Fäh D, Lu YM (2014). Sensor placement for the analysis of seismic surface waves: sources of error, design criterion and array design algorithms. Geophys J Int 197, 1566–81.
- Menne MJ, Durre I, Vose RS, Gleason BE and Houston TG (2012). An overview of the global historical climatology network-daily database. J Atmos Ocean Technol 29, 897.
- Mulansky M, Bozanic N, Sburlea A, Kreuz T (2015). 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.
- Muller CL, Chapman L, Grimmond C, Young DT, Cai X (2013). Sensors and the city: A review of urban meteorological networks. Int J Climatol 33, 1585.
- Pelinovsky E (2006). Waves in Geophysical Fluids: Tsunamis, Rogue Waves, Internal Waves and Internal Tides. Springer Vienna, Vienna, Ch. Hydrodynamics of Tsunami Waves, pp. 1-48.
- Pereda E, Quian Quiroga R, Bhattacharya J (2005). Nonlinearmultivariate analysis of neurophysiological signals. Progress in Neurobiology 77, 1.
- Quian Quiroga R, Kreuz T, Grassberger P (2002). Event synchronization: a simple and fast method to measure synchronicity and time delay patterns. Phys Rev E 66:041904.
- Rahbar F, Anzalone S, Varni G, Zibetti E, Ivaldi S, Chetouani M (2015). Predicting extraversion from nonverbal features during a face-to-face human-robot interaction. International Conference on Social Robotics, 10.
- Varni G, Volpe G, Camurri A (2010). A system for realtime multimodal analysis of nonverbal affective social interaction in user-centric media. IEEE Transactions on Multimedia 12, 576.
- Wei X, Valler NC, Prakash BA, Neamtiu I, Faloutsos M, Faloutsos C (2013). Competing memes propagation on networks: A network science perspective. Selected Areas in Communications, IEEE Journal on 31 (6), 1049-1060.

**Internal references**

- James Meiss (2007) Dynamical systems. Scholarpedia, 2(2):1629.

- Arkady Pikovsky and Michael Rosenblum (2007) Synchronization. Scholarpedia, 2(12):1459.

- David Golomb (2007) Neuronal synchrony measures. Scholarpedia, 2(1):1347.

- Jose Pedro Segundo (2010) Spike train and point processes. Scholarpedia, 5(7):5729.

- Thomas Kreuz (2011) Measures of spike train synchrony. Scholarpedia, 6(10):11934.

- Thomas Kreuz (2011) Measures of neuronal signal synchrony. Scholarpedia, 6(12):11922.

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

- Conor Houghton (2013) Population measures of spike train synchrony. Scholarpedia, 8(10):30635.

- Nebojsa Bozanic, Mario Mulansky, Thomas Kreuz (2014) SPIKY. Scholarpedia, 9(12):32344.

## External Links

- Matlab source codes
- SPIKY download page
- PySpike Github repository
- cSPIKE download page
- First author’s website