model-based-spike-detection
Model-based online implementation of spike detection algorithms for neuroengineering applications
Spike detection algorithms development in Simulink® to evaluate the preferable contestant for the intended embedded (µC or Field Programmable Gate Array - FPGA) implementation. A Model-Based Design approach for neuroengineering applications enables to (i) simulate, and forecast pros and cons of the code execution on target hardware, and (ii) carry out preliminary analysis about the algorithms conduct in real-time.
Fig.1 - Spike detection models developed in both single- and multi-channel modality
Fig.2 - SNEO Simulink model
Required Software
- MATLAB® and Simulink® version R2020a or later
Installation
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!
Repo description
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 reame.txt file in the folder for further details).
-
Recording_Generator: folder that contains Python scripts to generate simulated multichannel recording exploting MEArec (MEArec repo).
Background
Different spike detection models has 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.
- Energy Operator: non-linear energy operator (NEO) computation to enhance the high frequency content. 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.
CORE TEAM
The following people have contributed to the current state of the project (24/01/2022). 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
Cite As
Mattia Di Florio (2022). model-based-spike-detection (https://github.com/MattiaDif/model-based-spike-detection/releases/tag/v0.1), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.