Summary
data/config.yaml in data.zip is a multi-animal project config (multianimalproject: true) but sets bodyparts to a full keypoint list and repeats the same list in multianimalbodyparts. That conflicts with current DLC project config rules.
Expected format
For multi-animal projects, bodyparts should be the sentinel:
bodyparts: MULTI!
multianimalbodyparts:
- snout
- leftear
...
Keypoint names belong only in multianimalbodyparts (and uniquebodyparts when used). This matches create_project and how runtime code reads MA configs (get_bodyparts() / extractindividualsandbodyparts() use multianimalbodyparts, not bodyparts).
Actual format in zip
data/config.yaml (trimouse / MultiMouse fixture) has both:
multianimalbodyparts:
- snout
- leftear
... (12 keypoints)
bodyparts:
- snout
- leftear
... (same 12 keypoints again)
bodyparts should be MULTI!, not a duplicate list.
Impact
In DeepLabCut/DeepLabCut, loading this file via read_config() / ProjectConfig fails validation:
bodyparts must be 'MULTI!' when multianimalproject is True, got [...]
Affected test: tests/test_pose_multianimal_imgaug.py (via MAImgaugPoseDataset, which reads {project_path}/config.yaml). Other files in data.zip are unaffected.
Suggested fix
In data/config.yaml, replace the bodyparts list with:
bodyparts: MULTI!
Leave multianimalbodyparts (and all other fields) unchanged.
Note
This is legacy redundancy from before the MULTI! convention; the duplicate bodyparts list was ignored by MA runtime code but is now rejected by typed config validation.
Summary
data/config.yaml in data.zip is a multi-animal project config (multianimalproject: true) but sets bodyparts to a full keypoint list and repeats the same list in multianimalbodyparts. That conflicts with current DLC project config rules.
Expected format
For multi-animal projects, bodyparts should be the sentinel:
bodyparts: MULTI!
multianimalbodyparts:
...
Keypoint names belong only in multianimalbodyparts (and uniquebodyparts when used). This matches create_project and how runtime code reads MA configs (get_bodyparts() / extractindividualsandbodyparts() use multianimalbodyparts, not bodyparts).
Actual format in zip
data/config.yaml (trimouse / MultiMouse fixture) has both:
multianimalbodyparts:
... (12 keypoints)
bodyparts:
... (same 12 keypoints again)
bodyparts should be MULTI!, not a duplicate list.
Impact
In DeepLabCut/DeepLabCut, loading this file via read_config() / ProjectConfig fails validation:
bodyparts must be 'MULTI!' when multianimalproject is True, got [...]
Affected test: tests/test_pose_multianimal_imgaug.py (via MAImgaugPoseDataset, which reads {project_path}/config.yaml). Other files in data.zip are unaffected.
Suggested fix
In data/config.yaml, replace the bodyparts list with:
bodyparts: MULTI!
Leave multianimalbodyparts (and all other fields) unchanged.
Note
This is legacy redundancy from before the MULTI! convention; the duplicate bodyparts list was ignored by MA runtime code but is now rejected by typed config validation.