**Developed as part of the COSMOS project:**

**cSPIKE** is an easy to use spike train analysis software. It runs on Matlab command line and uses MEX files with C++ backends for speed. cSPIKE implements functions such as ISI-distance [1], SPIKE-distance [2], SPIKE-synchronization [3] and their adaptive variants [4] as well as the directional SPIKE-order [5]. It also includes basic functions for plotting spike trains and profiles. The ISI-distance, the SPIKE-distance, and SPIKE-synchronization are time-scale adaptive measures of spike train similarity that can be used for assessing similarity between two or more point processes. In neuroscience the point processes are often taken as action potentials either from simultaneously recorded neuronal populations or from the same neuron recorded during different time intervals.

http://www.fi.isc.cnr.it/users/thomas.kreuz/Source-Code/cSPIKE.html References common for cSPIKE, SPIKY (see below) and PySpike (see below):

[1] Kreuz T, Haas JS, Morelli A, Abarbanel HDI, Politi A:

Measuring spike train synchrony.*J Neurosci Methods* **165**, 151 (2007) [PDF].[2] Kreuz T, Chicharro D, Houghton C, Andrzejak RG, Mormann F:

Monitoring spike train synchrony.*J Neurophysiol* **109**, 1457 (2013) [PDF].[3] Kreuz T, Mulansky M, Bozanic N:

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

JNeurophysiol 113, 3432 (2015) [PDF][4] Satuvuori E, Mulansky M, Bozanic N, Malvestio I, Zeldenrust F, Lenk K, Kreuz T:

Measures of spike train synchrony for data with multiple time-scales

JNeurosci Methods **287**, 25 [PDF] and arXiv [PDF] (2017)[5] Kreuz T, Satuvuori E, Pofahl M, Mulansky M:

Leaders and followers: Quantifying consistency in spatio-temporal propagation patterns.

New J. Phys., **19**, 043028 [PDF] and arXiv [PDF] (2017) cSPIKE was developed by COSMOS ESR Eero Satuvuori (Project 9).

This code was developed by COSMOS ESR Irene Malvestio (Project 10).

We provide the Matlab source code to calculate the measure L first introduced in [1] with the improvements introduced in [2]. The nonlinear interdependence measure L allows for nonlinear coupling detection between two point processes. In particular, the nonlinear interdependence measure L is suited to be applied to spike trains from neurons. The approach is modular, for example different spike train distances [3] can be used to assess similarity. This modularity allows one to test for different manifestations of the coupling such as signatures in the event rate or event timing

For a detailed description of the source code see the document *MalvestioPRE2017Readme.pdf *available on the download page. We also provide simulated data from Hindmarsh-Rose dynamics to allow testing the code.

[1] Andrzejak RG, Kreuz T: “Characterizing unidirectional couplings between point processes and flows.” EPL, 96 (2011) 50012.

[2] Malvestio I, Kreuz T, Andrzejak RG: “Robustness and versatility of a nonlinear interdependence method for directional coupling detection from spike trains.” Physical Review E, 96 (2017) 022203.

[3] We use source code from cSPIKE (see above).

Software packages (all for the Rust programming language, all published on Github and on crates.io, the Rust software repository)

**These libraries were developed by ESR ****Janis Goldschmidt** (Project 1).

github.com/superfluffy/rust-freude: integrating Ordinary Differential Equations in Rust; for integrating any-dimensional systems; part of all my upcoming papers;

github.com/superfluffy/gramschmidt-rs: 3 different Gram Schmidt routines in Rust for orthonormalization of matrices; relevant for calculating Lyapunov spectra of chaotic systems; part of all my upcoming papers;

github.com/SuperFluffy/rust-expm: calculating matrix exponentials; for evolving perturbation vectors in orthogonal space;

github.com/SuperFluffy/rust-condest: calculating matrix one-norms and estimating matrix condition numbers; relevant for matrix exponentials; potential uses in detecting bugs in supercomputing hardware or defects in radiation heavy environments;

github.com/SuperFluffy/rust-recless: recursive least squares; releavant for implementing the FORCE algorithm for neuro-inspired machine learning;

Some contributions (Pull Requests) for various open source projects

github.com/scipy/scipy/pull/9705: Fix coefficients in expm helper function; part of SciPy (Scientific Python) release 1.3.0, see here: https://scipy.github.io/devdocs/release.1.3.0.html

github.com/rust-lang-nursery/packed_simd/pull/226: Implement bindings to the tanh implementation of the sleef. Relevant for fast calculation of the hyperbolic tangent using SIMD intrinsics (uses in machine learning and theoretical neuroscience; part of an upcoming paper).

