Data and Python code for auditing equine pose annotations and benchmark splits by horse identity

Published: 18 September 2026| Version 1 | DOI: 10.17632/3sdbkt7wcp.1
Contributors:
,
,

Description

This repository supports the study “Audit of equine pose annotations and benchmark splits by horse identity”. It contains Python code and derived audit data for the public Horse-30 annotations and the three official Horse-10 benchmark splits. The analysis examines record eligibility, horse identity, annotation completeness and differences in landmark availability between evaluation subsets containing horses represented in training and horses absent from training. The included audit covers 8,114 annotation records from 30 horses and 22 anatomical landmarks. Of these records, 8,087 were eligible and 27 had no finite coordinate pair. The repository includes record-level eligibility and exclusion information, official split membership, subset summaries, landmark availability frequencies and absolute availability differences. Availability means that both reference coordinates are finite; it does not establish anatomical visibility or annotation accuracy. Two reproducibility modes are provided. The outputs mode checks the included files, recomputes the two summary tables from the derived data and regenerates four figures without downloading images. The full mode retrieves the configured Horse-30 and Horse-10 revisions and repeats the coordinate-level audit before checking the results and generating figures. Original photographs and raw coordinate tables are not included in this deposit. This is a descriptive audit of reference annotations. It does not train a pose estimation model, evaluate prediction accuracy or provide clinical validation. The original execution record is retained separately from the verification performed when preparing this release. The included data were used to verify the summary tables and regenerate the figures; source acquisition and coordinate-level reanalysis were not rerun during release preparation.

Files

Steps to reproduce

1. Download and extract P1_HORSE30_repository.zip. Open a terminal in the extracted P1_HORSE30_repository directory, which contains reproduce.py and requirements.txt. Use Python 3.12 or newer. MATLAB is not required. 2. Create and activate a virtual environment. On Windows PowerShell, run: py -3.12 -m venv .venv. You can then use .\.venv\Scripts\python.exe directly without activating the environment. On Linux or macOS, run: python3 -m venv .venv and use .venv/bin/python. 3. Install dependencies. On Windows, run: .\.venv\Scripts\python.exe -m pip install -r requirements.txt. On Linux or macOS, replace the executable with .venv/bin/python. Dependency installation requires Internet access unless the packages are already available locally. 4. For verification without downloading the source dataset, run: .\.venv\Scripts\python.exe reproduce.py --mode outputs --check-files. This checks release checksums, eligibility, split membership, horse separation, both summary tables and consistency between annotation counts and availability frequencies. It then regenerates Figures 1–4 from the included outputs. This mode does not reanalyse the original coordinates. 5. For full reproduction from the source repositories, work from a fresh extraction of the ZIP, install Git and Git LFS and ensure they are on PATH. Run git lfs install, then .\.venv\Scripts\python.exe reproduce.py --mode full --check-files. This downloads horse10.tar.xz and the benchmark repository at the revisions specified in config.yml, extracts the source data and executes the audit. Internet access and storage for the archive plus extracted files are required. The full download size was not measured for this release. 6. Inspect LOCAL_VERIFICATION.json in the repository root. Successful runs report status PASS. Tables are in P1_HORSE30_POSE/outputs/split_audit.csv and domain_shift.csv; the four regenerated figures are in P1_HORSE30_POSE/figures as PNG and PDF files. Full runs also write P1_HORSE30_POSE/PIPELINE_STATUS.json and RUN_REPORT.txt. The expected sample is 8,114 records, 8,087 eligible records, 27 exclusions, 30 horses and 22 landmarks. 7. Run the bundled utility tests, if desired, using: .\.venv\Scripts\python.exe -m pytest tests -q. These tests check file-writing and extraction utilities; they do not replace verification of the study results. 8. The release checksum file describes the original deposited files. A full run can change generated outputs and logs, so checksum validation should be performed before rerunning, preferably on a fresh extraction. If acquisition or extraction is interrupted, use a fresh extraction of the ZIP rather than reusing an incomplete data/raw directory. Existing extracted source directories are not independently checksum-validated by the original pipeline.

Institutions

Categories

Equine Anatomy, Horse, Data Quality

Licence