Skip to content

exp14: contact-cut sweep above top-L (MarinFold #256) - #16

Open
timodonnell wants to merge 1 commit into
mainfrom
claude/helico-contact-cut-sweep
Open

exp14: contact-cut sweep above top-L (MarinFold #256)#16
timodonnell wants to merge 1 commit into
mainfrom
claude/helico-contact-cut-sweep

Conversation

@timodonnell

Copy link
Copy Markdown
Member

Adds the arms and export script for the contact-cut sweep run for MarinFold #256: how many MarinFold contacts should Helico be given?

export_cut_sweep.py builds 1.5L, 2L, 3L, 5L and union arms from the score matrices exp14 already pinned. It verifies them against exp14's recorded digests (so it needs no CoreWeave credentials and cannot silently score a different set), and re-runs exp14's own gate — L, L/2 and L/5 must still reproduce exp245's published per-protein precision to 1e-9 — before writing any arm.

Results on eval-val, 95 targets folded by every arm, contacts-msafree-01 step 6000, 6 recycles, 3 diffusion samples, no MSA:

cut pairs/L precision recall lDDT
top-L/5 0.2 0.784 0.5638
top-L/2 0.5 0.659 0.5969
top-L 1.0 0.490 0.6053
1.5L 1.5 0.380 0.633 0.6073
2L 2.0 0.308 0.684 0.6044
3L 3.0 0.229 0.745 0.5999
5L 4.7 0.162 0.803 0.5918
union 14.0 0.106 0.922 0.5808

1.5L beats top-L by +0.0020 [−0.0048, +0.0086] — a tie. top-L was already the right cut, and anything from L/2 to 3L is within 0.01 lDDT.

Two findings worth keeping:

  • lDDT follows precision and ignores recall. The union arm raises contact recall from 0.52 to 0.92 and lowers lDDT. MarinFold #254 found the 100 rollouts behind a prediction already propose 92 % of the true contacts; this says that headroom is worth nothing downstream until it becomes precision.
  • The conditioning channel degrades very gently. At 10.6 % precision — 9 wrong restraints per right one, an order of magnitude outside MIN_SAMPLED_PRECISION = 0.4 — Helico still scores 0.581 against 0.350 with no contacts and 0.388 for Protenix-v2 single sequence. It keeps 96 % of the value of a top-L list.

Analysis, figure and writeup are in MarinFold experiments/exp256_evals_helico_contact_cut_sweep. eval-val only; eval-test was not read.

🤖 Generated with Claude Code

export_cut_sweep.py builds 1.5L, 2L, 3L, 5L and union arms from the score
matrices exp14 already pinned, verifying them against exp14's digests and
re-checking that L, L/2 and L/5 still reproduce exp245's published precision
to 1e-9 before writing anything.

Results on eval-val (95 targets folded by every arm): 1.5L 0.6073, top-L
0.6053, 2L 0.6044, 3L 0.5999, 5L 0.5918, union 0.5808. Analysis and writeup
in MarinFold experiments/exp256_evals_helico_contact_cut_sweep.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant