Automatic onlinespike sorting with singular value decomposition and fuzzy Cmean clustering
 Andriy Oliynyk^{1, 3}Email author,
 Claudio Bonifazzi^{1},
 Fernando Montani^{2} and
 Luciano Fadiga^{1, 4}
DOI: 10.1186/147122021396
© Oliynyk et al.; licensee BioMed Central Ltd. 2012
Received: 1 February 2012
Accepted: 16 July 2012
Published: 8 August 2012
Abstract
Background
Understanding how neurons contribute to perception, motor functions and cognition requires the reliable detection of spiking activity of individual neurons during a number of different experimental conditions. An important problem in computational neuroscience is thus to develop algorithms to automatically detect and sort the spiking activity of individual neurons from extracellular recordings. While many algorithms for spike sorting exist, the problem of accurate and fast online sorting still remains a challenging issue.
Results
Here we present a novel software tool, called FSPS (Fuzzy SPike Sorting), which is designed to optimize: (i) fast and accurate detection, (ii) offline sorting and (iii) online classification of neuronal spikes with very limited or null human intervention. The method is based on a combination of Singular Value Decomposition for fast and highly accurate preprocessing of spike shapes, unsupervised Fuzzy Cmean, highresolution alignment of extracted spike waveforms, optimal selection of the number of features to retain, automatic identification the number of clusters, and quantitative quality assessment of resulting clusters independent on their size. After being trained on a short testing data stream, the method can reliably perform supervised online classification and monitoring of single neuron activity. The generalized procedure has been implemented in our FSPS spike sorting software (available free for noncommercial academic applications at the address: http://www.spikesorting.com) using LabVIEW (National Instruments, USA). We evaluated the performance of our algorithm both on benchmark simulated datasets with different levels of background noise and on real extracellular recordings from premotor cortex of Macaque monkeys. The results of these tests showed an excellent accuracy in discriminating lowamplitude and overlapping spikes under strong background noise. The performance of our method is competitive with respect to other robust spike sorting algorithms.
Conclusions
This new software provides neuroscience laboratories with a new tool for fast and robust online classification of single neuron activity. This feature could become crucial in situations when online spike detection from multiple electrodes is paramount, such as in human clinical recordings or in braincomputer interfaces.
Background
Electrophysiological recording of single neuron activity represents a fundamental tool for investigating brain functions. Since a recording electrode often picksup spikes from more than one neuron, a spike sorting technique is needed to identify and separate spikes of different neurons [1, 2]. Most currently available computational procedures provide accurate sorting and classification, but are often highly interactive and timeconsuming and require specific experience and subjective judgments. Fast automatic methods are available [3–5], but they are usually not as accurate as the offline ones and often suffer from problems such as false match or double match, spike overlap and errors in classification [1, 6]. Solving the tradeoff between automation, speed and accuracy of spike sorting is thus a crucial challenge in systems neuroscience.
Here, we aim at contributing to the progress of the field by achieving accurate, fast and fully automated spike sorting. To this purpose, we present a new method (and a software package) based on the Fuzzy Cmean (FCM) classification of spike waveforms in the lowdimensional feature space of Principal Components (PCs). Many currently used offline spike sorting algorithms already employ Principal Component Analysis (PCA) as a preprocessing step to compress the dimensionality of the patterns to be clustered [1, 7]. However, its practical application for fast and automatic separation of neurons is still limited for many reasons. In fact, it is commonly reported that the performance of the PCA heavily depends on the accuracy of the waveform alignment [8], thus requiring strong computations and human supervision of the clustering results [9]. In addition, eigenvectors accounting for the largest variance of the data are not necessarily providing the best separation of the spike classes [10]. Finally, it is often pointed out that PCA, in its basic configuration, is a static technique, not suitable for monitoring of nonstationary behaviour [11], while in vivo single unit activity represents mostly nonstationary system with nontrivial dynamics [12].
The article is organized as follows. First, we describe the spike sorting method used in our approach. We then evaluate its accuracy using simulated spike datasets at different background noise levels proposed by Quiroga et. al. (2004). Then we demonstrate the performance of our method by applying it to the analysis of real extracellular recordings from the macaque premotor cortex, and we investigate the robustness of the algorithm to sample size and inhomogeneities between cluster size to deal with the nonstationarity of the data during the recording session. Finally, we illustrate how our method of spike sorting can be implemented to monitor online the activity of single neurons during electrophysiological recordings.
Implementation
Simulation
Simulated extracellular recordings were used to test the spike sorting procedures. These simulated data were the ones used in [10] and are available online at http://vis.caltech.edu/~rodri/Wave_clus/Wave_clus_home.htm. Briefly, simulated signals consisted of spike shapes of three neurons compiled from recordings in the neocortex and basal ganglia. For generating background noise, spikes randomly selected from the database were superimposed at random times and amplitudes. Next, a train of three distinct spike shapes was superimposed on the noise signal at random times. The amplitude of the three spike classes was normalized to have a peak value of 1. The noise level was determined from its standard deviation, which was equal to 0.05, 0.1, 0.15, and 0.2 relative to the amplitude of the spike classes. There were four different example simulations, number from one to four in order of increasing sorting difficulty (see Ref [10]).
Real multiunit recordings
Electrophysiological recordings were made from freely behaving, partially restrained, macaque monkey (Macaca fascicularis). All experimental protocols were approved by the Veterinarian Animal Care and Use Committee of the University of Ferrara, by the Italian Ministry of Health and complied with the European laws on the use of laboratory animals. The surgical procedure were the same as previously described [23]. Multiunit recordings were performed by using varnished (Sivamid 595, ELANTAS Deatech S.r.l., Italy) tungsten microelectrodes with impedance 0.15–1.5MΩ (measured at 1 kHz), slowly inserted in the cortex by a hydraulic microdrive (Kopf Instruments, CA, USA; step resolution, 10 μm). Recorded signal was amplified 10,000 times (BAK Electronics, Germantown MD, USA), filtered by a dual variable filter VBF8 (KEMO Ltd., Backenham, UK) (bandwidth 300–5000 Hz) and digitized (USB6229, National Instruments, USA) at 10 kHz. During online classification, isolated spike shapes of selected unit are flashed on computer display and reproduced by a sound device to provide experimenters with audio feedback on neuron response.
Spike detection and waveform extraction
Extraction of Principal Components
where A is a realvalued data matrix A^{(n×24)} containing spike shapes, n is a vector holding n^{th} row average in the n^{th} element, 1 is a nvector of ones and X is a matrix holding the centering data.
where U is a n × 24 left orthogonal matrix of singular vectors giving the principal component scores which represent the spike waveforms in term of the PCs; V is a 24 × 24 orthogonal matrix detailing the spike profile and mapping the vector space; and S is a 24 × 24 diagonal matrix where the diagonal elements are the singular values of X.
Determining the number of PCs to retain
A crucial problem in multivariate data analysis is the number of components to retain when applying PCA. This should be determined considering the tradeoff between dimensionality and the loss of data information [30]. Both underextraction and overextraction may have consequences that adversely impact the efficiency and meaning of PCA [31], resulting in classification errors. Our software solves this problem by automatically using the Scree Test Optimal Coordinates (n_{ oc }) method, as numerical approach to the Cattell’s scree test introduced in Ref [32]. For online classification we maintain the parameter obtained during test acquisition phase until our measures of goodness of clustering detect that a new training phase is needed because the data have changed their properties too much (see Measures of cluster quality section).
FCM clustering and classification
where σ is the standard deviation of the distribution and N is the number of available samples, which corresponds to the total number of spikes or singular vectors in ${U}_{k}$ matrix and their ${\ell}_{1}$norm values in our specific case. The histogram was than thresholded to eliminate the noise content (lowamplitude peaks in the histogram which do not correspond to any distinct cluster) by using the value of first lower valley after the mode of ${\ell}_{1}$norm distribution. Thus, the number of peaks on histogram above the selected threshold was used as indication of the number of objects to be used for FCM clustering technique. However, in the interactive mode, FSPS leaves the possibility to choose the number of clusters manually, according to visual examination of the clustering results and expert judgment.
To perform FCM clustering (whose details are described in Additional file 2), one has to specify also an exponent m (m > 1.0), which determines the degree of fuzziness of the resulting clustering process. As m→1 the fuzziness of the clustering result tends to the results derived with the well known ISODATA method [36]. As m→∞ the membership values of all the objects to each cluster tend to the reciprocal of the number of classes 1/c. The analysis of our data obtained during recordings, the distribution of PCs and measurements of cluster quality showed that, with m = 1.1 the FCM algorithm is performing clustering correctly on both real and simulated data (see Results). Besides, this value was consistently found to lead to good results with the well and poor separated classes and we were able to classify the cells with acceptable accuracy. Thus, we set this default value of m in our program, although it can be changed by the user if needed.
Measures of cluster quality
Since clustering algorithms define clusters that are not known a priori, it is fundamental to define a performance criterion to quantify the goodness of the resulting partition. In our FSPS software we have implemented the standard and popular figures of merit associated with FCM introduced by J.C.Bezdek (1981), such as the Partition Coefficient (pc), the Partition Entropy (pe) and Proportion Exponent (pex) that make use only of membership values and have the advantage of being easy to compute (see Additional file 2). However, these measures are often subject to numerical instability during the quantification of overlapping clusters of unequal size [37]. Therefore, we also included in our software one recently introduced objective validity index L_{ ratio }[20]. This parameter allows to obtain stable cluster evaluation from a particular recording site, and to take into account the clusters with a larger number of spikes. The evaluation of L_{ ratio } changes during single unit recordings was also used as measure of classification performance to monitor the stability of data acquisition. The threshold L_{ ratio } value is set to 5 as default, and can be modified by the user (we recommend a choice in the range 3–6). Once L_{ ratio } becomes bigger than its threshold value, the program alerts the user that it is advised to recompute full SVD and to update FCM prototype because classification is deteriorating.
Finally, for each isolated unit the FSPS software allows to compute a number of standard quantities and statistics of interest to the neurophysiologist, such as PeriStimulus Time Histograms (PSTHs), raster plots and interspike interval (ISI) and some clinically important indices that measured tonic and phasic activity, including burst index (BI) and pause index (PI) [38].
Results
Performance on simulated data
In order to validate our spike sorting approach and to compare it with other known algorithms, we tested it on simulated datasets described by Quiroga et. al. (2004) and compared to their already published results obtained by superparamagnetic clustering (SPC) and Kmean clustering techniques applied to different spike features (wavelets, PCA, using the first three PCs, and the whole spike shape) [10]. The dataset contains two types of spike shapes: noisy “nonoverlapping” spike shapes, which were generated by taking the target waveform and adding noise, and “overlapping spikes” which were generated overlapping spikes with a latency shorter than 0.7 ms and then adding noise. Performance was quantified in terms of number of classification errors.
Number of classification errors and noise levels, obtained using FSPS, SPC and Kmeans, in all simulated examples
№  Example no.  Noise level  Number of noisy spikes  Classification errors  

SPC  Kmeans  FSPS  
Spike Shape  PCA  Wavelets  PCA  Wavelets  PSVD  
1  2  3  4  5  6  7  8  
1.  1  [0.05]  2729  0  1  1  0  0  0 
2.  [0.10]  2753  0  17  5  0  0  0  
3.  [0.15]  2693  0  19  5  0  0  1  
4.  [0.20]  2678  24  130  12  17  17  47  
5.  [0.25]  2586  266  911  64  68  69  157  
6.  [0.30]  2629  838  1913  276  220  177  221  
7.  [0.35]  2702  1424  1926  483  515  308  354  
8.  [0.40]  2645  1738  1738  741  733  930  462  
9.  2  [0.05]  2619  2  4  3  0  0  0 
10.  [0.10]  2694  59  704  10  53  2  2  
11.  [0.15]  2648  1054  1732  45  336  31  27  
12.  [0.20]  2715  2253  1791  306  740  154  48  
13.  3  [0.05]  2616  3  7  0  1  0  0 
14.  [0.10]  2638  794  1781  41  184  850  0  
15.  [0.15]  2660  2131  1748  81  848  859  17  
16.  [0.20]  2624  2449  1711  651  1170  874  22  
17.  4  [0.05]  2535  24  1310  1  212  686  0 
18  [0.10]  2742  970  946  8  579  271  7  
19.  [0.15]  2631  1709  1716  443  746  546  51  
20.  [0.20]  2716  1732  1732  1462  1004  872  195  
Average  2663  874  1092  232  371  332  81 
Number of classification errors for all simulated examples and overlapping spike shapes
№  Example no.  Noise level  Number of overlapping spikes  False matches  

N°.  %  
1  2  3  4  
1.  1  [0.05]  785  161  20.5 
2.  [0.10]  769  146  19.0  
3.  [0.15]  784  185  23.6  
4.  [0.20]  796  165  20.7  
5.  [0.25]  712  208  29.2  
6.  [0.30]  846  250  29.6  
7.  [0.35]  832  270  32.5  
8.  [0.40]  741  270  36.4  
9.  2  [0.05]  791  152  19.2 
10.  [0.10]  826  167  20.2  
11.  [0.15]  763  152  19.9  
12.  [0.20]  811  301  37.1  
13.  3  [0.05]  767  88  11.5 
14.  [0.10]  810  131  16.2  
15.  [0.15]  812  152  18.7  
16.  [0.20]  790  287  36.3  
17.  4  [0.05]  829  39  4.7 
18  [0.10]  720  114  15.8  
19.  [0.15]  809  209  25.8  
20.  [0.20]  777  282  36.3  
Average  789  186  23.7 
Description of real multiunit data
We then tested our spike sorting algorithm and its quality of separation using real polyspikes recorded from premotor area F5 of a Macaque monkey. To demonstrate the functionality of our method in a realistic situation we present spike sorting results of two different datasets, obtained from the same recording site, but in different experimental conditions, thus introducing the complexity of nonstationarity in the data. First dataset, referred to as A, was acquired when monkey performed goaldirected grasping movements in full vision, while other recordings (referred to as dataset B) were done 30 min after A during the same grasping in the dark. Each dataset contains raw signals of twelve 3 s trials of each of the two conditions with a 1012 s intertrial interval. The total duration of acquisition of one dataset was therefore 2–3 min. The structure of the two datasets and the result of spike identification are shown in Additional file 2: Table S1 (dataset A) and Additional file 2: Table S2 (dataset B). In the waveform extraction phase, 475 and 295 false positive peaks exceeding the threshold value were automatically removed from datasets A and B, respectively. Thus, 6191 spikes out of 6666 identified in the dataset A and 6379 out of 6674 in the dataset B were processed. Dataset A was used at first as test acquisition for the unsupervised spike sorting, creation of SVD model (U_{ k }, S_{ k }, and V_{ k }) and to obtain the parameters that were necessary to further supervised spikes classification of the dataset B.
SVD and preprocessing results on real multiunit recordings
Performance of FSPS™ clustering/classification of datasets A and B with their respective quality measures
Parameter  Value  

Dataset A  Dataset B  
/clustering/  /classification/  
Number of spikes processed  6191  6379  
Average processing time (at our system), ms  684 ± 21  44 ± 1  
Number of Steps  34  1  
Training Error  0.00002  0.00002  
Test Error  0.00000  0.00000  
Partition Coefficient (PC)  0.99208  0.98411  
Partition Entropy (PE)  0.01313  0.02667  
L _{ ratio }  Class 1 (blue)  2.478  2.504 
Class 2 (green)  4.180  4.243  
Class 3 (pink)  2.626  2.677  
Class 4 (yellow)  0.493  0.500 
Exploring the limits of classification and its reliability for the online spike sorting
It is known that FCM algorithms have a tendency to find clusters of comparable size because they use a sum of squared errors objective function and approximately equal cluster populations result in smaller values of this objective function [17, 39]. This might become a serious problem in online applications, where the algorithm may be applied to relatively small stretches of data and so random fluctuations of spike rates may make the relative size of clusters at a given time very disproportionate.
Figure 14B shows the results obtained with real dataset A. The classifier is still performing well and true positive rate is higher 80% if it remains at least 20,1%, 4,9%, 1,1% and 5,1% spikes, respectively to Class 1, Class 2 Class 3 and Class 4. Figure 14C shows the outcome of the classification real dataset B. The true positive rate for each class remains still at higher than 80%, if classes 1, 2, 3 or 4 contain at least 18,9%, 16,1%, 13,3% and 12,5% spikes, respectively.
An additional exploratory test in which all clusters were modified in a balanced and “Uniform” manner showed excellent performance in simulated, real A and real B datasets (black dotted line in Figure 14AC). In all these cases the classification accuracy was completely independent of the density of the clusters and the true positive rate was at its maximal initial value until the each cluster contained at least one spike.
Discussion
The present work is devoted at addressing the challenges involved in balancing the different needs for accuracy, speed and automation in spike sorting.
The first point of discussion regards the selection of the optimal spikeshape features to be used for sorting [1, 40–42]. Here we chose the multivariate techniques for selection of spike features. The multivariate approach has proven successful in many industrial online applications [15, 43]. In this work, it is shown that neurophysiological research does not constitute an exception. We improved the performance of PC based classification by using a careful alignment of spike shapes and PSVD to reduce noise and computational time and to select the optimal number of components to be used, thereby choosing a reduced variable sets as inputs for the clustering algorithms. In agreement with other studies [8, 44–46], we have indeed found that when careful alignment and PCA were implemented, the results of classification of simulated datasets showed high tolerance to the noise, with better performance in comparison with similar methods.
Another goal of this paper was to demonstrate the applicability and efficacy of our technique for online isolation of single neurons. Indeed, a straight PCA approach is not sufficient to describe the changing pattern of neural activity adequately [11, 13]. There are mainly two reasons for this. First, the neuronal activity displays a nonstationary behaviour [47]. Second, PCA is not an optimal method for feature extraction when the features are used in a supervised classifier [27]. Finally, PCA is a computationally intensive preprocessing technique, making hard its use in realtime processing. Despite these conceptual difficulties our way of implementation of the mentioned algorithms into LabVIEW environment allowed us to run online classification with small and acceptable delay as far as our experimental conditions are concerned. There are several examples of applications of multivariate statistical online monitoring (and modeling) associated with PCA and FCM overcoming problems associated with nonstationarity [48–50].
A main focus of this article was the accuracy assessment of the FCM, which have been incorporated into FSPS software to produce both crisp and fuzzy classifications. The main advantage of FCM implementation is that fuzzy classification gives faster detection and smoother control than crisp classification. The importance of this becomes more evident during online classification. The tests reported in this article suggest that the FCM clustering copes well with the problems generated by the nonstationarity of the real data. It is interesting to note that the FCM procedure is based on an iterative clustering algorithm and can thus be regarded as an essentially unsupervised classifier. However, we also implemented a partially supervised mode, benefitting from partition and membership function previously obtained from training dataset. Consistently with this, the results of our tests performed on datasets prove that the implementation of FCM overcomes the problem of sensitivity for unequal cluster sizes, which is crucial for correct online classification. Thus, together with PCs extracted by PSVD from accurately preprocessed spike waveforms, FCM becomes a versatile noise tolerant technique for the sorting of neuronal action potentials having even small variation in their discharge.
Any kind of clustering or classification needs an objective measure of its quality. Although we implemented in the FSPS software most conventional indices associated with FCM, including partition coefficient, partition entropy and proportion exponent, our tests showed that the index L_{ ratio } was superior to classic FCM indexes and so was implemented as the default quality measure in our software. In terms of real recordings we found L_{ ratio } useful not only to determine whether the quality of a cluster is within acceptable limits, but also to control the stability of recordings, to predict the future behavior of the neuron and check whether the SVD model is going out of control.
An important feature of the FSPS software is that it is implemented entirely within LabVIEW. The latter constitutes one of the most frequently used programming languages for the data acquisition, analysis, control and visualization. LabVIEW is often faster than many other highlevel programming languages used in neuroscience, such as MATLAB [22], and it is far better equipped for the development of experimental and clinicallyoriented spike sorting applications [51]. The upshot is that the entire spike time acquisition process can be run within a single environment, which has the allimportant added benefit of simplifying experimental procedures.
In recent years there have been successful attempts at creating a crossplatform GUI for data visualization, navigation and spike sorting features within another software environment using the Python framework [52, 53]. Python applications, like “SpikeSort”, “Spikepy”, “spyke” and “OpenElectrophy”, provide adequate tools for the exploration of data and offline spike sorting, while “NeurOnline” provides the means for online spike sorting. However, the LabVIEW code we used is far more convenient because it rarely calls the Operating System (OS) directly, so it can be used with different OSs without the need for major modifications. Moreover, LabVIEW supports thousands of hardware devices and, in addition to the popular desktop OSs (Windows, Mac, and Linux), it can target several embedded realtime controllers, ARM microprocessors, and fieldprogrammable gate arrays (FPGAs), allowing the deployment of our FSPS code with the most appropriate hardware platform without the need to learn new toolchains.
All mentioned properties contributed to the creation of a fast, powerful, userfriendly and standalone multiplatform software, designed for clustering/classification of neural data. Moreover, our online approach will help physiologist to overcome new challenges in experimental electrophysiological research.
Conclusions
We believe that the software developed here complements existing spike sorting toolboxes and will be a useful tool for fast on and offline sorting of spike trains with limited supervision or fully automated. Because of these properties, our tool will be particularly useful for the analysis of large parallel recordings (where human supervision is practically impossible or inconvenient) and will therefore be important for improving our understanding of population codes [54–56] and for online applications such as the decoding of neural ensembles to control Brain Computer Interfaces or for clinical applications.
Availability and requirements
Project name: Neurolab
Project home page: http://www.spikesorting.com
Operating system(s): It was tested on Windows XP, Windows Vista, Windows 7
Programming language: NI LabVIEW 2009
Other requirements: for running in the online mode, the requirements are as follows. Hardware: Digital acquisition board from National Instruments (PCI or USB). Additional software: 1. LabVIEW RunTime Engine 2009 for Windows 2000/7/7 x64/Vista/Vista x64/XP  (32bit Standard RTE)  available free at: http://www.ni.com. 2. NIDAQmx RunTime Engine 9.3 or higher  (Core) for Windows 7 64 bit/7 x86/Server 2003 R2 (32bit)/XP x86/Vista x64/Vista x86/Server 2008 R2 (64bit)  available free at: http://www.ni.com;
License: FSPS software is distributed under Creative Commons Public License (CCPL BYNCND) and can be used for noncommercial academic applications providing they properly reference this work in any publication that uses results generated by FSPS software.
Any restrictions to use by nonacademics: Commercial License needed.
Abbreviations
 BI:

Burst index
 DAQ:

Digital Acquisition
 FCM:

Fuzzy Cmean
 FPGA(s):

Fieldprogrammable Gate Array(s)
 FSPS:

Fuzzy SPike Sorting
 GUI:

Graphical User Interface
 ISI:

Interspike Interval
 OS(s):

Operating System(s)
 PC(s):

Principal Component(s)
 PCA:

Principal Component Analysis
 PI:

pause index
 PSTH(s):

PeriStimulus Time Histogram(s)
 PSVD:

Partial Single Value Decomposition
 SPC:

Superparamagnetic Clustering
 SVD:

Single Value Decomposition
 VI(s):

Virtual Instrument(s).
Declarations
Acknowledgements
This work has been supported by RobotCub (ROBotic OpenArchitecture Technology for Cognition, Understanding and Behaviour), IST004370, and by the BMI Project of RBCS Department at the Italian Institute of Technology. The authors thank Stefano Panzeri for his feedback on software development and manuscript writing.
Authors’ Affiliations
References
 Lewicki MS: A review of methods for spike sorting: the detection and classification of neural action potentials. Network. 1998, 9: R53R78. 10.1088/0954898X/9/4/001.PubMedView ArticleGoogle Scholar
 Quiroga RQ: Spike sorting. Scholarpedia. 2007, 12: 3583.View ArticleGoogle Scholar
 Kim KH: Improved Algorithm for Fullyautomated Neural Spike Sorting based on Projection Pursuit and Gaussian Mixture Model. Int J Contr Autom Syst. 2006, 4: 705713.Google Scholar
 Sato T, Suzuki T, Mabuchi K: Fast automatic template matching for spike sorting based on DaviesBouldin validation indices. Conf Proc IEEE Eng Med Biol Soc. 2007, 2007: 32003203.PubMedGoogle Scholar
 VargasIrwin C, Donoghue JP: Automated spike sorting using density grid contour clustering and subtractive waveform decomposition. J Neurosci Methods. 2007, 164: 118. 10.1016/j.jneumeth.2007.03.025.PubMed CentralPubMedView ArticleGoogle Scholar
 BarGad I, Ritov Y, Vaadia E, Bergman H: Failure in identification of overlapping spikes from multiple neuron activity causes artificial correlations. J Neurosci Methods. 2001, 107: 113. 10.1016/S01650270(01)003399.PubMedView ArticleGoogle Scholar
 Adamos DA, Kosmidis EK, Theophilidis G: Performance evaluation of PCAbased spike sorting algorithms. Comput Methods Programs Biomed. 2008, 91: 232244. 10.1016/j.cmpb.2008.04.011.PubMedView ArticleGoogle Scholar
 Jung HK, Choi JH, Kim T: Solving alignment problems in neural spike sorting using frequency domain PCA. Neurocomputing. 2006, 69: 975978. 10.1016/j.neucom.2005.06.006.View ArticleGoogle Scholar
 Balasubramanian K, Obeid I: Fuzzy logicbased spike sorting system. J Neurosci Methods. 2011, 198: 125134. 10.1016/j.jneumeth.2011.03.016.PubMedView ArticleGoogle Scholar
 Quiroga RQ, Nadasdy Z, BenShaul Y: Unsupervised spike detection and sorting with wavelets and superparamagnetic clustering. Neural Comput. 2004, 16: 16611687. 10.1162/089976604774201631.PubMedView ArticleGoogle Scholar
 Jolliffe IT: Principal component analysis. 2002, New York: Springer, 2Google Scholar
 Muresan RC, Pipa G, Wheeler DW: Singleunit recordings revisited: Activity in recurrent microcircuits. Artificial Neural Networks: Biological Inspirations  Icann 2005, Pt 1, Proceedings. 2005, 3696: 153159. 10.1007/11550822_25.Google Scholar
 Berrar DP, Dubitzky W, Granzow M: A practical approach to microarray data analysis. 2003, Kluwer Academic Publishers, Boston, MAView ArticleGoogle Scholar
 Berry MW, Dumais ST, O’Brien GW: Using linear algebra for intelligent information retrieval. SIAM Rev. 1995, 37: 573595. 10.1137/1037127.View ArticleGoogle Scholar
 Brand M: Fast Online SVD Revisions for Lightweight Recommender Systems. SIAM International Conference on Data Mining. 2003, 3746.Google Scholar
 Dunn JC: A fuzzy relative of the ISODATA process and its use in detecting compact, wellseparated clusters. J Cybern. 1973, 3: 3257. 10.1080/01969727308546046.View ArticleGoogle Scholar
 Bezdek JC: Pattern recognition with fuzzy objective function algorithms. 1981, Plenum Press, New YorkView ArticleGoogle Scholar
 Bezdek JC, Ehrlich R, Full W: Fcm  the Fuzzy CMeans ClusteringAlgorithm. Comput Geosci. 1984, 10: 191203. 10.1016/00983004(84)900207.View ArticleGoogle Scholar
 Cannon RL, Dave JV, Bezdek JC: Efficient Implementation of the Fuzzy CMeans Clustering Algorithms. IEEE Trans Pattern Anal Mach Intell. 1986, 8: 248255.PubMedView ArticleGoogle Scholar
 SchmitzerTorbert N, Jackson J, Henze D, Harris K, Redish AD: Quantitative measures of cluster quality for use in extracellular recordings. Neuroscience. 2005, 131: 111. 10.1016/j.neuroscience.2004.09.066.PubMedView ArticleGoogle Scholar
 Johnston WM, Hanna JRP, Millar RJ: Advances in dataflow programming languages. ACM Comput Surv. 2004, 36: 134. 10.1145/1013208.1013209.View ArticleGoogle Scholar
 GutierrezCastrejon R, Duelk M: Using LabVIEW (TM) for advanced nonlinear optoelectronic device simulations in highspeed optical communications. Comput Phys Commun. 2006, 174: 431440. 10.1016/j.cpc.2005.11.002.View ArticleGoogle Scholar
 Gentilucci M, Fogassi L, Luppino G, Matelli M, Camarda R, Rizzolatti G: Somatotopic representation in inferior area 6 of the macaque monkey. Brain Behav Evol. 1989, 33: 118121. 10.1159/000115912.PubMedView ArticleGoogle Scholar
 Donoho DL, Johnstone IM: Ideal Spatial Adaptation by Wavelet Shrinkage. Biometrika. 1994, 81: 425455. 10.1093/biomet/81.3.425.View ArticleGoogle Scholar
 De Boor C: A practical guide to splines: with 32 figures. 2001, New York: Springer, Revth editionGoogle Scholar
 Bro R, Smilde AK: Centering and scaling in component analysis. J Chemometr. 2003, 17: 1633. 10.1002/cem.773.View ArticleGoogle Scholar
 Gabbiani F, Cox SJ: Mathematics for neuroscientists. 2010, Amsterdam: Elsevier/Academic Press, 1Google Scholar
 Eldén L: Matrix methods in data mining and pattern recognition. 2007, Society for Industrial and Applied Mathematics, Philadelphia, PAView ArticleGoogle Scholar
 Rencher AC, Christensen WF: Methods of multivariate analysis. 2012, Hoboken, New Jersey: Wiley, ThirdView ArticleGoogle Scholar
 Hayton JC, Allen DG, Scarpello V: Factor retention decisions in exploratory factor analysis: A tutorial on parallel analysis. Organ Res Meth. 2004, 7: 191205. 10.1177/1094428104263675.View ArticleGoogle Scholar
 Costello AB, Osborne J: Best practices in exploratory factor analysis: four recommendations for getting the most from your analysis. Practical Assess Res Eval. 2005, 10: 19.Google Scholar
 Raiche G, Riopel M, Blais JG: Non graphical solutions for the Cattell's scree test. 2006, International Annual meeting of the Psychometric SocietyGoogle Scholar
 Höppner F, Klawonn F, Kruse R, Runkler T: Fuzzy Cluster Analysis: methods for classification, data analysis and image recognition. 1999, John Wiley & Sons Ltd., ChinchesterGoogle Scholar
 Shapiro LG, Stockman GC: Computer vision. 2001, Prentice Hall, Upper Saddle River, NJGoogle Scholar
 Scott DW: Optimal and DataBased Histograms. Biometrika. 1979, 66: 605610. 10.1093/biomet/66.3.605.View ArticleGoogle Scholar
 Ball GH, Hall DJ: A clustering technique for summarizing multivariate data. Behav Sci. 1967, 12: 153155. 10.1002/bs.3830120210.PubMedView ArticleGoogle Scholar
 Wang SR, Sun HJ, Jiang QS: FCMbased model selection algorithms for determining the number of clusters. Pattern Recognition. 2004, 37: 20272037. 10.1016/j.patcog.2004.03.012.View ArticleGoogle Scholar
 Favre J, Taha JM, Baumann T, Burchiel KJ: Computer analysis of the tonic, phasic, and kinesthetic activity of pallidal discharges in Parkinson patients. Surg Neurol. 1999, 51: 665672. 10.1016/S00903019(99)000300. discussion 672–663PubMedView ArticleGoogle Scholar
 Bezdek JC: Cluster validity with fuzzy sets. J Cybern. 1974, 3: 5873.View ArticleGoogle Scholar
 Horton PM, Nicol AU, Kendrick KM, Feng JF: Spike sorting based upon machine learning algorithms (SOMA). J Neurosci Methods. 2007, 160: 5268. 10.1016/j.jneumeth.2006.08.013.PubMedView ArticleGoogle Scholar
 Letelier JC, Weber PP: Spike sorting based on discrete wavelet transform coefficients. J Neurosci Methods. 2000, 101: 93106. 10.1016/S01650270(00)002508.PubMedView ArticleGoogle Scholar
 Luczak A, Narayanan NS: Spectral representationanalyzing singleunit activity in extracellularly recorded neuronal data without spike sorting. J Neurosci Methods. 2005, 144: 5361. 10.1016/j.jneumeth.2004.10.009.PubMedView ArticleGoogle Scholar
 Dudzic M, Miletic I, Quinn S, Vaculik V, Champagne M: An industrial perspective on implementing online applications of multivariate statistics. J Process Contr. 2004, 14: 821836. 10.1016/j.jprocont.2004.02.001.View ArticleGoogle Scholar
 Madisetti V: Wireless, networking, radar, sensor array processing, and nonlinear signal processing. The electrical engineering handbook series. 2010, Boca Raton, FL: CRC Press, 116. VII, 2Google Scholar
 Nash JC, Shlien S: Simple Algorithms for the Partial Singular Value Decomposition. Comput J. 1987, 30: 268275. 10.1093/comjnl/30.3.268.View ArticleGoogle Scholar
 Zviagintsev A, Perelman Y, Ginosar R: Algorithms and architectures for low power spike detection and alignment. J Neural Eng. 2006, 3: 3542. 10.1088/17412560/3/1/004.PubMedView ArticleGoogle Scholar
 Snider RK, Bonds AB: Classification of nonstationary neural signals. J Neurosci Methods. 1998, 84: 155166. 10.1016/S01650270(98)001101.PubMedView ArticleGoogle Scholar
 Kim SI, Yoon UC, Kim JS, Kim JS, Kim IY: Adaptable fuzzy CMeans for improved classification as a preprocessing procedure of brain parcellation. J Digit Imaging. 2001, 14: 238240. 10.1007/BF03190353.PubMed CentralPubMedView ArticleGoogle Scholar
 Rosen C, Yuan Z: Supervisory control of wastewater treatment plants by combining principal component analysis and fuzzy cmeans clustering. Water Sci Technol. 2001, 43: 147156.PubMedGoogle Scholar
 Teppola P, Mujunen SP, Minkkinen P: Adaptive Fuzzy CMeans clustering in process monitoring. Chemometr Intell Lab Syst. 1999, 45: 2338. 10.1016/S01697439(98)000872.View ArticleGoogle Scholar
 Stewart CM, Newlands SD, Perachio AA: Spike detection, characterization, and discrimination using feature analysis software written in LabVIEW. Comput Methods Programs Biomed. 2004, 76: 239251. 10.1016/j.cmpb.2004.07.001.PubMedView ArticleGoogle Scholar
 Spacek M, Blanche T, Swindale N: Python for largescale electrophysiology. Front Neuroinform. 2008, 2: 9.PubMed CentralPubMedView ArticleGoogle Scholar
 Garcia S, FourcaudTrocme N: OpenElectrophy: An Electrophysiological Data and AnalysisSharing Framework. Front Neuroinform. 2009, 3: 14.PubMed CentralPubMedView ArticleGoogle Scholar
 Brown EN, Kass RE, Mitra PP: Multiple neural spike train data analysis: stateoftheart and future challenges. Nat Neurosci. 2004, 7: 456461. 10.1038/nn1228.PubMedView ArticleGoogle Scholar
 Buzsaki G: Largescale recording of neuronal ensembles. Nat Neurosci. 2004, 7: 446451. 10.1038/nn1233.PubMedView ArticleGoogle Scholar
 Quiroga RQ, Panzeri S: Extracting information from neuronal populations: information theory and decoding approaches. Nat Rev Neurosci. 2009, 10: 173185.View ArticleGoogle Scholar
Copyright
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.