Repository navigation
feat(protonpotts): protonpotts_features wave graded pass by record; P4d (spec §40) - #211
Merged
Merged
Conversation
…ackbone atom set Committed BEFORE any run. The protonpotts_features wave's perturbation 'O is not a backbone atom' was not rejected by any sealed cell (at the 0.8 threshold, every residue whose O fails also fails N, CA or C), so no data discriminates a rule that is only read from source. A scan of 137 structures found 1HGU and 1OLR, each with one residue where only O fails. The sidecar states the predicted lengths (183 and 219 if upstream requires O, 184 and 220 if not) so the prediction can be wrong. task_id: 261007_protonpottsmpnn-support Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Committed BEFORE the graded run. The vehicle compares featurize_pdb with the sealed upstream dumps on ten structures (exact on every key, X everywhere) and the 1IFC refusal, and applies eleven perturbations (six wrong rules, five corrupted outputs) that the same comparison must reject. An exploratory smoke run (numbers not cited) showed the O perturbation undetected by the nine earlier cells, which led to the P4d dump (run 7ec1f6b9, graded FAIL by its own n_featurized = 2 criterion because upstream refused 1HGU; 1OLR featurized with the predicted 219 residues). 1HGU is excluded as a known divergence. task_id: 261007_protonpottsmpnn-support Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… P4d graded fail by its own criterion Wave run 479b640b (clean tree, 74e6341): 10 of 10 cells exact, refusal matched, 11 of 11 perturbations detected. The control found that no sealed cell discriminated the O rule, which led to P4d (run 7ec1f6b9, graded FAIL because upstream refused 1HGU; 1OLR gave the predicted 219). 1HGU recorded as a known divergence, cause not understood. task_id: 261007_protonpottsmpnn-support Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…p and protonpotts_encoder wave convert.py holds the three foundry-to-aminx permutations (atom-pair blocks, token rows, etab both axes); the scripts and sidecars are committed before any graded run. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…oder wave graded pass by record Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…gy dump and protonpotts_energy wave Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ergy graded pass by record Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…Options Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…portable-JSON tests Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d pass by record Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… deferred Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…equences for decisions 4 and 6 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…re-registered) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tity tests Adds ph_potentials: candidate_energies (all rows), candidate_energies_at (selected rows), incoming_edges helper, and block_stability_potentials (unary + oriented within-block pair tables). Tests check finite-difference identities against potts_energy on graphs with one-way edges. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…_block Adds PHDesignConfig (in-scope subset of upstream PHDesignCriteria, production defaults from design_ph.py) with validation mirroring upstream __post_init__. Deferred methods/backends refuse naming debt #2616 (MCMC/two-phase/combined/gibbs) and #2617 (decoder-backed). Adds the design fields to ProtonPottsOptions with tuple-normalised nested fields, and config_from_options. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Numpy port of the backend=potts planning stage of upstream PottsMPNNPHEngine: valid_token_mask, neighbour_mask, knn_rank, block_partners/block_table, placement_scores, finalize_plan, and the centre-type, explicit-centre and centre-free plan builders. Hand-derived literal tests on a 12-residue graph. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ath loader Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…attempt; first P9 modules Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…a (script follows) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Port of the upstream _block_descent sweep (potts_mpnn_ph.py 2193-2387) on the Potts backend: block objective with exact selective unary from pin edges, repetitive-window terms, frozen block z-scales, T=0 argmin and T>0 inverse-CDF sampling. Unsupported knobs raise NotImplementedError. Trajectory recording is not ported. Tests are not run in this commit. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…istered at 09804a9) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ler (for upstream replay parity) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…npotts_ph_greedy wave Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…and tests Host-side port of the upstream plan -> optimiser -> score pipeline for one structure: placement plan on the native sequence, samples_per_site designs per plan, whole-sequence Potts energy and per-pin selective gaps on the final sequence. Returns all designs sorted by (final energy, original order); no dedup (upstream PHDesignSet.deduped drops sweep variants because design_id omits temperature). Tests cover pins/scoring/sorting, key determinism, replay against block_descent, explicit centres, empty plans, centre-free greedy (importorskip), and input validation. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
JAX port of upstream _greedy_energy_block (potts_mpnn_ph.py 2390-2532), Potts energy backend. Each step re-ranks designable positions by single-mutation delta, takes the block_size most-improving (padded when fewer improve), commits the exact argmin or an inverse-CDF draw, and returns the best sequence seen. Single-mutation z-scale; designable tokens canonicalised to parent residues first. Tests are not run in this commit (orchestrator runs them). Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…): twelfth wave ph_knobs, 93 controls; counts only (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…S, 4 mutants in launch_wave/branch_manifest, closure edges, README) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…y_wave: 9/9 would grade, 135/135 PASS) (#2621) Groups 4,2,3,1 ran sequentially on titanix at 6311e48; every cool-tier record is completed/pass/git_dirty False and every control failed. protonpotts_parity is the REVISION 261011 vehicle (12 waves, 93 controls). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…threads vs design_methods (X11b comparator unchanged, held-out seed offset 300000), before the page or script exist (#2625) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…s page, 1 and 4 threads, X11b comparator and controls imported) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
… knobs (global_weight +-1, adjacent_repeat_weight 1, self_weight 0.5), knob-live and sign controls, before the dump script exists (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…gn_structure (Node + Chromium 1/4 threads, exact, no exemptions, SEED 4031), before the JS port or gate exist (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…eat_weight, self_weight) on the sealed tables, f32 and f64 (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…d Node runner (#2621) ph_design.mjs: config.sweepOrder (position/knn/energy, validated), visit order applied before the z-scales and block table, recorded as visitOrder. ph_plan.mjs: energyRank (port of ph_design._centre_energy_rank). X7b: same() factored to module-level same_designs, behaviour unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…7d (sweep_order) harness pages, bitwise, Pages + COI, before the gate exists (#2625) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…ges, bitwise, Pages + COI (#2625) protonpotts_site_methods_gate.py from X10's machinery: METHODS (X11c jobs, seed offset 400000, replay forwarded through params) and SWEEP (X7d jobs, SEED 5031) sent through window.__PP_RUN__ and compared per design, float32-bit exact, with the graded harness pages at the same thread count. PLANTED / ORDER / INTEGRITY / ENVIRONMENT controls; per-unit stamps. Pure comparator tests. Static checks only; nothing was run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…ker returns (all, exactly); the harness-only diagnostics it does not return are excluded and listed, not compared (#2625) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
… 0.5 never moved a T=0 design; applied, sdH 11.43715->11.42134): self_weight 0.0 / 4.0 chosen after that record (disclosed), all else unchanged, before the v2 script exists (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
… 0.0/4.0 and the self_live labels differ) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…weight acts only via sdH, ~1% over 0..4, cannot flip a T=0 argmin): self_live widened to the T=0.05 config, chosen after both records (disclosed), before the v3 script (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…_T05) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…jacent_repeat/self_weight vs upstream P4m3, 88 calls, five controls (ignore/flip global, ignore adjrep, ignore self, shifted), before the port or the wave script (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…lock_descent (upstream 2193-2387, 2055-2123, 2666-2696, 1610-1627); positive global_weight minimises g (follows the code); refusal tests become semantic tests; zscale_mode stays refused Not run locally (no pytest/jax); graded by the protonpotts_ph_objective_knobs wave, pending. options.py untouched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…ght / adjacent_repeat_weight / self_weight through the shipped path, 88 calls, z-scales (3), tokens, draws, scores incl. g, five controls (#2621) Static checks only; not run. Contract: protonpotts_ph_objective_knobs_parity.bth.toml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…position, no ranker) is not compared; smoke crashed on it (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…, disclosed): an f32 tokens-only miss where aminx f32 == upstream f64 and upstream f32 != upstream f64 is reported as upstream f32 drift, not a pass; no tunable parameter; same 88 calls (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…m_drift, reported separately, completes the count, never a pass) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…): thirteenth wave ph_objective_knobs, 98 controls; counts only (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…_argv, WAVES, 5 mutants in launch_wave/branch_manifest, closure edges, README) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…scale_mode is still refused); CI failed on the stale refusal (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
…es / 98 controls; verify_wave 135/135, only this row was stale) (#2621) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SGHJhq24fYihaMivnXNhro
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The
protonpotts_featureswave, and the P4d dump its perturbation control called for.74e63413; bathos run479b640b-7c0b-4d75-86bd-79cce1909bbe, completed / pass / clean tree, own synced venv):featurize_pdbagainst the sealed dumps on ten structures, exact on every key withXcompared everywhere; the 1IFC refusal must match; eleven perturbations (six wrong rules, five corrupted outputs) must each be rejected by the same comparison. Result: 10/10 exact, refusal matched, 11/11 detected.stale_rows.py: 0 of 8 stale.The control earned its keep
A smoke run (numbers not cited) showed the perturbation "O is not a backbone atom" undetected by the nine earlier cells: at the 0.8 threshold every residue whose
Ofails also failsN/CA/C, so the rule had been read from upstream's source but never measured. The sidecar's own instruction was "add a cell, do not loosen the control", so I scanned the 137 structures and pre-registered P4d (1HGU, 1OLR) with its predicted lengths stated up front (183/219 if upstream requires O, 184/220 if not).P4d is graded
failand I have not re-graded itBathos run
7ec1f6b9, outcome fail: my criterion required both cells to featurize and upstream refused 1HGU ("unknown atom token 7", cause not understood). That was my design error (P4c's criterion allowed a refused cell as data). What it did establish, as values: 1OLR featurized with 219 residues, the predicted length if upstream requiresO(220 otherwise), reproducibly. That one cell is what makes the wave's O perturbation detectable.Known divergence
Upstream refuses 1HGU;
featurize_pdbaccepts it, and nothing validates its output there. Excluded from the wave, recorded in the sidecar and spec §40.4.Next
P6 (encoder reuse + weight conversion, 0 unmapped keys), independent of the host side.
🤖 Generated with Claude Code