Skip to content

Commit 14517a2

Browse files
authored
Merge pull request #64 from kabilar/main
Update README
2 parents 1f7a2a3 + b3f5b29 commit 14517a2

File tree

2 files changed

+79
-99
lines changed

2 files changed

+79
-99
lines changed

Background.md

Lines changed: 0 additions & 73 deletions
This file was deleted.

README.md

Lines changed: 79 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,85 @@
11
# DataJoint Element - Array Electrophysiology Element
22

3-
This repository features DataJoint pipeline design for extracellular array electrophysiology,
4-
with ***Neuropixels*** probe and ***kilosort*** spike sorting method.
3+
+ This repository features DataJoint pipeline design for extracellular array electrophysiology,
4+
with Neuropixels probe and Kilosort spike sorting method.
55

6-
The pipeline presented here is not a complete pipeline by itself, but rather a modular
6+
+ The pipeline presented here is not a complete pipeline by itself, but rather a modular
77
design of tables and dependencies specific to the extracellular electrophysiology workflow.
88

9-
This modular pipeline element can be flexibly attached downstream
9+
+ This modular pipeline element can be flexibly attached downstream
1010
to any particular design of experiment session, thus assembling a fully functional
1111
ephys pipeline.
1212

13-
See [Background](Background.md) for the background information and development timeline.
13+
+ See the [Element Array Electrophysiology documentation](https://elements.datajoint.org/description/array_ephys/) for the background information and development timeline.
14+
15+
+ For more information on the DataJoint Elements project, please visit https://elements.datajoint.org. This work is supported by the National Institutes of Health.
1416

1517
## Element architecture
1618

1719
![element-array-ephys diagram](images/attached_array_ephys_element.svg)
1820

19-
As the diagram depicts, the array ephys element starts immediately downstream from ***Session***,
20-
and also requires some notion of ***Location*** as a dependency for ***InsertionLocation***. We
21+
As the diagram depicts, the array ephys element starts immediately downstream from `Session`,
22+
and also requires some notion of `Location` as a dependency for `InsertionLocation`. We
2123
provide an [example workflow](https://github.com/datajoint/workflow-array-ephys/) with a
2224
[pipeline script](https://github.com/datajoint/workflow-array-ephys/blob/main/workflow_array_ephys/pipeline.py)
2325
that models (a) combining this Element with the corresponding [Element-Session](https://github.com/datajoint/element-session)
24-
, and (b) declaring a ***SkullReference*** table to provide Location.
26+
, and (b) declaring a `SkullReference` table to provide Location.
27+
28+
## Table descriptions
29+
30+
### Probe & electrodes
31+
32+
The `probe` schema contains information regarding the Neuropixels probe and electrode configuration.
2533

26-
### The design of probe
34+
<details>
35+
<summary>Click to expand details</summary>
2736

28-
+ ***ProbeType*** - a lookup table specifying the type of Neuropixels probe (e.g. "neuropixels 1.0", "neuropixels 2.0 single-shank")
29-
+ ***ProbeType.Electrode*** - all electrode and their properties for a particular probe type
37+
+ `ProbeType` - a lookup table specifying the type of Neuropixels probe (e.g. "neuropixels 1.0", "neuropixels 2.0 single-shank")
38+
39+
+ `ProbeType.Electrode` - all electrode and their properties for a particular probe type
3040
+ 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)
31-
+ ***Probe*** - record of an actual physical probe, identifiable by some unique ID (e.g. probe's serial number)
32-
+ ***ElectrodeConfig*** - particular electrode configuration to be used for ephys recording
33-
+ ***ElectrodeConfig.Electrode*** - corresponding electrodes in ***ProbeType.Electrode*** that are used for recording in this electrode configuration (e.g. for Neuropixels 1.0 or 2.0, there can be at most 384 electrodes usable for recording per probe)
3441

35-
### Extracellular ephys recording
42+
+ `Probe` - record of an actual physical probe, identifiable by some unique ID (e.g. probe's serial number)
43+
44+
+ `ElectrodeConfig` - particular electrode configuration to be used for ephys recording
45+
46+
+ `ElectrodeConfig.Electrode` - corresponding electrodes in `ProbeType.Electrode` that are used for recording in this electrode configuration (e.g. for Neuropixels 1.0 or 2.0, there can be at most 384 electrodes usable for recording per probe)
47+
48+
</details>
49+
50+
### Extracellular electrophysiology recording
51+
52+
The `ephys` schema stores information regarding the recording from a probe for a given session.
53+
54+
<details>
55+
<summary>Click to expand details</summary>
56+
57+
+ `ProbeInsertion` - a surgical insertion of a probe in the brain. Every experimental session consists of one or more entries in `ProbeInsertion` with a corresponding `InsertionLocation` each
58+
59+
+ `EphysRecording` - each `ProbeInsertion` is accompanied by a corresponding `EphysRecording`, specifying the `ElectrodeConfig` used for the recording from the `Probe` defined in such `ProbeInsertion`
60+
61+
</details>
3662

37-
+ ***ProbeInsertion*** - a surgical insertion of a probe in the brain. Every experimental session consists of one or more entries in ***ProbeInsertion*** with a corresponding ***InsertionLocation*** each
38-
+ ***EphysRecording*** - each ***ProbeInsertion*** is accompanied by a corresponding ***EphysRecording***, specifying the ***ElectrodeConfig*** used for the recording from the ***Probe*** defined in such ***ProbeInsertion***
39-
4063
### Clusters and spikes
4164

42-
This ephys element features automatic ingestion for spike sorting results from the ***kilosort*** method.
65+
The `ephys` schema features automatic ingestion of spike sorting results from the `Kilosort` analysis method.
66+
67+
<details>
68+
<summary>Click to expand details</summary>
4369

44-
+ ***Clustering*** - specify instance(s) of clustering on an ***EphysRecording***, by some ***ClusteringMethod***
45-
+ ***Curation*** - specify instance(s) of curations performed on the output of a given ***Clustering***
46-
+ ***CuratedClustering*** - set of results from a particular round of clustering/curation
47-
+ ***CuratedClustering.Unit*** - Identified unit(s) from one ***Curation***, and the associated properties (e.g. cluster quality, spike times, spike depths, etc.)
48-
+ ***WaveformSet*** - A set of spike waveforms for units from a given CuratedClustering
70+
+ `Clustering` - specify instance(s) of clustering on an `EphysRecording`, by some `ClusteringMethod`
71+
72+
+ `Curation` - specify instance(s) of curations performed on the output of a given `Clustering`
73+
74+
+ `CuratedClustering` - set of results from a particular round of clustering/curation
75+
+ `CuratedClustering.Unit` - Identified unit(s) from one `Curation`, and the associated properties (e.g. cluster quality, spike times, spike depths, etc.)
76+
+ `WaveformSet` - A set of spike waveforms for units from a given CuratedClustering
77+
78+
</details>
4979

5080
## Installation
81+
<details>
82+
<summary>Click to expand details</summary>
5183

5284
+ Install `element-array-ephys`
5385
```
@@ -60,17 +92,22 @@ This ephys element features automatic ingestion for spike sorting results from t
6092
```
6193
6294
+ Install `element-interface`
63-
6495
+ `element-interface` is a dependency of `element-array-ephys`, however it is not contained within `requirements.txt`.
65-
6696
```
6797
pip install "element-interface @ git+https://github.com/datajoint/element-interface"
6898
```
6999
100+
</details>
101+
70102
## Usage
71103
72104
### Element activation
73105
106+
When using this Element, one needs to run `ephys.activate` to declare the schemas and tables on the database.
107+
108+
<details>
109+
<summary>Click to expand details</summary>
110+
74111
To activate the `element-array-ephys`, ones need to provide:
75112
76113
1. Schema names
@@ -90,6 +127,22 @@ For more detail, check the docstring of the `element-array-ephys`:
90127
help(probe.activate)
91128
help(ephys.activate)
92129
130+
</details>
131+
93132
### Example usage
94133
95134
See [this project](https://github.com/datajoint/workflow-array-ephys) for an example usage of this Array Electrophysiology Element.
135+
136+
## Citation
137+
138+
+ If your work uses DataJoint and DataJoint Elements, please cite the respective Research Resource Identifiers (RRIDs) and manuscripts.
139+
140+
+ DataJoint for Python or MATLAB
141+
+ Yatsenko D, Reimer J, Ecker AS, Walker EY, Sinz F, Berens P, Hoenselaar A, Cotton RJ, Siapas AS, Tolias AS. DataJoint: managing big scientific data using MATLAB or Python. bioRxiv. 2015 Jan 1:031658. doi: https://doi.org/10.1101/031658
142+
143+
+ DataJoint ([RRID:SCR_014543](https://scicrunch.org/resolver/SCR_014543)) - DataJoint for `<Select Python or MATLAB>` (version `<Enter version number>`)
144+
145+
+ DataJoint Elements
146+
+ Yatsenko D, Nguyen T, Shen S, Gunalan K, Turner CA, Guzman R, Sasaki M, Sitonic D, Reimer J, Walker EY, Tolias AS. DataJoint Elements: Data Workflows for Neurophysiology. bioRxiv. 2021 Jan 1. doi: https://doi.org/10.1101/2021.03.30.437358
147+
148+
+ DataJoint Elements ([RRID:SCR_021894](https://scicrunch.org/resolver/SCR_021894)) - Element Array Electrophysiology (version `<Enter version number>`)

0 commit comments

Comments
 (0)