Our lab has been using MoutainSort/MountainLab1 as a spike sorting algorithm (previously used KlustaKwik). In the referenced Neuron paper, Chung et al provided evidence that this algorithm is better than the existing automated methods (Kilosort, Spyking Circus, and etc.). Not only was this method proposed to do better than existing methods, but it also requires minimal (or no) parameter tuning, thus making it a standardized technique.
A primary issue for me when it came to using MountainSort is that it requires the use of Linux (they specify Ubuntu 16.04, but that it should work on other Linux distributions)2, while my recording software requires Windows. As someone who has looked over the MountainSort code (and contributed to some of the pre-processing code), it might be difficult to envision future Windows compatibility. This is due to MountainSort leveraging the utility of the multiprocessing module to parallelize the code. The multiprocessing module within Windows has always been quite finicky, and MountainSort likely would have to be rewritten to be compatible with Windows.
That being said, I have created a workflow that will allow me to use Windows to sort with MountainSort.
Requirements:
- Operating System: Windows 10. This requires Windows 10 as it requires the user of the Windows Subsystem for Linux (WSL). The WSL will allow us to have a GNU/Linux environment that MountainSort requires. As far as I know, the WSL is only compatible with Windows 10 (correct me if I'm wrong).
Resources
- Chung, J. E., Magland, J. F., Barnett, A. H., Tolosa, V. M., Tooker, A. C., Lee, K. Y., ... Greengard, L. (2017). A Fully Automated Approach to Spike Sorting. Neuron, 95(6), 1381-1394.e6. https://doi.org/10.1016/j.neuron.2017.08.030 https://www.cell.com/neuron/fulltext/S0896-6273(17)30745-6
- Old MountainSort Documentation https://mountainsort.readthedocs.io/en/latest/