Releases: MouseLand/Kilosort
Kilosort v4.1.1
This release includes a few minor bug fixes, and a change to versioning requirements for NumPy (now allowing 2.0 and later) and PyTorch (now requiring version 2.1.0 or later).
Existing installations should be unaffected by the version changes unless they were using an old version of PyTorch. However, installing the latest version in a new environment, for example, will likely result in different version of those libraries being installed. Those version differences can change sorting output. That isn't necessarily a bad thing, but it's something to be aware of if comparing results between installations.
Full Changelog: v4.1.0...v4.1.1
Kilosort v4.1.0
This release includes includes a change to the default behavior of the clustering step. For each section of a probe, all spikes will be used in clustering up to a maximum of 25,000 spikes, which is a change from the old default of using every 20th spike (cluster_downsampling parameter) with no maximum spike count (max_cluster_subset parameter). The new settings are better-aligned with the methods published in the Kilosort paper.
The new default dramatically reduces sorting time for long recordings. For two ~13 hour Neuropixels datasets, sorting time was reduced by 65% with no qualitative change to sorting results. The change also did not impact Kilosort4's performance on the published benchmarks. Additionally, we expect better clustering of probe sections with low spike counts since they will be more densely sampled than before.
Full Changelog: 4.0.37...v4.1.0
Kilosort v4.0.37
Fixes several bugs related to path handling and some GUI interactions.
Also adds the option to sort shanks separately through the API or GUI, and adds a new max_cluster_subset parameter to improve performance for long recordings.
Full Changelog: v4.0.33...v4.0.37
Kilosort v4.0.33
This release includes three main changes:
- Added matplotlib versions of the GUI plots to the API. These will be generated during sorting and stored in the results directory in the same manner. This also adds
matplotlibto the list of required dependencies for non-GUI installations. - Updated
kilosort.bench.pyto work with the current version of Kilosort4, and added a tutorial to readthedocs demonstrating how to run the benchmarks: https://kilosort.readthedocs.io/en/latest/tutorials/benchmark.html - The API and GUI will now allow a list of paths to be specified for the filename argument/setting instead of requiring a single path, so that data stored as many files can be sorted without needing to concatenate it. Note that this only applies to binary files (.bin, .raw, etc). The data conversion tool skill expects a single file. If you want similar behavior for another file format, you can accomplish that with the API using
RecordingExtractorAsArrayandBinaryFileGroupfromkilosort.io.
Note for developers: making these changes required some re-organization of run_kilosort. I don't think this will be a problem since the overall argument/return structure is unchanged, but you may run into some differences. For example, filename is stored as a list instead of a Path even if only one path is specified, and that carries through the pipeline to be saved in params.py for Phy.
Full Changelog: v4.0.31...v4.0.33
Kilosort v4.0.31
In addition to several small bug fixes, logging improvements, and GUI improvements, this release includes the following major fixes:
- Fixed #664 regarding misalignment of spike waveforms and features after merging clusters.
- Fixed #858 regarding excessive system memory usage during spike detection.
Full Changelog: v4.0.26...v4.0.31
v4.0.26
NOTE: This release contains a bug affecting some datasets, which is fixed in v4.0.28. If you encounter an error in clustering_qr.run, try updating. If you did not encounter an error, sorting was not affected.
This release improves resource usage during the graph-based clustering step. Users with non-consecutive channel maps in their probe files should see the largest improvement. This should resolve most out-of-memory errors, like those reported in #746 and #775.
Also included are several bug fixes, improved logging, and some new settings (see link below).
Full Changelog: v4.0.22...v4.0.26
v4.0.22
This release contains several bug fixes and a few new features, including:
- Exclude empty clustering centers.
- Error information for unrecognized settings passed to
run_kilosort. - Fixed deprecated
pkg_resourcesreference. - Fixed duplicate templates generated for multi-shank probes.
- Added utility functions for data exploration in
kilosort.data_tools - Switched
max_channel_distancedefault to constant 32. - Command-line options for resetting GUI and launching GUI without auto-loading.
- More content and better formatting in log file.
- Refactored
setup_loggerto not interfere with logging from 3rd-party packages. - Added option to color-code templates by clustering center in probe preview in GUI.
- Added fix for estimated spike positions extending between shanks.
Full Changelog: v4.0.18...v4.0.22
Kilosort v4.0.18
This release adds a fix for warnings related to conflicting BLAS and OpenMP implementations, as well as other misc bug fixes. It also adds logging for resource usage throughout the sorting pipeline.
Full Changelog: v4.0.15...v4.0.18
Kilosort v4.0.15
This release adds:
- Option to specify channels to exclude from sorting through the API and GUI.
- Documentation for output files.
- A new tutorial notebook demonstrating how to modify good/mua labels using custom criteria.
- Option to force-clear PyTorch's reserved GPU memory between some operations, using
clear_cache = True.
Full Changelog: v4.0.14...v4.0.15
v4.0.13
This release contains several bug fixes, changes the duplicate_spike_bins parameter to duplicate_spike_ms (new default 0.25), adds the highpass_cutoff parameter, and improves logging of error messages.
Full Changelog: v4.0.12...v4.0.13