# Fully-pinned lock for the ESMFold2 backend — the exact set validated on
# MareNostrum on 2026-06-16 (14/14 fold tests pass on an H100, incl. a FAD
# cofactor co-fold). This pins the moving pieces the convenience
# `micromamba env create` cannot: the biohub `esm` and `transformers` FORKS are
# nailed to specific commits (esm's pyproject otherwise tracks
# `transformers @ main`, a branch that can advance and silently change the build).
#
# Install with --no-deps onto a python-3.12 environment that already provides a
# CUDA `torch>=2.2` plus the usual ML/scientific transitive stack (numpy, scipy,
# scikit-learn, pandas, einops, safetensors, regex, tokenizers' build, ...) —
# e.g. layered on the `mood` conda env, which is how the validated env was built:
#
#   /gpfs/projects/bsc72/conda_envs/mood/bin/python -m venv \
#       --system-site-packages /gpfs/projects/bsc72/conda_envs/mood-esmfold2
#   /gpfs/projects/bsc72/conda_envs/mood-esmfold2/bin/pip install \
#       --no-deps -r configs/mood-esmfold2.lock.txt
#
# --no-deps is required: it both honours these exact versions AND sidesteps the
# pip resolver conflict from esm declaring its own `transformers @ ...@main`
# direct URL (a second transformers direct reference would error). The transitive
# deps not listed here (torch, numpy, einops, safetensors, regex, biopython,
# scikit-learn, pandas, ...) are inherited from the base env.
#
# Offline (no internet, e.g. MN compute nodes): do NOT run
# `pip install --no-index -r <this file>` — the `git+https` lines below are
# direct URLs and pip still fetches them from GitHub even with --no-index. On a
# machine WITH internet, build a wheelhouse and install the wheel files instead:
#     pip wheel --no-deps -r configs/mood-esmfold2.lock.txt -w wheelhouse/
#     # copy wheelhouse/ to the offline host, then:
#     pip install --no-deps --no-index wheelhouse/*.whl
# The esm/transformers wheels are built from the pinned commits below, so the
# offline install is commit-identical to this lock.

# biohub forks — pinned to the validated commits (NOT @main).
esm @ git+https://github.com/Biohub/esm.git@eca8e1cd2c502755670b24177311cb614ec2ba85
transformers @ git+https://github.com/Biohub/transformers.git@ef32577f55da19a4989cd7b22e004dc43a4998cb

# biohub-stack runtime deps installed into the venv layer (validated versions).
tokenizers==0.22.2
huggingface_hub==0.36.0
biotite==1.4.0
rdkit==2024.3.2
msgpack==1.2.0
msgpack-numpy==0.4.8
cloudpathlib==0.24.0
tenacity==9.1.4
pygtrie==2.5.0
accelerate==1.14.0
pydssp==0.9.1
zstd==1.5.7.3

# test runner (only needed to run the ESMFold2 test suite).
pytest==9.1.0
pluggy==1.6.0
iniconfig==2.3.0
