data/
├── train/pcann-plus-trainval.csv # 1268 rows / 1256 UIDs — training source
├── train/folds_pcann_plus_ppisplit_mc25.csv # 25-fold cluster-aware CV assignments for EXP-043
├── test/PPI-103.csv # PPI-103: 103 rows — primary test set (pre-filtered, leak-free)
└── test/FAB-75.csv # FAB-75: 75 rows / 69 structures — antibody-Fab test set (leak-free)
PPI-103 (PPI-103.csv) is shipped pre-filtered — no leak removal happens at
inference time. FAB-75 (FAB-75.csv) carries method and resolution columns
and is filtered to a resolution cutoff of ≤ 4.5 Å; both are keyed the same way.
Download two independent archives (checkpoints from the GitHub Releases page; pdb from the
out-of-band link in the release notes), drop them in the repo root, and make data
unpacks them in place:
# checkpoints — GitHub Release asset
logs/multiruns/EXP-043/fold{0..24}_seed42/
├── checkpoints/epoch_*.ckpt
└── .hydra/config.yaml # required — predict.py rebuilds the model from this
# pdb — large; hosted out-of-band (download link distributed separately)
data/raw/ppb-affinity/
└── pdb/<uid>.pdb # structures for the train + test UIDs
Download only the components you need: checkpoints for inference, plus pdb.
data/raw/ppb-affinity/
└── esm/<uid>.pt # ESM2 (esm2_t33_650M_UR50D) per-residue embeddings
ESM2 embeddings are not shipped — the model needs them, so compute them from the pdb
archive before any inference or training with make esm. See
../docs/data-prep.md. The same command embeds new structures.