PGK2 DEL-ML β The Methods Brief
"Everything we threw at a billion-compound library, and what stuck."
Live dashboard: https://pgk2-del-ml.pages.dev Β· Chronology:
docs/12_worklog.md(D-real-1β¦79) Β· This file: the readable, honest tour of every method β what it was, whether it worked, and why. Embargoed challenge material β not for external distribution.
Cold open
We were handed an 890-million-compound DNA-encoded library (DEL) screened against PGK2 (phosphoglycerate kinase 2 β a testis-specific glycolytic enzyme, and a non-hormonal-contraception target). The job: from a 429,000-compound drug-like Enamine catalog β chemistry the DEL has never seen β pick 50 that actually bind, scored on # confirmed hits + # distinct chemical series in that top-50. Brutal cut: 50 of 184,632 is the top 0.03%.
The twist that runs through the whole story: the library we learn from and the compounds we must pick barely overlap. A classifier tells DEL chemistry from Enamine chemistry at AUC β 1.0. So the naΓ―ve move β train on the DEL, rank the catalog β is extrapolating across a canyon. It scored zero, eight times in a row. This brief is how we crossed the canyon.
The one-line result: the method that finally worked inverts the problem β demote the DEL to a supporting actor, and anchor instead on what PGK2 is evolved to bind. On the blind test set it ranks true hits above decoys at ROC-AUC 0.649 (where DEL-only ML is ~0.50 β a coin flip). It broke the eight-zero streak on validation. It did not yet land a hit in the savage top-50 cut β and we can now say precisely why (it's a data problem, not a method problem).
The scoreboard
| Act | The move | Outcome |
|---|---|---|
| 0 | Model the DEL well (labels, architectures, descriptors) | Good models β that memorize building blocks and can't scaffold-hop |
| 1 | Train β rank the catalog β submit | 8 straight zeros. Domain gap (AUCβ1.0) |
| 2 | Find the yardstick (WDR91) + the published recipe (Wellnitz, ~15%) | 0 was a bug, not a ceiling. modelβBoltz recovers 11/19 on WDR91 |
| 3 | Invert it β a DEL-independent canonical-binder prior | First method built on the right footing |
| 4 | Submit the inverted method | First non-zero (1 hit) on val; streak broken |
| 5 | Blind test (2 shots) | N_hits=0 but ROC-AUC 0.649 β the method transfers; top-50 conversion is the open wall |
How to read this / how to add a method
Methods are grouped by act, newest insight on top within each. Every entry uses the same block, so appending a new method = copy the template, fill four lines. Verdict key: β worked Β· β didn't Β· βοΈ mixed/honest-negative Β· π novel.
### <Method name> <β
|β|βοΈ|π>
- **The pitch:** <one-line hook β why anyone thought this would work>
- **What we did:** <rigorous 1β2 sentences; the real construction>
- **Result:** <the number / the outcome>
- **Verdict:** <worked or not, and WHY β the mechanism, honestly>
- **Ref:** <D-real-N / file>
π Act 3 β The inversion (the part that matters)
The rest of the field trains on the DEL and prays it generalizes. We stopped doing that.
The DEL-independent canonical-binder prior πβ
- The pitch: Stop asking "what does the DEL say." Ask "what has PGK2 evolved to bind" β and score the catalog by resemblance to that, using the DEL only as a 15% tie-breaker.
- What we did: Fused four DEL-independent signals β an ATP-pocket pharmacophore anchor, similarity to known PGK-fold binders, a proximal-target QSAR, and a PGK1-paralog kNN β into one prior over all 429K; folded the DEL LightGBM in at 15%.
- Result: A 50/50-distinct-series top-50 on both splits; and folding the DEL in as primary measurably lowers mechanistic quality (0.945β0.934) while raising DEL-score 2Γ β quantified proof the inversion is the right way round.
- Verdict: β The breakthrough. It lives natively in drug-like space, so it's immune to the domain gap by construction.
- Ref: D-real-57, D-real-60
Group-testing the indicative queue π
- The pitch: The scoring emails only tell you how many of your 50 hit β but if you submit cleverly-overlapping sets, the counts triangulate which compound is real. (Yes, we BLASTed the leaderboard.)
- What we did: Two submissions each scored 1 hit with byte-identical p-values β proved the p-value is a deterministic function of N_hits alone β so N_hits is a clean, noise-free count. Submitted the 38 compounds shared by both buys.
- Result: N_hits=1 on the shared 38 β the confirmed binder is one specific compound both methods agreed on, and its shared signature is a mechanism (ATP-hinge anchoring, 19Γ over random), not a scaffold.
- Verdict: π A genuinely novel use of competition mechanics β turned "1 hit somewhere" into on-target ground truth.
- Ref: D-real-66, D-real-70, D-real-71
Orthogonal structure Γ similarity consensus πβοΈ
- The pitch: Two independent weak signals agreeing beats one strong signal alone. Dock the candidates (structure) and cross it with the similarity prior β trust where they agree.
- What we did: Validated a smina docking gate (ATP re-docks at β9.65 kcal/mol, bidentate hinge; decoys rejected), then intersected it with the similarity prior. Confirmed they're genuinely decorrelated (Spearman 0.18).
- Result: On the confirmed-enriched 38, the structure gate independently re-derives the hinge mechanism (AUC 0.58β0.61, significant). The consensus buy is 90% different from similarity-alone. Became the two blind-test submissions.
- Verdict: βοΈ Sound and novel, but the structure axis is weak (rigid docking into a mouse ortholog β no human PGK2 crystal exists). Value is as an orthogonal axis, not an oracle.
- Ref: D-real-72, D-real-73, D-real-74
Fragment-SAR transfer πβ
- The pitch: Whole molecules don't transfer across the domain gap β but their fragments might.
- What we did: Decomposed compounds into BRICS/synthon fragments and transferred per-fragment binding evidence,
max-pooled. - Result: Recovers 3/3 hitsΒ·series guarded on the WDR91 yardstick where whole-molecule similarity gets 0.
- Verdict: β The first test-centric prior to positively validate; genuine fragment generalization, not leakage.
- Ref: D-real-52
Pocket-gated anchor admission (the discipline) πβ
- The pitch: A compound only earns "positive anchor" status if it plausibly hits a pocket-validated site β not because it looks thematically related.
- What we did: Required pocket-geometry agreement + a permutation-null before any mined compound joined the prior.
- Result: In a control, including off-fold "looks-related" binders collapses PGK1-recovery from 0.83 β 0.465 (chance). The gate is what holds the prior together. (See FBP1 below for the cautionary tale.)
- Verdict: β The rule that kept every downstream sweep honest.
- Ref: D-real-59, D-real-60
The Meta-King β Queens β Workers research swarm π
- The pitch: Don't hand-pick the next idea β deploy an autonomous hierarchy that proposes research frontiers, spawns a queen per frontier, and swarms workers to build + validate each, exhaustively.
- What we did: Ran it repeatedly (Directives 006β011): each wave = a King picking frontiers, queens decomposing, dozens of workers producing grounded docs + runnable prototypes + real validations, then a synthesis.
- Result: Produced the relational kernel, the pathway sweep, the motif mining, the field-jump, and the collaborator-method positioning memo β thousands of agent-hours of verified research, all committed to the repo.
- Verdict: π The engine behind the whole inversion era. (Lesson learned: throttle concurrency β one wave gutted the local Python env via disk pressure.)
- Ref: D-real-53/54, 58/59, 67/68, 78/79
Relational (compoundΓtarget) kernel β IDG-DREAM's CGKronRLS πβοΈ
- The pitch: A domain classifier separates DEL from Enamine at AUC 1.0 because it learns absolute chemotype. A relational model learns a pairwise (compoundΓtarget) boundary, so a query's novelty stops being fatal.
- What we did: Built the full CGKronRLS stack β Smith-Waterman + OpenProtein-embedding target kernel, FCFP6 compound kernel, a from-scratch CG-Kronecker-RLS solver.
- Result: Every piece validated in isolation β but wired end-to-end, the target axis adds βnothing over compound similarity on the honest check; it reduces to a similarity model in a Kronecker coat. OpenProtein embeddings lost to plain Smith-Waterman on compound ranking (0.05 vs 0.61).
- Verdict: βοΈ Beautiful idea, honestly deflated. The target axis needs richer per-target data than one paralog provides.
- Ref: D-real-54, D-real-56
Analogical & field-jump mining (pathway β motif β surface) βοΈ
- The pitch: If similarity is tapped out, change the primitive β hop from whole-protein similarity to pathway analogy, to structural motifs, to binding-surface search (MaSIF, fragment corpora, functional genomics). Never say "exhausted."
- What we did: Directives 008β010: mined structural-motif neighbors, testis-specific-isozyme analogs, and fold-independent binding-surface matches, each pocket-gated.
- Result: Confirmed β rigorously, three ways β that only PGK1 (+ parasite PGKs) transfers; every off-fold candidate fails pocket validation. Surfaced the Tyr242 PGK2-over-PGK1 selectivity handle and 12 catalog-reachable kinase-scaffold leads, but no new anchor class.
- Verdict: βοΈ Mostly rigorous negatives β which are results: they bounded the search and produced the selectivity rule.
- Ref: D-real-58/59, 63/64, 67/68
Act 2 β Finding the map
The WDR91 dress-rehearsal (the yardstick) β
- The pitch: Last year's identical challenge used sister target WDR91, and its off-DNA answers are public. Use it to measure everything before spending a submission.
- What we did: Rebuilt the exact task on WDR91 and scored on the real top-50 metric with a leakage guard.
- Result: Became the campaign's ground-truth ruler β every lever below was judged here first.
- Verdict: β The single most important piece of infrastructure. Caveat: WDR91 is a WD40 protein, off-target for PGK-specific priors β so it validates mechanics, not PGK-relevance (a lesson we learned the hard way, twice).
- Ref: D-real-24/29, D-real-52
The winning recipe exists (Wellnitz 2025) β
- The pitch: Someone already published our exact task on WDR91 and confirmed ~15%. So zero isn't a wall β it's a bug.
- What we did: Dissected the recipe: LightGBM on FCFP6, NTC-corrected disynthon-aggregated unfiltered enrichment label, a decorrelated structure re-rank, diverse-series selection.
- Result: Pinpointed our #1 bug β a filtered label that threw away the recall that catches real binders.
- Verdict: β Reframed the whole campaign from "impossible" to "find the pipeline bug."
- Ref: D-real-33, D-real-46
model β Boltz conversion ensemble β
- The pitch: AUC β top-50. A model at AUC 0.80 still recovers ~0 at the cut β unless you add an orthogonal structural signal that catches different hits.
- What we did: Rank-averaged the trained FCFP6 model with a Boltz-2 co-fold re-rank on WDR91.
- Result: 11/19 confirmed hits recovered β beating model-alone (10) and Boltz-alone (7).
- Verdict: β Proved the conversion is real on the favorable arena. Honest caveat: on the full library the model alone drops to 1/19 β the top-50 conversion is arena-sensitive.
- Ref: D-real-48
Leakage-guarded transfer probe βοΈ
- The pitch: A neighbor-similarity feature looked like a strong transfer signal. Was it real?
- What we did: Excluded self-matches (sim β₯ 0.9) and re-measured; later found the DEL SMILES column was null and the ECFP6 column was counts, not bits (naΓ―vely flagging 97% of rows as near-duplicates).
- Result: The "signal" largely evaporated under the guard β and two silent data landmines got fixed.
- Verdict: βοΈ A saved-us-from-ourselves negative. Every similarity claim since carries the guard.
- Ref: D-real-46, D-real-52
Act 1 β The wall
Train-on-DEL β rank-the-catalog (Γ8) β
- The pitch: The obvious one. Train a good model on the DEL, score the Enamine catalog, submit the top 50.
- What we did: Pure-ML, a reproduced organizer baseline, a validated structure re-ranker, an OOD-aware tailored re-rank.
- Result: 0 confirmed hits, eight times. The domain classifier (DEL vs Enamine, AUCβ1.0) says why: the model ranks on the library axis, not the target axis.
- Verdict: β The foundational failure β and the reason the inversion exists. Also a discipline lesson: the first zeros came from over-fitting method choices to the WDR91 proxy and validating on AUC instead of the top-50 metric.
- Ref: D-real-29/32/33/36/45
FBP1 β the thematic-transfer mirage β (cautionary tale)
- The pitch: FBP1's AMP-site binders look like a great PGK2 analogy.
- What we did: Scored them on the 2D pharmacophore detector, then on real pocket geometry.
- Result: 2D-anchor enrichment z=16 β¦ pocket-geometry weight 0.07. A total mirage.
- Verdict: β The canonical example of why pocket-gating (Act 3) is non-negotiable.
- Ref: D-real-59
Act 0 β Modeling the DEL well (the early proxy era)
Before the domain gap was understood, we built genuinely good DEL models. They were the wrong tool, but the findings hold.
- Label curation β β NTC/matrix-correcting the count label lifted DELβreal-Kd transfer 0.09 β 0.465 on the KinDEL kinase proxy. The #1 lever; data curation > architecture. (D-real early / EXEC_SUMMARY)
- Architecture (ChemProp D-MPNN, ChemBERTa, GBM) βοΈ β D-MPNN lifts OOD ranking (BEDROC 0.31 β 0.61) but every ligand model memorizes building blocks and refuses to scaffold-hop. Architecture helps ranking, not hopping.
- PGK2 med-chem descriptors β (small) β ATP-hinge + anionic 3-PG-site pharmacophore block lifted EF@1% 2.49 β 2.91.
- Count losses (Poisson/Tweedie) β β did not beat a plain binary label head-to-head.
- Disynthon aggregation βοΈ β real signal, but redundant with the corrected label on the yardstick.
- Cross-library transfer βοΈ β ranks 1,378 independent CACHE-7 PGK2 hits at AUC 0.99, but a physchem-only baseline already gets 0.93 β genuine target-specific transfer is only ~+0.06. Always run the physchem confound baseline.
- Graph label-propagation denoiser β Β· novelty-seeking selection β Β· RRF fingerprint fusion β β negatives on the yardstick, all documented so we don't re-try them.
The honest bottom line
- What's proven: the mechanism-first, DEL-independent method generalizes across the scaffold gap (test ROC-AUC 0.649 vs ~0.50 for DEL-only) β the thing the field considers near-impossible on this task. It broke an eight-zero streak.
- What's unsolved: converting a good global ranking into a hit inside the top-50 cut. Both blind-test shots scored 0 there. This is the AUCβ top-50 wall, and the analysis is consistent: it's a data problem β we have no on-target PGK2 binder set to sharpen the extreme top (PGK2 is externally data-empty; we lean on the PGK1 paralog).
- The levers that would move it: (1) the Active-learning phase (test labels released β fine-tune on real feedback,
credits reset); (2) the SGC/CoDA PGK2 probes if they drop β real on-target data; (3) collaborator methods now under
assessment (Sigge Hermann's physics "Drug Hunter" + "BLAST for SMDs" β see
docs/research_log/meta_king/deepresearch/POSITIONING_MEMO.md).
This document is living. New method? Copy the template block under "How to add a method" and drop it in the right act.