/model-based-spike-detection

Spike detection algorithms developed in Simulink environment.

Primary LanguageMATLABMIT LicenseMIT

View model-based-spike-detection on File Exchange

Model-based online implementation of spike detection algorithms for neuroengineering applications


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


Required Software

  1. MATLAB® and Simulink® version R2020a or later
  2. Signal Processing Toolbox

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:

  1. 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.

  2. 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.

  3. TestData: folder that contains data for testing the model in Simulink (see the readme.txt file in the folder for further details).

  4. Recording_Generator: folder that contains Python scripts to generate simulated multichannel recording exploting MEArec (MEArec repo).

Background

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:

  1. Sample Thresholding: a spike is detected if the sample overcomes a threshold or a combination of thresholds.
  2. 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.
  3. 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.

DOCUMENTATION

You can find detailed documentation here: docs.

CORE TEAM

The following people have contributed to the current state of the project. Specifically:

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!

  1. Rehab Technologies IIT-INAIL Lab, Istituto Italiano di Tecnologia, Via Morego 30, 12 16163 Genova, Italy
  2. MathWorks, 1 Lakeside Campus Drive, Natick, MA 01760, USA
  3. Department of Informatics, Bioengineering, Robotics, System Engineering (DIBRIS), 20 University of Genova, Via all’Opera Pia 13, 16145, Genova, Italy

REFERENCE

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."