adaptive-swtteo

Matlab-based single-channel spike detection algorithm for extracellular neural recordings.

https://github.com/barbalab/adaptive-swtteo

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Matlab-based single-channel spike detection algorithm for extracellular neural recordings.

Basic Info
  • Host: GitHub
  • Owner: barbaLab
  • Language: MATLAB
  • Default Branch: main
  • Size: 671 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Citation

README.md

Adaptive-SWTTEO

Matlab-based single-channel spike detection algorithm for extracellular neural recordings.

The algorithm is composed of these steps: 1. Stationary Wavelet transform (SWT) of n-th level. 2. Mantaining only approximation coefficient at each level. 3. k-Teager Energy Operator (or k-TEO/k-NEO).
4. Smoothing (k-SNEO). 5. Summation of all the transformed signals at each level. 6. Threshold with a windowed quantile function. 7. Peak refinement.

The code is inspired from the SWTTEO algorithm presented in Florian Lieb, Hans-Georg Stark, and Christiane Thielemann. “A Stationary Wavelet Transform and a Time-Frequency Based Spike Detection Algorithm for Extracellular Recorded Data”. In: J Neural Eng 14.3 (June 2017). DOI: 10.1088/1741-2552/aa654b. Key modifications are made from the third step till the end. Since SWTTEO had been benchmarked against multiple existing single-channel spike detection algorithms, demonstrating superior performance, our improved algorithm establishes itself as a leading solution in the field.

AdSWTTEO_schema1

Usage

Input parameters:

data: Input single-channel signal (1xN or Nx1 vector)
fs: Sampling frequency in Hz

Optional parameters (name-value pairs):

wavLevel: Wavelet decomposition level (default: 2)
waveName: Wavelet type (default: 'sym5')
winType: Function handle for smoothing window (default: @hamming)
smoothN: Size of the smoothing operator in ms (default: 1, set to 0 to turn off)
winPars: Optional parameters for the smoothing window (default: {'symmetric'})
RefrTime: Refractory time in ms (default: 0.5)
MultCoeff: Multiplication coefficient for SWTTEO thresholding (default: 6)
Polarity: Spike polarity: -1 for negative, 1 for positive (default: -1)
PeakDur: Max peak duration (pulse lifetime) in ms (default: 2.3)
medWdw: Window length for moving quantile in seconds (default: 0.003)
k: Number of samples for TEO (default: 3)
overshoot: Secondary window length for boundary control in seconds (default: 0.0007)

Output parameters:

ts: Timestamps of the detected spikes stored in 1xNspks vector
p2pamp: Peak-to-peak amplitude
pmin: Amplitude in volt at spike's positions
pW: Pulse width of detected spikes
E: Energy values from the SWTTEO algorithm

Exaples

matlab [ts,p2pamp,pmin,pW,E] = AdSWTTEO(data, fs); % using default parameters % Using name-value pairs for custom parameters [ts,p2pamp,pmin,pW,E] = AdSWTTEO(data, fs, 'MultCoeff', 8, 'RefrTime', 1); Set parameters that best fit with your data, especially the MultCoeff, which is the coefficient multiplying the second global threshold. The other outputs are (in order): the peak-to-peak amplitude, the peak value of the spike, the spike duration and the energy value at spike's positions.

Owner

  • Name: barbaLab
  • Login: barbaLab
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Adaptive-SWTTEO
message: >-
  Local spike detection algorithm for extracellular neural
  signals. 
type: software
authors:
  - given-names: Tommaso
    family-names: Lambresa
    orcid: 'https://orcid.org/0009-0004-9201-6217'
  - given-names: Federico
    family-names: Barban
    email: federico.barban@unige.it
    orcid: 'https://orcid.org/0000-0002-5828-0282'
  - given-names: Michela
    family-names: Chiappalone
    orcid: 'https://orcid.org/0000-0003-1427-5147'
repository-code: 'https://github.com/barbaLab/Adaptive-SWTTEO'
abstract: >-
  Here we present a novel Matlab-based spike detection
  algorithm, Adaptive-SWTTEO, inspired by an existing method
  that has demonstrated superior performance compared to
  other approaches. The new algorithm’s performance was
  evaluated against the original method using a custom
  synthetic dataset that included both non-bursting and
  bursting neural activity. Results showed that the
  Adaptive-SWTTEO outperformed the original algorithm in
  terms of detection efficiency, reliability and speed.
license: LGPL-3.0+

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
  • Public event: 1
Last Year
  • Watch event: 1
  • Push event: 1
  • Public event: 1