Skip to content

Regulator wiring: set-pool nodes (default on), cap pools (off), drugs.csv - #99

Merged
adamjohnwright merged 9 commits into
mainfrom
feat/set-pool
Sep 28, 2026
Merged

adamjohnwright merged 9 commits into
mainfrom
feat/set-pool

Conversation

@adamjohnwright

@adamjohnwright adamjohnwright commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Regulator wiring in the generator (deltasignal specs/033, 036, 038, 032).

  • LNG_SET_POOL now defaults ON. A set-valued catalyst or regulator becomes one pool node (the set itself). Its members feed the pool by set_member edges, and the pool feeds each reaction copy once, instead of every member being wired onto every copy.
    • Measured against a fresh pools-off control, with deltasignal DS_SET_POOL_MODE=product: held-out +6 / −2, experimental +3 / +8. The max reading is refuted.
    • nodes.csv gets the node kind set_pool.
    • Review fixes: a pool never depletes its own member; pooling only happens under complex-as-node.
  • LNG_CAP_POOLS (default OFF). In a reaction the variant cap bundled, each set input becomes a pool of its alternatives. Each complex alternative is an AND unit, and a leaf shared with another input stays a direct edge. It fixes the structure (RAF's scaffold binding reaction: 28 inputs → its 4 curated components), but it is not adoptable on accuracy (specs/037).
  • drugs.csv: drug-derived entities per pathway (from drugs.csv: drug-derived entities per pathway (deltasignal specs/032) #98, which this includes).
  • Tests: test_set_pool.py, test_cap_pools.py (Phase 3 emission included, gates mutation-checked) and test_provenance_exports.py. The legacy fan-out tests are pinned to LNG_SET_POOL=0. 1,071 pass; the 1 failure is the stale-output test that also fails on main.

🤖 Generated with Claude Code

adamjohnwright and others added 9 commits September 26, 2026 13:51
…th any drug component; set whose every member is one) beside cofactors.csv, for a consumer modelling a cell without the drug (deltasignal specs/032). Network output unchanged. Also: stale +228 comment -> +197.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…iled drug query no longer costs containment.csv); class+name from the structure query (the unlabelled MATCH scanned every node, ~30 s a pathway; whole catalog now 0.8 s); list each node's exact id, a set_variant judged by its parent or chosen members; tests: candidate-only set (dropping hasCandidate now caught), the Cypher+cache path, variant ids.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…atalyst/regulator becomes one pool node (the set) fed by set_member edges, feeding each reaction copy once, instead of every member wired onto every copy as a separate AND (catalyst/pos) or OR (neg) term. Reachability unchanged. nodes.csv kind set_pool.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…er (the stId guards compared the SET's id; 4 E3-ligase sets would have closed member->pool-|member cycles); pooling only under complex-as-node; pool->reaction keeps the role flag under LNG_SET_MEMBERS_OR. Tests: depletion self-skip (mutation-checked), complex-as-node guard, SET_MEMBERS_OR, export_nodes set_pool kind.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…xp +3); legacy regulator tests pinned to LNG_SET_POOL=0; test that pooling is the default

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…hat resolves to several nodes in one virtual reaction (alternatives bundled by the variant cap) is emitted as a set pool feeding the reaction once. RAF's scaffold binding reaction: 28 inputs -> its 4 curated components. Tests to follow.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ember not, flag off, no leak between pathways, modifier sets excluded

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…undled (CAPPED_IDS; an uncapped copy's chosen complex alternative resolves to co-required subunits -- miR-93 RISC in PIP3 was averaged); leaves grouped by alternative, a complex alternative is an AND unit (leaves -assembly-> alternative -set_member-> pool); a leaf another input also maps to stays direct; curated set stoichiometry on the pool edge; depletion onto a pool goes to its members. Phase 3 input emission factored into _emit_vr_inputs and tested; gate mutation-checked.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@adamjohnwright adamjohnwright changed the title DRAFT: set-valued catalysts/regulators as one pool node (deltasignal specs/033) Regulator wiring: set-pool nodes (default on), cap pools (off), drugs.csv Sep 27, 2026
@adamjohnwright
adamjohnwright marked this pull request as ready for review September 27, 2026 22:51
@adamjohnwright
adamjohnwright merged commit e88f7a3 into main Sep 28, 2026
4 checks passed
@adamjohnwright
adamjohnwright deleted the feat/set-pool branch September 28, 2026 11:44
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