Features

Overview

The output of our electrophysiology system is a time varying voltage signal. We expect extracellular potentials generated by nearby neurons to have some protypical features or shape that is different from noise, and that one neuron would also have differences from another. We can chose to make these comparisons looking at the time varying voltage trace that we are given, or we could perform some transformation of this signal to try to accentuate what we expect to be discriminatory components of the signal.

Each feature extraction method needs 1) Type with fields necessary for algorithm 2) function “feature” to operate on sort with type field defined above 3) any other necessary functions for extraction algorithm

Sometimes during calibration periods these features need to be calculated a little differently to make more or less data available to the subsequent calibration of clustering or reduction steps. These methods can be defined in “featureprepare” methods.

All data types are of abstract type Feature. they should have default constructors that are initialized as follows:

myfeature=FeatureTime() #use the time varying voltage signal as is

myfeature=FeatureCurv() #use the curvature of the voltage signal

Methods

Currently Implemented

Temporal

The simplest feature to use is the plain temporally varying voltage data with no transformation applied. This is invoked with:

myfeature=FeatureTime()

Curvature

The curvature at time t can be found as the following:

\[curv(t) = \frac{V''}{(1+V'^2)^(3/2)}\]

where V’ and V’’ are the first and second derivatives at time t. This is invoked as:

myfeature=FeatureCurv()

Reference:

Horton, P. M. and Nicol, A. U. and Kendrick, K. M. and Feng, J. F. Spike sorting based upon machine learning algorithms (SOMA). 2007.

Discrete Derivatives

Slopes are calculated at each time t over different time scales:

\[dd_{\delta}(n) = s(n) - s(n - \delta)\]

By default, delta values of 1,3, and 7 are used. We therefore have more features than in the original temporal waveform. This can be invoked as

myfeature=FeatureDD()

References:

Gibson, Sarah and Judy, Jack W. and Markovi{‘{c}}, Dejan. Technology-aware algorithm design for neural spike detection, feature extraction, and dimensionality reduction. 2010

Karkare, Vaibhav and Gibson, Sarah and Markovi{‘c}, Dejan. A 130-W, 64-channel neural spike-sorting DSP chip. 2011

Partially Implemented

Integral transform

References:

Gibson, S. and Judy, J. and Markovic, D. Comparison of spike sorting algorithms for future hardware implementation. 2008

Zviagintsev, A. and Perelman, Y. and Ginosar, R. Algorithms and architectures for low power spike detection and alignment. 2006.

Principle Components Analysis

Reference:

Adamos, Dimitrios A and Kosmidis, Efstratios K and Theophilidis, George. Performance evaluation of PCA-based spike sorting algorithms. 2008.

Jung, Hae Kyung and Choi, Joon Hwan and Kim, Taejeong. Solving alignment problems in neural spike sorting using frequency domain PCA. 2006.

To Do

Discrete Derivatives - DD2 extrema

Reference:

Zamani, Majid and Demosthenous, Andreas. Feature extraction using extrema sampling of discrete derivatives for spike sorting in implantable upper-limb neural prostheses. 2014.

Discrete Derivatives - Feature extraction using first and second derivative extrema (FSDE)

Reference:

Paraskevopoulou, Sivylla E. and Barsakcioglu, Deren Y. and Saberi, Mohammed R. and Eftekhar, Amir and Constandinou, Timothy G. Feature extraction using first and second derivative extrema (FSDE) for real-time and hardware-efficient spike sorting. 2013.

Frequency - Raw

Reference:

Yang, Chenhui and Yuan, Yuan and Si, Jennie. Robust spike classification based on frequency domain neural waveform features. 2013.

Frequency - PCA

Reference:

Jung, Hae Kyung and Choi, Joon Hwan and Kim, Taejeong. Solving alignment problems in neural spike sorting using frequency domain PCA. 2006.

Fuzzy Score

Reference:

Balasubramanian, Karthikeyan and Obeid, Iyad. Fuzzy logic-based spike sorting system. 2011.

Projection pursuit method based on negentropy maximization

Reference:

Kim, Kyung Hwan and Kim, Sung June. Method for unsupervised classification of multiunit neural signal recording under low signal-to-noise ratio. 2003.

SVD

Reference:

Oliynyk, Andriy and Bonifazzi, Claudio and Montani, Fernando and Fadiga, Luciano. Automatic online spike sorting with singular value decomposition and fuzzy C-mean clustering. 2012.

Wavelet - Discrete Wavelet Transform

Reference:

Quiroga, R Quian and Nadasdy, Z. and Ben-Shaul, Y. Unsupervised spike detection and sorting with wavelets and superparamagnetic clustering. 2004.

Wavelet - Wavelet packet decomposition

Reference:

Hulata, Eyal and Segev, Ronen and Ben-Jacob, Eshel. A method for spike sorting and detection based on wavelet packets and Shannon’s mutual information. 2002.

Zero-crossing features

Reference:

Kamboh, Awais M. and Mason, Andrew J. Computationally efficient neural feature extraction for spike sorting in implantable high-density recording systems. 2013.