Stop our own depletion edges from deleting curator assembly edges - #83
Merged
Merged
Conversation
Isolated from the compartment change so the two can be measured apart. They differ in kind: this restores CURATOR-derived complex composition that our own inference was deleting, while the compartment change extends that inference into more compartments. Root detection ran over the edge list after depletion edges were appended and counted them. A root is "produced by no reaction in this pathway" -- the code's own words -- and a depletion edge is not production, it is catalyst -> consumed input, invented by us. Counting it makes a boundary complex look produced, so it silently loses its subunit decomposition and knockouts of its subunits stop reaching it. Live on main today wherever a cytosolic depletion edge lands on a boundary complex. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The defect, live on main
root_uuids = sources - targetsis computed after depletion edges areappended, and counts them.
A root is "produced by no reaction in this pathway" — the code's own comment —
and that is what marks a boundary complex worth decomposing into its subunits,
so a knockout of a subunit can reach it. A depletion edge is not production:
it is our own modelling inference,
catalyst → consumed input, emitted earlierin the same function. Counting it makes a boundary complex look produced, so it
silently loses its subunit decomposition and subunit knockouts stop reaching it.
This happens on main today wherever a cytosolic depletion edge lands on a
boundary complex. The fix restores 46 assembly edges, among them
p-MAPK1 → MAPK1 dimerand the MAPK3/MAPK7 equivalents — curator-derivedcomplex composition, deleted by an edge we invented.
Measured
The entire regression is the tuning set, and almost all of it is TP53, where the
restored edges flip the direction of 239 decidable predictions. TP53 is dense
enough that direction is unstable to small structural changes — and it is a
pathway we tune on, so that instability should not veto a fix that is neutral
on every pathway outside the tuning set.
Rejecting this on the pooled −54 would have been exactly the overfitting the
paper's tune-on-ten / report-on-the-rest protocol exists to prevent. See
reactome/deltasignal#35 for the split tooling and the full numbers.
Verified
Deterministic (
PYTHONHASHSEEDpinned), on R-HSA-450294:The compartment fix is deliberately not included here — see #81 for why the
two are worse together than either alone.
🤖 Generated with Claude Code