Skip to content

drewyangdev/workflow-array-ephys

 
 

Repository files navigation

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

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

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>)

About

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 86.9%
  • Python 13.1%