Sequence-variant corpus: substitution tranche (subs × mod, termini, VCF depth, trypsin cut-sites, MNV, variant-borne mod, double subs)#1098
Open
trishorts wants to merge 1 commit into
Conversation
Deepen the sequence-variant corpus along the substitution axis with 14 new
oracle nodes (hand-derived from the bible, never captured from code):
- S00-S02 sub before / on / after a PTM. S01 (T->S) pins the D7 case for a
residue-specific motif -- dropped both positionally and motif-wise.
- S03-S04 substitution at the protein start / end (in-range boundary).
- S05-S06 VCF substitution passing / failing the minAlleleDepth cutoff.
- S07-S09 bottom-up: a substitution moves the trypsin knife -- destroy (K->A),
create (A->K), and block-before-proline (I->P under trypsin|P).
First digestion-axis nodes (installment 5).
- S10 multi-residue MNV (TI->VL) over a begin/end range, same length.
- S11 variant-BORNE mod: V4->T carries a phospho stored on the variant
(reciprocal of F03); round-trip gives it teeth on smith-chem-wisc#1083 serialization.
- SS00-SS01 double substitutions: independent, and one landing on the PTM.
Harness: BuildMods now also registers variant-borne (VMOD) mods with the motif
taken from the variant residue; BuildXml emits the nested <subfeature>/
<subposition> for VMOD and labels VCF subs as missense_variant. 62/62 green
(31 nodes x Corpus_Node + Corpus_Node_RoundTrip).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1098 +/- ##
=======================================
Coverage 91.50% 91.50%
=======================================
Files 439 439
Lines 53542 53542
Branches 6511 6511
=======================================
Hits 48995 48995
Misses 3275 3275
Partials 1272 1272 🚀 New features to boost your workflow:
|
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.
Substitution tranche for the sequence-variant corpus
Follows #1084 (L0 corpus) and #1095 (L1 deletions). Test-only. Deepens the executable
spec along the substitution axis with 14 new oracle nodes. Every
ExpectedFormsoracle is hand-derived from the domain model (bible), never captured from running
code — so a green run certifies the code matches the intended behavior, and a future
regression turns a node red.
Each node runs through both families already in the fixture:
Corpus_Node— build XML →LoadProteinXML(variants expand at load) → digest → compare, run twice for determinism.Corpus_Node_RoundTrip— same, but the consensus protein is serialized through the realProteinDbWriterand re-read first, so encode+decode is exercised too.New nodes
T→S) pins the D7 case for a residue-specific motif — the phospho drops both positionally and motif-wise (our mod is "on T"; S≠T).minAlleleDepthcutoff (fully VCF-encoded,ApplyVariantsdepth path).K→A), create one (A→K), and block cleavage via the not-before-proline rule (I→Pundertrypsin|P). First digestion-axis nodes.TI→VL) over a begin/end range, equal length (exercises the range apply path for a substitution).V4→Twhose new T bears a phospho stored on the variant (SequenceVariation.OneBasedModifications). Reciprocal of F03; the round-trip family gives it real teeth on variant-borne-mod serialization (#1083).Harness changes (test infra only)
BuildModsnow also registers variant-borne mods (aVMODtoken on a variant), with the motif taken from the variant residue, de-duplicated byIdWithMotif.BuildXmlemits the nested<subfeature type="modified residue">/<subposition>structure forVMOD, and labels VCF substitutions asmissense_variant.Result
62 / 62 green (31 nodes × 2 families). No production code touched.
🤖 Generated with Claude Code