Hi All,
I have a little information to share about Spyking-Circus and a question.
First, we have extensively tested Spyking-Circus on 32-site polytrode recordings. I'm happy to share details but here is what we've learned.
1) The instructions for installing on the website are out of date and there are some bugs. We needed to contact Pierre to get a password to download the code.
2) Spyking-Circus works as advertised in terms of processing speed (processing time is about the same as recording time).
3) We varied spike thresholds from 6 SD to 12 SD and found that different recordings had optimal results at different thresholds. We have not found a variable (overall spiking rate, average channel SD, a rudimentary measure of SNR etc..) that can predict which is appropriate so we will probably have to cluster at multiple thresholds for the time being.
4) We got better results using mean-pca extraction than the default median-raw.
5) Spyking-Circus makes a huge improvement in the data lost to overlapping spikes.
6) It is very difficult to cut apart clusters in the Circus MATLAB GUI.
Regarding this last point, I would very much like to be able to open a Circus file in Phy and refine the sorting. I can see this is possible or intended to be possible but the way to go about it is not entirely clear. Do I need to follow the instructions in the
Circus docs and have a command called circus-gui-python? Or is it true as stated
here, that once I have phy-contrib up and running I should be able t
o "work with data processed with Spyking Circus and KiloSort"? If so, could someone indicate to me which of the Spyking-Circus output files I should use in this command? "phy template-gui ?????"
Regarding KiloSort.
We had our first succesful runthrough with KiloSort a few days ago. It was relatively easy to install, though we haven't attempted GPU processing yet. However, barring some user error on our part, it appears that the instructions for setting up phy and phy-contrib that are in the Phy repository worked for us while the instructions in the KiloSort repository did not. When we used the latter set of instructions I think something went wrong with the 'click' module so that the 'template-gui' subcommand was not created, and it's not obvious how to create the subcommand by hand (even though there is an example for a 'hello world' command).
We are excited about the increase in accuracy and savings in time and computation KiloSort offers and will be testing it on our known data. The first results look very nice in terms of the quality of clustering. However, for the file we tested, we get in the range of 50-60 clusters using klustakwik or spyking-circus. KiloSort returned 31. I assume we need to tweak some parameters, since we just started with the defaults and didn't even make a proper channel map (although I'm not certain the channel map matters in this case?). We look forward to more guidance or info from other users about which parameters affect which outcomes. I currently have no intuition for how annealing template threshold parameters, for instance, should affect the results. We'll try different settings as time allows.
Thanks as always for developing and sharing these tools. Hope this helps.
Kevin Bolding
Franks Lab
Duke University