Improve consistency of thresholding tests for spikes/noise:
Filtering: globally rescales data so that max(abs) is 1. Should rescale each
channel separately, to try to ensure noise has equal variance.
Whitening: compares cross-channel L2-norm (CCN) to noise_threshold. Probably
better to compute L2-norm over a few time bins, and then Lp-norm across channels,
to allow for spike waveforms that live on only one or a few channels.
Clustering: originally used 4*std(CCN) to grab spike segments (??). EPS changed
to a constant value of 6, relative to noise stdev (=1). Preferable: User should
set a tolerable error rate (miss+fa), provide a prior on firing rates, and
theshold should be chosen using an SDT calculation!
T= (log(1-pr)-log(pr) + a^2/2)/a, w/ pr=prob of spike in dt, a=spike amplitude
eg: for error rate of 0.1%, with a prior of 1e-3, this is about 8.2
Partitioning (snippets): uses yet another threshold, and additionally relies on
min_separation_length and min/max snippet length parameters. This should
probably be again, an L2 norm over a few times bins, then combined in an Lp norm
over channels.