项目作者: pxchen95

项目描述 :
Neural spike sorting algorithms for overlapping spikes in MATLAB.
高级语言: MATLAB
项目地址: git://github.com/pxchen95/overlappingspikes.git
创建时间: 2017-03-16T20:17:29Z
项目社区:https://github.com/pxchen95/overlappingspikes

开源协议:

下载


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