Skip to content

GUI for semi-automatic single neuron classification by cell type

Notifications You must be signed in to change notification settings

edmerix/UnitSubclassify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

UnitSubclassify

My GUI for sub-classification of single units by cell-type, working on data stored in my MultipleUnits/SingleUnit objects. Screenshots below.

It is semi-automatic, making use of the mean-autocorrelation lag (within 100 ms) of each unit (AC lag), the spike full-width at half-maximum (FWHM), delay from the spike valley to its following peak (VtoP), and the firing rate (FR).

You can set it to use any combination of these metrics for the automatic clustering (by default it uses all), and the plots simultaneously show the overall clustering results, and the clustering results when using just pairs of metrics.

Note that I remain skeptical about cell-type subclassifications in (human) neocortical recordings, as a major component of traditional classification is the spike shape – a feature which is heavily biased by the electrode tip's position on the cell's axo-dendritic axis (Gold et al., 2006). This relationship tends to automatically separate units by cell type in regions such as the hippocampus with its neat layers, just by their position relative to the recording electrode, whereas the neocortex is a bit less neatly structured...

That said, there have been some convincing subclassifications in human neocortical recordings that show physiologically plausible activity by cell type (Peyrache et al., 2012).

(Also, a subset of pyramidal cells have been shown to have spike half-widths that are typically thought of as a feature of fast-spiking interneurons (Vigneswaran et al., 2011), however this may be limited to the relatively rare Betz cells in M1.)

Dependencies

It is designed to be used with my MultipleUnits/SingleUnit objects, though the data structure could easily be mimicked without using those classes.

Beyond that, it depends on 3 (fairly standard) Matlab toolboxes:

  • Stats
  • Curve fitting
  • Signal processing

Usage

% where data = %MultipleUnits instance%

app = UnitSubclassify(data,'setting_name','setting_value');

Settings are provided in name, value pairs:

Setting Description Default value
ClusterWith Which metrics to use for clustering (cell array) {'AC lag','FR','VtoP','FWHM'}
Fullscreen Start fullscreen (bool) false
Height Starting height of window (px) 1440
Width Starting width of window (px) 900
Debugging Whether to show debugging messages (bool) false
Smoothing Whether to smooth the broadband waveforms (bool) true
SmoothFactor What factor to smooth with, if smoothing (double) 0.15
Uprate Multiple of original sampling frequency to interpolate up to (double) 4
JitterWidth Window in which true spike trough can be searched for when aligning (ms) 0.1
Pre Time to keep before the spike trough (ms) 2
Post Time to keep after the spike trough (ms) 2
MaxACLag Period over which the mean autocorrelation lag is calculated (s) 0.1
Fieldname Name of the wideband spikes stored (if using SingleUnit object, cannot be altered) (string) 'wideband'
Keypoint Data point where the spike trough is roughly anticipated to be (int) 90

Screenshots

Screenshot of UnitSubclassify on a putative interneuron

Screenshot of UnitSubclassify on a putative pyramidal cell

Releases

No releases published

Packages

No packages published

Languages