Reproducibility Guide
March 4, 2026 ยท View on GitHub
This document describes a reproducible workflow for Bento using uv.
Environment
- Clone repository.
- Sync environment with pinned lock:
uv sync --frozen --no-editable --extra annotation --extra similarity
- Validate runtime:
uv run --extra annotation bento check-env --profile annotation
uv run bento check-env --profile similarity --glosa-dir /path/to/glosa_v2.2
Deterministic Inputs
- Keep the same dataset versions in
datasets/. - Keep annotation maps in
annotations/unchanged for a reproducible run. - Record
git rev-parse --short HEADfor each experiment.
Pipeline Execution Order
- Ligand annotation:
uv run --extra annotation bento annotate-ligands \
--dataset-file datasets/tests.tsv \
--output-dir outputs/
- Pocket similarity:
uv run bento compute-pocket-similarity \
--data-csv test_run/path_tests.tsv \
--protein-path path_protein \
--ligand-path path_ligand \
--bs-dir bs \
--glosa-dir /path/to/glosa_v2.2 \
--output-file similarity_scores/test_pocket_scores.tsv
- Mapping:
uv run bento map-annotations \
--tests-file datasets/tests.tsv \
--annotations-dir annotations \
--output-tests-file datasets/tests_annotated.tsv \
--output-tests-exploded-file datasets/tests_exploded_annotated.tsv
Recommended Run Metadata
Store this metadata in each run artifact:
- Commit SHA.
- Branch name.
- Python version (
uv run python --version). uv --version.- Environment variables:
BENTO_WORKDIRBENTO_DATABASES_DIRBENTO_GLOSA_DIR
- Full command lines used for each step.
Notes
- Java and GLoSA are external runtime dependencies for script 02.
- Build
glosaandAssignChemicalFeatures.classinsideBENTO_GLOSA_DIRbefore runs. - PyMOL is installed from
--extra similarityon Linux/HPC. - Use
uv run bento check-env --profile similarity --glosa-dir ...before long jobs.