|
1 | 1 | # DataJoint Workflow - Array Electrophysiology
|
2 | 2 |
|
3 |
| -Workflow for extracellular array electrophysiology data acquired with a polytrode probe |
| 3 | +DataJoint Workflow for extracellular array electrophysiology combines multiple DataJoint Elements to process data acquired with a polytrode probe |
4 | 4 | (e.g. [Neuropixels](https://www.neuropixels.org), Neuralynx) using the
|
5 | 5 | [SpikeGLX](https://github.com/billkarsh/SpikeGLX) or
|
6 | 6 | [OpenEphys](https://open-ephys.org/gui) acquisition software and processed with
|
7 | 7 | [MATLAB-based Kilosort](https://github.com/MouseLand/Kilosort) or [python-based
|
8 |
| -Kilosort](https://github.com/MouseLand/pykilosort) spike sorting software. |
| 8 | +Kilosort](https://github.com/MouseLand/pykilosort) spike sorting software. DataJoint Elements collectively standardize and automate data collection and analysis for neuroscience experiments. Each Element is a modular pipeline for data storage and processing with corresponding database tables that can be combined with other Elements to assemble a fully functional pipeline. |
9 | 9 |
|
10 |
| -A complete electrophysiology workflow can be built using the DataJoint Elements. |
| 10 | +To get started, see below for an [interactive tutorial](#interactive-tutorial) on GitHub Codespaces. More information can be found at the |
| 11 | +[Element documentation page](https://datajoint.com/docs/elements/element-array-ephys). |
11 | 12 |
|
12 |
| -+ [element-lab](https://github.com/datajoint/element-lab) |
13 |
| -+ [element-animal](https://github.com/datajoint/element-animal) |
14 |
| -+ [element-session](https://github.com/datajoint/element-session) |
15 |
| -+ [element-array-ephys](https://github.com/datajoint/element-array-ephys) |
| 13 | +## Experiment flowchart |
16 | 14 |
|
17 |
| -This repository provides demonstrations for: |
| 15 | + |
18 | 16 |
|
19 |
| -1. Set up a workflow using DataJoint Elements (see |
20 |
| - [workflow_array_ephys/pipeline.py](workflow_array_ephys/pipeline.py)) |
| 17 | +## Data pipeline for acute experiment |
21 | 18 |
|
22 |
| -2. Ingestion of data/metadata based on a predefined file structure, file naming |
23 |
| - convention, and directory lookup methods (see |
24 |
| - [workflow_array_ephys/paths.py](workflow_array_ephys/paths.py)). |
| 19 | + |
25 | 20 |
|
26 |
| -3. Ingestion of clustering results. |
| 21 | +## Interactive tutorial |
27 | 22 |
|
28 |
| -4. Export of `no_curation` schema to NWB and DANDI (see |
29 |
| - [notebooks/09-NWB-export.ipynb](notebooks/09-NWB-export.ipynb)). |
| 23 | +The easiest way to learn about DataJoint Elements is to use the tutorial notebook within a [GitHub Codespace](https://docs.github.com/en/codespaces/overview). Please follow the steps below for the best experience: |
30 | 24 |
|
31 |
| -See the [Element Array Electrophysiology documentation](https://elements.datajoint.org/description/array_ephys/) |
32 |
| -for the background information and development timeline. |
| 25 | +1. Fork this repository to your GitHub account. |
33 | 26 |
|
34 |
| -For more information on the DataJoint Elements project, please visit |
35 |
| -<https://elements.datajoint.org>. This work is supported by the National Institutes of |
36 |
| -Health. |
| 27 | +2. Select the green `Code` button. |
37 | 28 |
|
38 |
| -## Workflow architecture |
| 29 | +3. Within the dropdown menu, select the `Codespaces` tab. |
39 | 30 |
|
40 |
| -The electrophysiology workflow presented here uses components from 4 DataJoint Elements |
41 |
| -([element-lab](https://github.com/datajoint/element-lab), |
42 |
| -[element-animal](https://github.com/datajoint/element-animal), |
43 |
| -[element-session](https://github.com/datajoint/element-session), |
44 |
| -[element-array-ephys](https://github.com/datajoint/element-array-ephys)) assembled |
45 |
| -together to form a fully functional workflow. Note that element-array-ephys offers three |
46 |
| -schema options, selected via the DataJoint config file, with |
47 |
| -`dj.config['custom']['ephys_mode']` |
| 31 | +4. Select the green `Create codespace on main` button. |
48 | 32 |
|
49 |
| -+ `acute` probe insertion, with curated clustering |
50 |
| -+ `chronic` probe insertion, with curated clustering |
51 |
| -+ `no-curation`, acute probe insertion with kilosort triggered clustering and supported |
52 |
| - NWB export |
53 |
| -+ `precluster`, acute probe insertion with pre-processing steps prior to clustering and |
54 |
| - curated clustering |
| 33 | +5. The environment is ready when a Visual Studio Code window is rendered within your browser. This takes ~5 minutes the first time being launched, and ~1 minute if you revisit this Codespace. |
55 | 34 |
|
56 |
| - |
| 35 | +6. Navigate to the `notebooks` directory on the left panel and open the `tutorial.ipynb` Jupyter notebook. Execute the cells in this notebook to begin your walk through the tutorial. |
57 | 36 |
|
58 |
| -Optionally, this can be used in conjunction with |
59 |
| -[element-event](https://github.com/datajoint/element-event) |
60 |
| -and [element-electrode-localization](https://github.com/datajoint/element-electrode-localization/). |
| 37 | +7. Once you are done, GitHub will automatically stop the Codespace after 30 minutes of inactivity or you can manually stop the Codespace. |
61 | 38 |
|
62 |
| - |
| 39 | +8. After stopping the Codespace, we recommend deleting the Codespace to save on storage costs, which are free for the first 15 GB-month. |
63 | 40 |
|
64 |
| - |
| 41 | ++ If you are new to GitHub and run into any errors, please contact us via email at support@datajoint.com. If you are experienced with GitHub, please create an issue on the upstream repository or issue a pull request with a thorough explanantion of the error and proposed solution. |
65 | 42 |
|
66 |
| -## Installation instructions |
| 43 | +**Please Note:** |
67 | 44 |
|
68 |
| -The installation instructions can be found at the |
69 |
| -[DataJoint Elements documentation](https://elements.datajoint.org/usage/install/). |
70 |
| - |
71 |
| -## Interacting with the DataJoint workflow |
72 |
| - |
73 |
| -Please refer to the workflow-specific |
74 |
| -[Jupyter notebooks](/notebooks) |
75 |
| -for an in-depth explanation of how to ... |
76 |
| - |
77 |
| -1. Run the workflow ([03-process.ipynb](notebooks/03-process.ipynb)). |
78 |
| - |
79 |
| -2. Explore the data ([05-explore.ipynb](notebooks/05-explore.ipynb)). |
80 |
| - |
81 |
| -3. Examine trialized analyses, and establish downstream analyses |
82 |
| - ([07-downstream-analysis.ipynb](notebooks/07-downstream-analysis.ipynb)) |
83 |
| - |
84 |
| -4. Locate probes within the |
85 |
| - [Common Coordinate Framework](https://www.sciencedirect.com/science/article/pii/S0092867420304025) |
86 |
| - ([08-electrode-localization.ipynb](notebooks/08-electrode-localization.ipynb)) |
87 |
| - |
88 |
| -5. Export to NWB and DANDI ([09-NWB-export.ipynb](notebooks/09-NWB-export.ipynb)) |
89 |
| - |
90 |
| -See our YouTube tutorial for a walkthrough of the schemas and functions: |
91 |
| - [](https://www.youtube.com/watch?v=KQlGYOBq7ow) |
92 |
| - |
93 |
| -## Citation |
94 |
| - |
95 |
| -If your work uses DataJoint and DataJoint Elements, please cite the respective Research |
96 |
| -Resource Identifiers (RRIDs) and manuscripts. |
97 |
| - |
98 |
| -+ DataJoint for Python or MATLAB |
99 |
| - + Yatsenko D, Reimer J, Ecker AS, Walker EY, Sinz F, Berens P, Hoenselaar A, Cotton |
100 |
| - RJ, Siapas AS, Tolias AS. DataJoint: managing big scientific data using MATLAB or |
101 |
| - Python. bioRxiv. 2015 Jan 1:031658. doi: <https://doi.org/10.1101/031658> |
102 |
| - |
103 |
| - + DataJoint ([RRID:SCR_014543](https://scicrunch.org/resolver/SCR_014543)) - DataJoint |
104 |
| - for `<Select Python or MATLAB>` (version `<Enter version number>`) |
105 |
| - |
106 |
| -+ DataJoint Elements |
107 |
| - + Yatsenko D, Nguyen T, Shen S, Gunalan K, Turner CA, Guzman R, Sasaki M, Sitonic D, |
108 |
| - Reimer J, Walker EY, Tolias AS. DataJoint Elements: Data Workflows for |
109 |
| - Neurophysiology. bioRxiv. 2021 Jan 1. doi: |
110 |
| - <https://doi.org/10.1101/2021.03.30.437358> |
111 |
| - |
112 |
| - + DataJoint Elements ([RRID:SCR_021894](https://scicrunch.org/resolver/SCR_021894)) - |
113 |
| - Element Array Electrophysiology (version `<Enter version number>`) |
| 45 | ++ GitHub Codespaces are limited to 120 core-hours per month and 15 GB-month for free users. Once you exceed this limit, you will have to wait for the hours to reset or pay to use Codespaces. |
0 commit comments