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 , SPIKE-distance , SPIKE-synchronization  and their adaptive variants  as well as the directional SPIKE-order . 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):
 Kreuz T, Haas JS, Morelli A, Abarbanel HDI, Politi A:
Measuring spike train synchrony.
J Neurosci Methods 165, 151 (2007) [PDF]. Kreuz T, Chicharro D, Houghton C, Andrzejak RG, Mormann F:
Monitoring spike train synchrony.
J Neurophysiol 109, 1457 (2013) [PDF]. Kreuz T, Mulansky M, Bozanic N:
SPIKY: A graphical user interface for monitoring spike train synchrony.
JNeurophysiol 113, 3432 (2015) [PDF] Satuvuori E, Mulansky M, Bozanic N, Malvestio I, Zeldenrust F, Lenk K, Kreuz T:
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).
We provide the Matlab source code to calculate the measure L first introduced in  with the improvements introduced in . 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  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.
 Andrzejak RG, Kreuz T: “Characterizing unidirectional couplings between point processes and flows.” EPL, 96 (2011) 50012.
 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.
 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)
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.
(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.
 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
c implementations of two algorithms:
1: inference of the phase response curve from observation of a continuous signal and perturbation of one oscillator , 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 , 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.
 R. Cestnik and M. Rosenblum, “Inferring the phase response curve from observation of a continuously perturbed oscillator” Scientific Reports 8, 13606 (2018)
 R. Cestnik and M. Rosenblum, “Reconstructing networks of pulse-coupled oscillators from spike trains” Phys. Rev. E 96, 012209 (2017)
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 .
 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)
We provide the source codes written in Matlab we used in . There we include the code for computing L that was first introduced in  with the optimization introduced at . The codes allow the simulation of directed networks with Lorenz  dynamics at each node. Then, using the measure L, we infer the connectivity of these directed networks.
In , we provide a document GrauLeguiaPRE2019Readme.pdf with a full description of how to handle the codes and replicate the results in .
 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.
 Daniel Chicharro and Ralph G. Andrzejak. “Reliable detection of directional couplings using rank statistics”. Phys. Rev. E 80, 026217.
 Petroula Laiou and Ralph G. Andrzejak. “Coupling strength versus coupling impact in nonidentical bidirectionally coupled dynamics” Phys. Rev. E 95, 012210.
 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
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.
– 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.
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.
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  and SPIKE-distance  as well as SPIKE-Synchronization. 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.
Documentation for PySpike can be found here:
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.
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.
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.