Kilosort is a state-of-the-art neural signal processing algorithm designed for the analysis of large-scale neural recordings. It excels in sorting spikes in high-density multielectrode array recordings, making it an essential tool for neuroscientists.
python-kilosort -h
Allocate an interactive session and run the program.
Sample session (user input in bold):
[user@biowulf]$ sinteractive --gres=gpu:p100:1 --mem=8g salloc.exe: Pending job allocation 46116226 salloc.exe: job 46116226 queued and waiting for resources salloc.exe: job 46116226 has been allocated resources salloc.exe: Granted job allocation 46116226 salloc.exe: Waiting for resource configuration salloc.exe: Nodes cn3144 are ready for job [user@cn3144 ~]$ module load kilosort [user@cn3144 ~]$ mkdir /data/$USER/kilosort_test/ [user@cn3144 ~]$ cd /data/$USER/kilosort_test/ [user@cn3144 ~]$ python-kilosort -c "from kilosort import io" [user@cn3144 ~]$ exit salloc.exe: Relinquishing job allocation 46116226 [user@biowulf ~]$
Open kilosort-gui inside of NoMachine:
[user@biowulf]$ sinteractive --gres=gpu:p100:1 --mem=8g salloc.exe: Pending job allocation 46116226 salloc.exe: job 46116226 queued and waiting for resources salloc.exe: job 46116226 has been allocated resources salloc.exe: Granted job allocation 46116226 salloc.exe: Waiting for resource configuration salloc.exe: Nodes cn3144 are ready for job [user@cn3144 ~]$ module load kilosort [user@cn3144 ~]$ kilosort-gui
Create a batch input file (e.g. kilosort.sh). For example:
#!/bin/bash
set -e
module load kilosort
python-kilosort xxx
Submit this job using the Slurm sbatch command.
sbatch --partition=gpu --gres=gpu:p100:1 --mem=8g kilosort.sh
Create a swarmfile (e.g. kilosort.swarm). For example:
python-kilosort xxx python-kilosort xxx
Submit this job using the swarm command.
swarm -f kilosort.swarm [-t #] [-g #] --partition=gpu --gres=gpu:p100:1 --module kilosort
-g # | Number of Gigabytes of memory required for each process (1 line in the swarm command file) |
-t # | Number of threads/CPUs required for each process (1 line in the swarm command file). |
--module kilosort | Loads the kilosort module for each subjob in the swarm |