Skip to content

Latest commit

 

History

History
59 lines (44 loc) · 2.54 KB

data-prep.md

File metadata and controls

59 lines (44 loc) · 2.54 KB

Data preparation

What ships vs. what you fetch

  • In git: the annotation CSVs (train / PPI-103 / FAB-75) and the fold assignments. See ../data/README.md.
  • Downloaded separately, then unpacked by make data: two archives.
Archive Contents Where to download
pcann_v2.tar.gz the 25 EXP-043 models this repo's GitHub Releases page
pcann_v2-pdb.tar.gz structures (~1.5 GB) out-of-band link (see the release notes)

Download the archive(s) you need into the repo root, then unpack:

make data        # extracts every pcann_v2*.tar.gz present

make data is just a convenience wrapper around tar xzf; the archives extract to their repo-relative paths (logs/multiruns/EXP-043/…, data/raw/ppb-affinity/pdb/…).

ESM2 embeddings are not shipped. They are large (~4.7 GB) and fully reproducible from the pdb archive plus the public ESM weights, so you compute them locally (below) before running inference or training.

ESM2 embeddings — required before any task

The model reads per-residue esm2_t33_650M_UR50D embeddings (layer 33) directly as .pt files from data/raw/ppb-affinity/esm/<uid>.pt. You must generate them before inference or training — nothing downstream works without them. The same command also embeds any new PDBs you add later.

# 1. Clone the ESM repo (weights auto-download on first run).
git clone https://github.com/facebookresearch/esm
export ESM_MODEL_DIR=$PWD/esm

# 2. Embed every .pdb in the shipped structure directory (or any directory).
make esm         # == run_esm_extraction.py data/raw/ppb-affinity/pdb --savedir data/raw/ppb-affinity/esm

# or directly, for an arbitrary directory:
uv run python scripts/data/run_esm_extraction.py \
  <pdb_dir> \
  --savedir data/raw/ppb-affinity/esm \
  --workers 2

run_esm_extraction.py resolves the model directory from --esm-model-dir, falling back to the ESM_MODEL_DIR environment variable; it errors if neither is set. It runs on the GPU automatically when one is visible (CPU otherwise), writes one <uid>.pt per structure, and skips any that already exist. On a GPU, prefer --workers 1 to avoid loading the 650M model onto the same device from several subprocesses at once.

Annotation CSV columns

Each annotation row describes one complex: uid, receptor_chains, ligand_chains, and the measured affinity (KD / dG). The composite key uid_receptorchains_ligandchains is what fold assignments and predictions are keyed on.