github.com/GuillaumeGomez/rust-GSL/pull/70: Fix arguments of bindings to the linear fit routines of GSL (GNU scientific library); relevant for performing linear fits very quickly.

github.com/bluss/matrixmultiply/pull/33: implemented gemm (general matrix multiply) using SIMD intrinsics; general scientific interest.

Name: **OscillatorSnap**

Author: COSMOS ESR Rok Cestnik (Project 2)

https://github.com/rokcestnik/oscillator_snap

(also available on PyPI as ‘oscillator_snap’)

OscillatorSnap is a Python package for modeling oscillators with artificial neural networks. It uses a Tensor Flow and a Keras and provides straight-forward and non-technical high-level functions meant to appeal to non-experts of neural nets. It helps you train a recurrent neural network on oscillatory signals. And then from the trained network forecast the future state or probe the network for dynamical responses, e.g. estimate the phase response curve and maximal Lyapunov exponent. Alongside that it also provides functions for analyzing oscillators from their dynamical equations.

**Reference:**

[1] R. Cestnik and M. Abel, Inferring the dynamics of oscillatory systems using recurrent neural networks, Chaos (submitted)

**Name: Oscillatory Coupling Inference****Code author: COSMOS ESR Rok Cestnik (Project 2)**

Algorithms developed by: Rok Cestnik and Michael Rosenblum

Description:

c implementations of two algorithms:

1: inference of the phase response curve from observation of a continuous signal and perturbation of one oscillator [1], code available at: https://github.com/rokcestnik/prc_inference,

2: inference of the connectivity of a network of pulse-coupled oscillators from observation of spike trains [2], code available at: https://github.com/rokcestnik/network_reconstruction.

It is assumed that oscillatory dynamics are well described with phase equations and instantaneous coupling between units. The algorithms are based on minimizing the deviation between true and simulated phase increments. They utilize an iterative procedure to solve the arising nonlinear minimization.

References:

[1] R. Cestnik and M.
Rosenblum, “Inferring the phase response curve from observation of a
continuously perturbed oscillator” Scientific Reports 8, 13606 (2018)

[2]
R. Cestnik and M. Rosenblum, “Reconstructing networks of pulse-coupled
oscillators from spike trains” Phys. Rev. E 96, 012209 (2017)

**Name:****Explosive Immunization**

**Author of the code:** COSMOS ESR Pau Clusella (Project 3)

**Authors of the algorithm: **Pau Clusella, Peter Grassberger, Francisco Pérez-Reche, Antonio Politi

**Short description:** A
C-code performing the Explosive Immunization algorithm for fast network
dismantling. Based on the concept of explosive percolation, the
algorithm properly identifies the nodes whose removal minimizes the size
of the largest component of a given network, thus preventing the
spreading of epidemic processes. The method uses two different scores to
quantify the blocking ability of each node. The first is used whenever
the number of removed nodes is large enough to prevent the existence of a
giant component, whereas the second is used when a giant component is
unavoidable. For more information check the original paper [1].

**Download page:**https://github.com/pclus/explosive-immunization

[1] Clusella P., Grassberger P., Perez-Reche, F. J. and Politi A. “Immunization and targeted destruction of networks using explosive percolation”, Phys. Rev. Lett. 117, 208301 (2016)

**A rank-based connectivity measure to infer directed networks**

**This code was developed by COSMOS ESR Marc Grau Leguia (Project 14)**

http://ntsa.upf.edu/downloads/

We provide the source codes written in Matlab we used in [1]. There we include the code for computing L that was first introduced in [2] with the optimization introduced at [1]. The codes allow the simulation of directed networks with Lorenz [4] dynamics at each node. Then, using the measure L, we infer the connectivity of these directed networks.

In [5], we provide a document GrauLeguiaPRE2019Readme.pdf with a full description of how to handle the codes and replicate the results in [1].

[1] Marc G. Leguia, Cristina G. B. Martínez, Irene Malvestio, Adrià Tauste Campo, Rodrigo Rocamora, Zoran Levnajić, and Ralph G. Andrzejak: “Inferring directed networks using a rank-based connectivity measure” Phys. Rev. E 99, 012319.

[2] Daniel Chicharro and Ralph G. Andrzejak. “Reliable detection of directional couplings using rank statistics”. Phys. Rev. E 80, 026217.

[3] Petroula Laiou and Ralph G. Andrzejak. “Coupling strength versus coupling impact in nonidentical bidirectionally coupled dynamics” Phys. Rev. E 95, 012210.

[4] Lorenz, Edward Norton. “Deterministic nonperiodic flow”. Journal of the Atmospheric Sciences. 20 (2): 130–141 http://ntsa.upf.edu/downloads http://ntsa.upf.edu/downloads

