This repository features a DataJoint schema for pose estimation via DeepLabCut. The pipeline presented here is not a complete pipeline by itself, but rather a modular design of tables and dependencies specific to the behavior tracking workflow. This modular pipeline element can be flexibly attached downstream to any particular design of experiment session, thus assembling a fully functional behavior pipeline (see the example workflow-deeplabcut).
This Element currently supports single-animal, single-camera 2D models, and does not yet support multi-animal or multi-camera models. This Element does not offer any features for labeling training data. Users should to use native DeepLabCut tools for intitializing a project and labeling training data.
-
See the Element DeepLabCut 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.
As the diagram depicts, the DeepLabCut element starts immediately downstream from a Session table, which is modeled in our workflow pipeline. The following tables are further downstream across two schemas:
train
schema: Tables related to model training.- VideoSet: The set of files corresponding to a training dataset.
- TrainingParamSet: A collection of model training parameters, represented by an index.
- TrainingTask: A set of tasks specifying model training methods.
- ModelTraining: A record of training iterations launched by TrainingTask.
model
schema: Tables related to DeepLabCut models and pose estimation.- VideoRecording: Video(s) from one recording session, for pose estimation.
- BodyPart: Unique body parts (a.k.a. joints) and descriptions thereof.
- Model: A central table for storing unique models.
- ModelEvaluation: Evaluation results for each model.
- PoseEstimationTask: A series of pose estimation tasks to be completed. Pairings of video recordings with models to be use for pose estimation.
- PoseEstimation: Results of pose estimation using a given model.
-
Install
element-deeplabcut
pip install element-deeplabcut
-
Upgrade
element-deeplabcut
previously installed withpip
pip install --upgrade element-deeplabcut
-
Install
element-interface
element-interface
is a dependency ofelement-deeplabcut
, however it is not contained withinrequirements.txt
.
pip install "element-interface @ git+https://github.com/datajoint/element-interface"
To activate the element-deeplabcut
, one needs to provide:
- Schema names
- optionally, a schema name for the
train
module. - a schema name for the
model
module.
- optionally, a schema name for the
- Upstream tables
Session
: A set of keys identifying a recording session (see Element-Session).Device
: A reference table linkedVideoRecording
to specify camera information.
- Utility functions
get_dlc_root_data_dir()
to provide a root directory for a given machine,- optionally,
get_dlc_processed_data_dir()
to provide an output directory.
For more detail, check the docstring of the element-deeplabcut
:
help(train.activate)
help(model.activate)
- See our workflow for an example usage of this DeepLabCut Element.
- See our YouTube tutorial for a walkthrough of the schemas and functions:
-
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 DeepLabCut (version
<Enter version number>
)
-