Reduction¶
Overview¶
Feature spaces from raw signals can often be high dimensional; dimensionality reduction allows the sorting algorithm to only compare a subset of the possible dimensions. This can be useful in terms of speed and accuracy during the subsequent clustering step. The difficulty is that we often do not know the most “discriminatory” dimensions to use in clustering. The methods below outline methods to select dimensions of a given high dimensional feature space to use for later clustering.
Each reduction method needs 1) Type with fields necessary for algorithm 2) function “reduction” to operate on sort with type field defined above 3) any other necessary functions for alignment algorithm
There can also be a “reductionprepare” function for the calibration step if necessary.
All datatypes are members of the abstract type Reduction. They should have default constructors to be initialized as follows:
#Create instance of reduction type specifying that no reduction will be used
myreduction=ReductionNone()
#Create instance of reduction type specifying to select dimensions based on maximum difference test
myreduction=ReductionMD()
Methods¶
Currently Implemented¶
No Reduction¶
Dimensionality reduction is not necessary for spike sorting, though it may produce more accurate results depending on the selected feature space and clustering method. No reduction is chosen by invoking:
myreduction=ReductionNone()
Maximum Difference¶
The maximum difference test will find the dimensions in the feature space that were most likely to have the largest difference between them during a calibration period. By default, 3 dimensions are chosen. It can be implemented as follows:
myreduction=ReductionMD()
Reference:
Gibson, Sarah and Judy, Jack W. and Markovi{‘{c}}, Dejan. Technology-aware algorithm design for neural spike detection, feature extraction, and dimensionality reduction. 2010
Partially Implemented¶
Principle Components Analysis¶
Refs:
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¶
Laplacian eigenmaps¶
Reference:
Chah, E. and Hok, V. and Della-Chiesa, A. and Miller, J J H. and O’Mara, S. M. and Reilly, R. B. Automated spike sorting algorithm based on Laplacian eigenmaps and k-means clustering. 2011.
Projection Pursuit 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.
Shannon mutual information¶
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.
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.
Uniform Sampling¶
Reference:
Karkare, Vaibhav and Gibson, Sarah and Markovic, Dejan. A 130-W, 64-channel neural spike-sorting DSP chip. 2011