[5] http://ntsa.upf.edu/downloads

**AMCOS_booklet** (developed on the occasion of the AMCOS conference
organised by the ESRs in Barcelona on March 19-23, 2018) is a LaTeX
template for conference booklets, sometimes called book of abstracts. It
includes an additional python script to automatise the management and
inclusion of abstracts. The template also has an option to compile a
short and a long version of the booklet, for print and online use, for
example. The template is ready to use as is, but also easily
customisable for willing users.

Features:

– slick look, easily customisable in terms of layout, colours, and content

– templates for various typical sections of a booklet

– LaTeX environments to display the timetable, and a (long and short version of) list of abstracts, of posters, and of participants

– automated management of abstracts via additional python script.

– automated creation of a short or long version of the booklet via a one-word option in the template. Creation of both via an additional bash script.

https://github.com/maximelucas/AMCOS_booklet

These LaTeX templates were developed by COSMOS ESRs Pau Clusella (Project 3) and Maxime Lucas (Project 6).

**Developed by COSMOS groups related to the project:**

**SPIKY** is a Matlab
graphical user interface that facilitates the application of
time-resolved measures of spike train synchrony to simulated and real
data. It contains the standard Peri-Stimulus Time Histogram (PSTH), the ISI-distance, the SPIKE-distance, SPIKE synchronization, and the directional SPIKE-order.

For a given dataset SPIKY calculates the measures of choice and allows the user to switch between different visualizations such as dissimilarity profiles, pairwise dissimilarity matrices, or hierarchical cluster trees. SPIKY also includes a spike train generator, an event detector (for continuous data) and complementary programs for the analysis of a large number of datasets and for evaluating the statistical significance of results.

http://www.fi.isc.cnr.it/users/thomas.kreuz/Source-Code/SPIKY.html

Links are available to the SPIKY Facebook group and SPIKY YouTube channel.

Kreuz T, Mulansky M, Bozanic N: SPIKY: A graphical user interface for monitoring spike train synchrony. JNeurophysiol 113, 3432 (2015) [PDF]

SPIKY was developed by Nebojsa Bozanic and COSMOS PI Thomas Kreuz

**PySpike** is a Python library for the numerical analysis of spike train similarity. Its core functionality is the implementation of the ISI-distance [1] and SPIKE-distance [2] as well as SPIKE-Synchronization[3].
It provides functions to compute multivariate profiles, distance
matrices, 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).
PySpike provides the same fundamental functionality as the SPIKY framework for Matlab.

https://github.com/mariomulansky/PySpike

Documentation for PySpike can be found here:

http://mariomulansky.github.io/PySpike/

Mulansky M, Kreuz T:PySpike – A Python library for analyzing spike train synchrony Software X **5**, 183 and arXiv [PDF] (2016

PySpike was developed by Mario Mulansky and COSMOS PI Thomas Kreuz

The **Data Analysis with Models Of Coupled Oscillators (DAMOCO)** toolbox is a collection of Matlab functions for multivariate data analysis, based on the coupled oscillators approach. It provides functions for computation of protophases (initial phase estimates) from time series via the Hilbert Transform, marker events, or via length of the trajectory in the state space. It allows a researcher to transform protophases into true phases and infer equations of phase dynamics of coupled oscillators. With DAMOCO you can easily compute synchronization and directionality indices as well as reveal a coupling structure of a network by means of pairwise or triplet analysis.

http://www.stat.physik.uni-potsdam.de/~mros/damoco2.html

DAMACO was developed by Björn Kralemann and COSMOS PIs Michael Rosenblum and Arkady Pikovsky.

**Detrended Fluctuation Analysis (DFA)**
is a classical approach to analyze long-range temporal and spatial
correlations. This Matlab implementation provides an algorithm not only
to quantify power-law scaling but first to test it against alternatives
via (Bayesian) model comparison.

Like in conventional DFA, after removing (linear or nonlinear) trends of a signal, mean squared fluctuations in consecutive intervals are determined. In contrast to DFA all values per interval are used to approximate the distribution of these mean squared fluctuations. This allows for estimating the corresponding log-likelihood as a function of interval size without presuming the fluctuations to be normally distributed.

https://github.com/marlow17/FluctuationAnalysis.git

Ton R, Daffertshofer A: Model selection for identifying power-law scaling.

Neuroimage 136:215-26, 2016, doi:10.1016/j.neuroimage.2016.01.008

‘Fluctuation Analysis’ was developed by COSMOS PI Andreas Daffertshofer.

Other source codes from the Nonlinear Time Series Analysis Group at the Universitat Pompeu Fabra:

These source codes were developed by COSMOS PI Ralph Andrzejak.