TL;DR This project aims to develop a method for the automated detection of repeating spiking motifs, possibly noisy, in ongoing activity.
- Matthieu Gilson - https://github.com/MatthieuGilson
- Laurent Perrinet - https://github.com/LaurentPerrinet
- Hugo Ladret
- George Abitbol
- Brainhack Marseille
- organized by the Computational Neuroscience Center (CONECT)
- supported by the Polychronies grant
The study of spatio-temporal correlated activity patterns is very active in several fields related to neuroscience, like machine learning in vision (Muller Nat Rev Neurosci 2018) and neuronal representations and processing (Shahidi Nat Neurosci 2019). This project aims to develop a method for the automated detection of repeating spiking motifs, possibly noisy, in ongoing activity. A diversity of formalizations and detection methods have been proposed and we will focus on several example measures for event/spike trains, to be compared on both synthetic and real data.
An implementation could be based on autodifferentiable networks as implemented in Python libraries like pytorch. This framework allows for the tuning of parameters with specific architectures like convolutional layers that can capture various timescales in spike patterns (e.g. latencies) in an automated fashion. Another recent tool based on the estimation of firing probability for a range of latencies has been proposed (Grimaldi ICIP 2022). This will be compared with existing approaches like Elephant’s SPADE or decoding techniques based on computed statistics computed on smoothed spike trains (adapted from time series processing, see (Lawrie, biorxiv).
One part concerns the generation of realistic synthetic data producing spike trains which include spiking motifs with specific latencies or comodulation of firing rate. The goal is to test how these different structures, which rely on specific assumptions about e.g. stationarity or independent firing probability across time, can be captured by different detection methods.
Bring you real data to analyze them! We will also provide data from electrophysiology.
From 2022-11-28_SPADE_tutorial.ipynb, we learned to use SPADE.
A synthetic raster where we wish to detect synchronous patterns:
The same data with the synchronous data in the bottom:
SPADE achieves to detect those synchronous pattern:
However, SPADE can not detect easily more complex polychronous pattern like:
We can test the pattern detection of SPADE with one of those particular motifs for which the
neuron don't have a synchronous activity.
We have added little noises as you can see below.
By changing the window length of detection we can retrieve those motifs but
the algorithm with the parameters we used, is just searching for synchronous activity
Hence he considered that the motifs is synchronous, the red points that represents the detections
are aligned.
The window length has been put to the length of the motif.
More noise in the patterns with rate modulation. 10 neurons involved in the pattern (#0 to #10), with Poisson sampling leading to various number of spikes at each pattern presentation (sometimes none). Tuning SPADE appears difficult:
- short window of 5ms = many misses
- large window of 25ms = no selectivity
- two window of 5ms = better; but still misses and false positives
We finally applied SPADE to real data, in this case mouse data from the Allen Institute (see issue 8). The following figure corresponds to 14 stimuli presentations concatenated over time. SPADE finds a lot of patterns, but the detected patterns seem unstable over stimuli repetitions...
In the future, one goal is to understand a raster plot:
as a combination of different motifs
which are defined by a raster plot of motifs:
such one could infer to which motifs the different spikes belong to:
(see 2022-11-28_Generative-model-motifs.ipynb and 2022-11-28_Generative-model_figure.ipynb)
-
review on Precise spiking motifs in neurobiological and neuromorphic data
-
Grimaldi, Besnainou, Ladret, Perrinet (2022). Learning heterogeneous delays of spiking neurons for motion detection. Proceedings of ICIP 2022. https://laurentperrinet.github.io/publication/grimaldi-22-bc/grimaldi-22-bc.pdf
-
Polychronies grant
- Code to generate various models of synthetic data (time series of spikes/events) with embedded patterns
- Knowledge in signal processing & high-order statistics (correlation)
- Tool for quantitative comparison of detection methods for correlated patterns
-
issue one: generate synthetic model for raster plots
-
issue two: design detection method knowing these motifs
-
issue three: supervised learning
-
issue four: unsupervised learning
https://mattermost.brainhack.org/brainhack/channels/bhg22-marseille-detecspikmotifs
- Interest in analyzing spiking activity: 100%
- Programming Python (numpy, scikit-learn, pytorch): 70%
- Data (spike trains, event time series): 50%
- Sharing concepts and ideas (supervised/unsupervised learning, stochastic processes): 40%
- electro-physiology, spiking activity
- correlation/synchrony measures
- high-order statistics
- supervised/unsupervised learning
- stochastic processes
bayesian_approaches, deep_learning, information_theory, machine_learning, neural_decoding, neural_networks, statistical_modelling
Jupyter
Python
other
1_commit_push
Come to us!
- Add a comment below the main post of your issue saying:
Hi @brainhackorg/project-monitors my project is ready!
- Mastodon
Twitter-sized summary of your project pitch.: "This project aims to develop a method for the automated detection of repeating spiking motifs, possibly noisy, in ongoing activity."
- Using
conda
conda env create --file environment.yml
- Using
pip
pip install -U -r requirements.txt
Here you should include a list of people who helped your project. A good practice would be their names and GH profiles. Other additional info may fit, but names and profiles are mandatory. Proper credits matter.
- Aurore SB
- Laurie Mifsud
- Maria Fratello
- Matt Gilson
- Antoine Grimaldi
- Laurent Perrinet
- Sophie
- Konstatina Mylonaki
If you think you can do it better, you can consider using all-contributors guidelines. This project itself uses it on the README file. You really should consider using them.
Here you could make a call to people who would like to contribute to the project. Below, expose what you expect people to do.
We're currently looking for contributions for the following:
- Bug fixes
- Translations
- etc...