Neural spike detection algorithms developed in Simulink®.
With this repo you can test and compare different spike detection models implemented in Simulink to simulate real-time signal processing, or to evaluate the performance of a suite spike detection algorithms. Test recordings are available so that you can try the repo functionalities.
Fig.1 - Spike detection models current developed at the current state of the project
Fig.2 - SNEO Simulink model
- MATLAB® and Simulink® version R2020a or later
- Signal Processing Toolbox
To clone this repo open your terminal and run:
git clone https://github.com/MattiaDif/model-based-spike-detection.git
Rember to add the repo to the Matlab path!
Inside Spike_Detection_Models:
-
SingleChannelModels: folder that contains the Simulink model for spike detection in single-channel modality subdivided by category. The files named with the prefix float_sch are the spike detection Simulink models, while the files named with the prefix float_sch_run are the Matlab scripts to control the model parameters and lunch the simulation.
-
MultiChannelModels: folder that contains the Simulink model for spike detection in mutli-channel modality subdivided by category. The files named with the prefix float_mch are the spike detection Simulink models, while the files named with the prefix float_mch_run are the Matlab scripts to control the model parameters and lunch the simulation.
-
TestData: folder that contains data for testing the model in Simulink (see the readme.txt file in the folder for further details).
-
Recording_Generator: folder that contains Python scripts to generate simulated multichannel recording exploting MEArec (MEArec repo).
Different spike detection models have been developed in Simulink to investigate their feasibility in a real-time environment. The algorithms are subdivided among 3 main categories according to the spike detection methods found in literature:
- Sample Thresholding: a spike is detected if the sample overcomes a threshold or a combination of thresholds.
- Energy Operator: non-linear energy operator (NEO) computation to enhance the high frequency content of the signal. A spike is detected if the NEO sample overcomes a threshold.
- Template Matching: spike detection based on the similarity between a waveform and a template. A spike is detected if the similarity metric is greater than a set value.
You can find detailed documentation here: docs.
The following people have contributed to the current state of the project. Specifically:
- Development: Stefano Buccelli [1], Mattia Di Florio [1],[3].
- Conceptualization/Supervision: Vijay Iyer [2], Akshay Rajhans [2], Stefano Buccelli [1], Michela Chiappalone [1],[3].
For any questions, please reach via email Mattia Di Florio (di.florio.mattia@gmail.com) or Stefano Buccelli (stefano.buccelli@iit.it) or write an issue!
- Rehab Technologies IIT-INAIL Lab, Istituto Italiano di Tecnologia, Via Morego 30, 12 16163 Genova, Italy
- MathWorks, 1 Lakeside Campus Drive, Natick, MA 01760, USA
- Department of Informatics, Bioengineering, Robotics, System Engineering (DIBRIS), 20 University of Genova, Via all’Opera Pia 13, 16145, Genova, Italy
For further information please refer to the scientific publication: link.
If you use this repo, please cite:
"Di Florio, M., Iyer, V., Rajhans, A., Buccelli, S., & Chiappalone, M. (2022, July). Model-based online implementation of spike detection algorithms for neuroengineering applications. In 2022 44th Annual International Conference of the IEEE Engineering in Medicine & Biology Society (EMBC) (pp. 736-739). IEEE."