WaveSorter emphasizes dynamic visualization and versatility. Slider controls let the user select any coefficient or sample from any of several transforms, which can then be plotted to either axis of a 2D histogram (scatterplot). Within the waveform space, cursor-based controls let the user select subregions of the waveform space or individual waveforms to view. The user may cluster waveforms manually or via one of several popular clustering programs. The classification along with waveform properties (width, etc.) can be saved to disk in simple text files. WaveSorter is written in C++, utilizes the GNU Scientific Library for all computation, and is highly parallelized; on modern hardware it can handle files containing several 100,000s of waveforms per channel with almost no noticeable loss in GUI fluidity and <1sec lags for files with >1,000,000 waveforms per channel. It can be run in batch mode. It supports a wide array of binary file formats as well as ASCII text.
- Waveform metrics: Time(stamp), height, width, slope, and slope of differentiated waveform.
- Transforms: PCA, Haar Wavelet, and spline interpolation. Transforms are performed on both raw and differentiated waveforms.
- Clustering algorithms: K-Means++, AutoClass C, Super-Paramagnetic Clustering, and KlustaKwik, as well as manual clustering.
- Select subsets of waveforms from the 2D scatterplot using either a sliding bar, or one of 3 color-coded resizable disks. Simply slide/drag the bar or disks to the desired regions to inspect the waveforms there.
- The time slider allows visualization and clustering to be restricted to a particular time range within the session.
- "Movie" option allows you to view an animated playback of the session as you have clustered it. The animation can progress through time or any other dimension.
- Supports *.apm (FHC), *nev (Neuroshare), *.plx (Plexon), and *M (REX/MEX) file formats, as well as simple ASCII text.
WaveSorter is an effective and easy to use spike-sorting software for identifying units recorded on multiple single electrodes. The displays and user interface are well-designed. This is the only program I have seen that allows you to plot the derivative of the waveform and principal components based on it. These turn out to produce a very large separation between background noise and well-recorded spikes. The timestamps for clustered units can be exported to simple text files for further analysis. One tip: I had to always run the program as an administrator to allow it to make changes as it works. I don't know if this is still the case in newer versions.
Great program. Fast and effective.