项目作者: pxchen95
项目描述 :
Neural spike sorting algorithms for overlapping spikes in MATLAB.
高级语言: MATLAB
项目地址: git://github.com/pxchen95/overlappingspikes.git
overlappingspikes
Neural spike sorting algorithms for overlapping spikes. Algorithms are all written in MATLAB. Completed as a senior thesis project, advised by Professor Alexander H. Barnett.
- maindriver.m: sorts spikes with and without penalty, with and without time shifts
- decision_bound.m: plots the decision boundaries in the 2-spike case for all algorithms in notimeshifts
synthesis
Creation of synthetic spike signals.
Functions:
- synth.m: synthesizes spike signals (without noise)
- gen_firing.m: generates firing times using a Poisson distribution
Drivers:
- demo_synth.m: tests synth.m, gen_firing.m
detectspikes
Spike detection via maximum likelihood.
Drivers:
- binarytest.m: detection of one vs. no spike using linear classifiers
notimeshifts
Sorting spikes without time shifts. These functions cannot handle sorting spikes with time shifts.
Functions:
- brute_force.m: brute force, NO time shifts, NO penalty
- greedy_sort.m: simple greedy, NO time shifts, NO penalty
- FoBa.m: forward-backward greedy algorithm, currently is no different than greedy_sort.m (in performance)
- count.m: counts the errors for sorting spikes WITHOUT time shifts
Drivers:
- driver_count.m: tests every possible case for count.m
- driver_brute.m: shows that brute-force gets 100% accuracy at eta = 0
- driver_foba.m: compares sorting by simple greedy and foba, shows that error fractions match exactly
timeshifts
Soring spikes with time shifts. These functions can also handle sorting spikes without time shifts.
Functions:
Drivers:
- driver_count_ts2: tests every possible case for count_ts2.m
realdata
Run algorithms on data from Harris, et al. “Accuracy of tetrode spike separation as determined by simultaneous intracellular and extracellular measurements.”
- harrisdata.mat: clips resulting from getharrisdata.m, ready to be sorted
Drivers:
- getharrisdata.m: written by A. H. Barnett, filters harrisdata, extracts clips, uses clustering algotihm to sort clips
- driver_harris.m: sorts the real clips from harrisdata.mat
- driver_harris2.m: creates and sorts synthetic clips using the spike templates (with time shifts) from harrisdata.mat
other