8 April 2024 | Marius Pachitariu, Shashwat Sridhar, Jacob Pennington & Carsen Stringer
Kilosort4 is a spike-sorting algorithm that improves upon previous versions by incorporating graph-based clustering methods. Spike sorting involves identifying individual neurons from recordings of local electrical fields, a challenging task due to nonstationarity and overlapping signals. Kilosort4 uses a graph-based clustering approach based on modularity optimization, combined with a merging tree strategy that uses metadata to make merge/split decisions. This method outperforms other algorithms in various simulated conditions, especially in high drift scenarios where neurons have low amplitudes and small spatial extents.
The algorithm includes a template deconvolution process that detects all spikes, including overlapping ones, and extracts spike features after removing background noise. This process uses principal components identified from single-channel waveforms and clusters them using the graph-based algorithm from Kilosort4. The learned templates are then used in the matching pursuit step to detect overlapping spikes.
Kilosort4 was tested on simulations with and without drift, showing superior performance compared to other algorithms. It was also tested on real data from the International Brain Laboratory, demonstrating its effectiveness in identifying neurons even in the presence of drift. The algorithm's performance was benchmarked against other spike-sorting algorithms, with Kilosort4 consistently outperforming them, especially in high drift conditions.
The algorithm's performance was further validated through ablation studies, where certain steps were disabled to assess their impact on results. These studies showed that steps such as drift correction, deconvolution, and cross-correlogram-based merges/splits significantly affected performance. However, the clustering algorithm itself was found to be robust to non-deconvolved features and without full nonrigid motion correction.
Kilosort4 is implemented in Python and uses GPU acceleration for efficient processing of large datasets. It is compatible with various types of probes and recording methods, and its performance is robust across different data formats and conditions. The algorithm's effectiveness in spike sorting is supported by its ability to accurately identify neurons even in complex and noisy environments.Kilosort4 is a spike-sorting algorithm that improves upon previous versions by incorporating graph-based clustering methods. Spike sorting involves identifying individual neurons from recordings of local electrical fields, a challenging task due to nonstationarity and overlapping signals. Kilosort4 uses a graph-based clustering approach based on modularity optimization, combined with a merging tree strategy that uses metadata to make merge/split decisions. This method outperforms other algorithms in various simulated conditions, especially in high drift scenarios where neurons have low amplitudes and small spatial extents.
The algorithm includes a template deconvolution process that detects all spikes, including overlapping ones, and extracts spike features after removing background noise. This process uses principal components identified from single-channel waveforms and clusters them using the graph-based algorithm from Kilosort4. The learned templates are then used in the matching pursuit step to detect overlapping spikes.
Kilosort4 was tested on simulations with and without drift, showing superior performance compared to other algorithms. It was also tested on real data from the International Brain Laboratory, demonstrating its effectiveness in identifying neurons even in the presence of drift. The algorithm's performance was benchmarked against other spike-sorting algorithms, with Kilosort4 consistently outperforming them, especially in high drift conditions.
The algorithm's performance was further validated through ablation studies, where certain steps were disabled to assess their impact on results. These studies showed that steps such as drift correction, deconvolution, and cross-correlogram-based merges/splits significantly affected performance. However, the clustering algorithm itself was found to be robust to non-deconvolved features and without full nonrigid motion correction.
Kilosort4 is implemented in Python and uses GPU acceleration for efficient processing of large datasets. It is compatible with various types of probes and recording methods, and its performance is robust across different data formats and conditions. The algorithm's effectiveness in spike sorting is supported by its ability to accurately identify neurons even in complex and noisy environments.