GPU Phase 1: co-fold cofactors/metals (the binding-mode determinants)

Add metal/cofactor handling to the Boltz-2 YAML as CCD ligand entries -
the modes classical docking couldn't model:
- HDAC2 + catalytic Zn (vorinostat chelates it)
- PKR + FBP + Mg (allosteric activator + metal)
- hemoglobin + heme
Same cofactors present when co-folding negatives into a target (fair test).

build_boltz_yaml() gains a cofactor_ccds arg (emits `ligand: {ccd: ...}`
entries); TARGETS carries per-target cofactors; cofold()/main() thread them
through. Verified locally: YAML builds correctly with Zn / FBP+Mg.

Honest limitation noted: Hb's voxelotor site is at the tetramer centre and
covalent (Schiff base), so single-chain+heme only approximates it - HDAC2
(Zn) and PKR (cofactor) are the real co-folding tests. Ready for
`modal run gpu/modal_app.py`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-24 17:16:06 +02:00
parent 4022c0cb94
commit 07705a5884
2 changed files with 43 additions and 31 deletions

View File

@@ -69,9 +69,11 @@ forgotten box can't bleed money.
## What runs on the GPU (in cost order — cheap validation first)
- **Phase 1 — modality validation (~minutes, ~$1):** co-fold each known binder + 2 negative
controls (caffeine, hydroxyurea) into each target (Hb, PKR, HDAC2) and check the **known binder
has the highest Boltz-2 P(binder)** for its own target — the discrimination Vina couldn't manage
on metal/covalent/allosteric modes. (Ranking uses P(binder), not the raw affinity value, whose
controls (caffeine, hydroxyurea) into each target (Hb, PKR, HDAC2) **with the binding-mode
cofactors co-folded in** — HDAC2 + catalytic **Zn**, PKR + **FBP/Mg**, Hb + **heme** (as CCD
ligand entries) — and check the **known binder has the highest Boltz-2 P(binder)** for its own
target. This is the discrimination Vina couldn't manage precisely because it can't model
Zn-chelation / cofactors. (Ranking uses P(binder), not the raw affinity value, whose
sign is version-dependent.) Pose-RMSD vs crystal is a deeper check but needs receptor
superposition (align predicted protein to crystal, transform ligand) — a later refinement. If
Phase 1 passes, the modality is real; if not, stop before paying for a screen.