|
1 |
| -# elements-ephys |
2 |
| -DataJoint Elements for Extracellular Electrophysiology - U24 effort |
| 1 | +# DataJoint Element - Canonical Electrophysiology |
| 2 | +DataJoint Element for electrophysiology. |
| 3 | +This repository features DataJoint pipeline design for extracellular electrophysiology, |
| 4 | +with ***Neuropixels*** probe and ***kilosort*** spike sorting method. |
| 5 | + |
| 6 | +The pipeline presented here is not a complete pipeline by itself, but rather a modular |
| 7 | +design of tables and dependencies specific to the extracellular electrophysiology workflow. |
| 8 | + |
| 9 | +This modular pipeline element can be flexibly attached downstream |
| 10 | +to any particular design of experiment session, thus assembling a fully functional |
| 11 | +ephys pipeline. |
| 12 | + |
| 13 | +## The Pipeline Architecture |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | +As the diagram depicts, the ephys element starts immediately downstream from ***Session***, |
| 18 | +and also requires some notion of ***Location*** as a dependency for ***InsertionLocation***. |
| 19 | + |
| 20 | +### The design of probe |
| 21 | + |
| 22 | ++ ***ProbeType*** - a lookup table specifying the type of Neuropixels probe (e.g. "neuropixels 1.0", "neuropixels 2.0 single-shank") |
| 23 | ++ ***ProbeType.Electrode*** - all electrode and their properties for a particular probe type |
| 24 | + + An electrode here refers to one recordable electrode site on the Neuropixels probe (e.g. for Neuropixels 1.0, there are 960 sites per shank) |
| 25 | ++ ***Probe*** - record of an actual physical probe, identifiable by some unique ID (e.g. probe's serial number) |
| 26 | ++ ***ElectrodeConfig*** - particular electrode configuration to be used for ephys recording |
| 27 | ++ ***ElectrodeConfig.Electrode*** - corresponding electrodes in ***ProbeType.Electrode*** that are used for recording in this electrode configuration |
| 28 | +(e.g. for Neuropixels 1.0 or 2.0, there can be at most 384 electrodes usable for recording per probe) |
| 29 | + |
| 30 | +### Extracellular ephys recording |
| 31 | + |
| 32 | ++ ***ProbeInsertion*** - a surgical insertion of a probe onto the animal. |
| 33 | +Every experimental session consists of one or more ***ProbeInsertion***, with corresponding ***InsertionLocation*** |
| 34 | ++ ***EphysRecording*** - each ***ProbeInsertion*** is accompanied by a corresponding ***EphysRecording***, |
| 35 | +specifying the ***ElectrodeConfig*** used for the recording from the ***Probe*** defined in such ***ProbeInsertion*** |
| 36 | + + ***get_npx_data_dir*** method - the class ***EphysRecording*** requires user |
| 37 | + to supply a method to retrieve the directory containing the recorded neuropixels data (e.g. `*.ap.meta`, `*.ap.bin`, etc.), |
| 38 | + where the method's input arguments are the primary attributes identifying one ***EphysRecording*** |
| 39 | + |
| 40 | +### Clusters and spikes |
| 41 | + |
| 42 | +This ephys element features automatic ingestion for spike sorting results from the ***kilosort*** method. |
| 43 | + |
| 44 | ++ ***Clustering*** - specify instance(s) of clustering on an ***EphysRecording***, by some ***ClusteringMethod*** |
| 45 | + + ***get_ks_data_dir*** method - the class ***Clustering*** requires user |
| 46 | + to supply a method to retrieve the directory containing the kilosort results, |
| 47 | + where the method's input arguments are the primary attributes identifying one ***Clustering*** |
| 48 | ++ ***Unit*** - Identified unit(s) from one ***Clustering***, with associated ***ClusterQualityLabel*** |
| 49 | + + ***UnitSpikeTimes*** - spike times per unit |
| 50 | + + ***Waveform*** - mean waveform across spikes per unit per recording electrode |
| 51 | + |
| 52 | + |
| 53 | +## Usage |
| 54 | + |
| 55 | +See [this project](https://github.com/vathes/canonical-full-ephys-pipeline) for an example usage of this ephys pipeline element. |
0 commit comments