/workflow-array-ephys

Example DataJoint workflow of `element-array-ephys` - NIH U24

Primary LanguageJupyter NotebookMIT LicenseMIT

DataJoint Workflow - Array Electrophysiology

Workflow for extracellular array electrophysiology data acquired with a polytrode probe (e.g. Neuropixels, Neuralynx) using the SpikeGLX or OpenEphys acquisition software and processed with MATLAB-based Kilosort or python-based Kilosort spike sorting software.

A complete electrophysiology workflow can be built using the DataJoint Elements.

This repository provides demonstrations for:

  1. Set up a workflow using DataJoint Elements (see workflow_array_ephys/pipeline.py)

  2. Ingestion of data/metadata based on a predefined file structure, file naming convention, and directory lookup methods (see workflow_array_ephys/paths.py).

  3. Ingestion of clustering results.

  4. Export of no_curation schema to NWB and DANDI (see notebooks/09-NWB-export.ipynb).

See the Element Array Electrophysiology documentation for the background information and development timeline.

For more information on the DataJoint Elements project, please visit https://elements.datajoint.org. This work is supported by the National Institutes of Health.

Workflow architecture

The electrophysiology workflow presented here uses components from 4 DataJoint Elements (element-lab, element-animal, element-session, element-array-ephys) assembled together to form a fully functional workflow. Note that element-array-ephys offers three schema options, selected via the DataJoint config file, with dj.config['custom']['ephys_mode']

  • acute probe insertion, with curated clustering
  • chronic probe insertion, with curated clustering
  • no-curation, acute probe insertion with kilosort triggered clustering and supported NWB export
  • precluster, acute probe insertion with pre-processing steps prior to clustering and curated clustering

Ephys Diagram

Optionally, this can be used in conjunction with element-event and element-electrode-localization.

Diagram with trial schema

Diagram with localization schema

Installation instructions

The installation instructions can be found at the DataJoint Elements documentation.

Interacting with the DataJoint workflow

Please refer to the workflow-specific Jupyter notebooks for an in-depth explanation of how to ...

  1. Run the workflow (03-process.ipynb).

  2. Explore the data (05-explore.ipynb).

  3. Examine trialized analyses, and establish downstream analyses (07-downstream-analysis.ipynb)

  4. Locate probes within the Common Coordinate Framework (08-electrode-localization.ipynb)

  5. Export to NWB and DANDI (09-NWB-export.ipynb)

See our YouTube tutorial for a walkthrough of the schemas and functions: YouTube tutorial

Citation

If your work uses DataJoint and DataJoint Elements, please cite the respective Research Resource Identifiers (RRIDs) and manuscripts.

  • DataJoint for Python or MATLAB

    • 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

    • DataJoint (RRID:SCR_014543) - DataJoint for <Select Python or MATLAB> (version <Enter version number>)

  • DataJoint Elements

    • 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

    • DataJoint Elements (RRID:SCR_021894) - Element Array Electrophysiology (version <Enter version number>)