Skip to content

specs/048: pathogens.csv; homodimer-aware output binding (LNG_BIND_STOICH) - #110

Merged
adamjohnwright merged 7 commits into
mainfrom
feat/048-experimental-levers
Oct 10, 2026
Merged

adamjohnwright merged 7 commits into
mainfrom
feat/048-experimental-levers

Conversation

@adamjohnwright

@adamjohnwright adamjohnwright commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

For deltasignal specs/048. The arms, results and review record are in deltasignal specs/048-experimental-levers/research.md (PR reactome/deltasignal#101).

Changes

  • pathogens.csv, always written beside drugs.csv, listing pathogen-derived entities:
    • a leaf with a species and none human;
    • a complex with any such component (a Polymer's repeatedUnit counts as a component);
    • a set whose members all are.
  • LNG_PATHOGEN_PROTEIN, on by default. A leaf counts only when it is a protein: an EWAS on a ReferenceGeneProduct or ReferenceIsoform. Viral nucleic acids are not listed; in DDX58/IFIH1 they are the ligand the pathway senses.
  • LNG_BIND_STOICH, on by default. The output-binding signature keeps a complex's leaf multiset with stoichiometry. Before this, a homodimer tied with its monomer and the sorted-id tie-break crossed the pairs at R-HSA-5675376.

Measured (deltasignal, pre-registered, both against canonical)

  • bind: no prediction moves on either axis. It is adopted as a faithfulness fix: binding ties fall 64 → 58, and edges change in 10 pathways.
  • pathp, and both changes combined (combo): experimental +7 (7/0, PDPK1 knockout), curator held-out +1, tuning +14. Nothing breaks, and the prediction was met exactly.
  • The first pathogen rule, which also held viral RNA, broke 12 DDX58/IFIH1 cases (net −11). It was traced case by case, which led to the protein rule.

Review: an adversarial review found no blocking defect. Fixed:

  • viral Polymers;
  • the signature cache key;
  • the docstring;
  • nested-stoichiometry tests.

Polymer handling lists no new entity in any of the 92 catalog pathways. CI is green at 4a914a4.

Merge order: this PR first. Then I rebuild current from generator main and benchmark it, and deltasignal#101 merges after that, because its new default DS_PATHOGEN_MODE=inert needs pathogens.csv in the catalog.

🤖 Generated with Claude Code

adamjohnwright and others added 7 commits October 10, 2026 02:57
…joins through member/split hops

The pool joins (LNG_POOL_JOIN_MEMBERS, LNG_POOL_REGEN=protein) find the
MAPK1 and MAPK3 pools in RAF, which then share 246 capped intermediate
nodes and are both dropped. Kept here for the shared-intermediate design.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…OICH)

pathogens.csv lists pathogen-derived nodes by the drug rule with species in
place of the Drug class (a leaf with a species and none human; a complex if
any component is; a set if every member is), for a consumer modelling an
uninfected cell. Written always, networks unchanged.

LNG_BIND_STOICH=1: the output-binding signature keeps a complex's leaf
multiset, as its docstring said it did. Without it a homodimer reads as its
monomer and the tie is broken by sorted rank, so R-HSA-5675376 bound
p-MAPK1 to the MAPK1 dimer and the p-MAPK1 dimer to MAPK1.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gnal specs/048 arm bind: 0 predictions moved, structural checks met)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…sv lists only entities carrying a pathogen PROTEIN; viral RNA ligands are not held

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… adopted)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…the query test now carries reference classes

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mers count via their unit); signature cache keyed on LNG_BIND_STOICH; docstring names the real RNA classes; tests for nested stoichiometry, the cache key and Polymers

Checked: the Polymer change lists no new entity in any of the 92 catalog pathways (analysis/048/polymer_check.py), so the measured arms stand.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@adamjohnwright
adamjohnwright marked this pull request as ready for review October 10, 2026 18:02
@adamjohnwright
adamjohnwright merged commit c0e1b2a into main Oct 10, 2026
4 checks passed
@adamjohnwright
adamjohnwright deleted the feat/048-experimental-levers branch October 10, 2026 18:15
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