Interpret junctions, frameshifts, and extensions in mapped partial SV observations
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 87
- Forks
- 28
- Avg merge
- 3h 27m
- Merged PRs (30d)
- 27
Description
Follow-up to #462 / #465.
With #465, a partial observation (protein_completeness other than start_to_stop) reports a change only where cds_start/cds_end and reference-transcript segments place an observed codon in frame on a differing reference CDS codon. Everything else stays None. That is conservative (never a false False or a truncation from missing coverage), but these observed, mapped structures still read as unresolved even though the observed sequence demonstrates a change:
- Junction into other sequence. The fragment reads in frame from reference CDS codons across a fusion breakpoint into partner or unmapped sequence. A mapped codon at reference offset
kfollowed by an observed codon that doesn't map tok+3shows that the downstream protein differs. Example:partial_endcDNA made of CFTR CDS codons 0–29 followed by BRCA1 codons, with segments for both. The result is(None, None). - Frameshift inside the fragment. A 1-bp inserted or deleted segment between two mapped CFTR segments puts every downstream codon out of frame. They are skipped (
k % 3 != 0), so the result is(None, None), while the complete path reportsTruefor the same molecule. - In-frame N-terminal extension. An observed ATG in the 5′ UTR is in frame with the CDS (
partial_end). Codons withk < 0are ignored, so the result isNone, where the complete path reportsTrue. This one also needs a decision on whether an observed upstream ATG establishes initiation. Exacto'spartial_endonly means the first codon is ATG.
Constraints for a fix: a change must be established by observed, mapped sequence, never inferred from missing coverage. Keep the #465 regressions (for example, a mapped reference fragment with a shorter protein stays None). Cover both strands, split segments, and the fusion 3′-partner case.
Found in code review of #465. No current producer emits mapped partial models (Exacto imports carry opaque observed-sequence segments), so this is not a regression.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the implementation and regressions from #465, then trace how mapped partial models and Exacto's opaque observed-sequence segments are handled. Define observed evidence for junctions, internal frameshifts, and in-frame N-terminal extensions without inferring from missing coverage. Done means both strands, split segments, fusion 3′-partner cases, and the #465 regressions are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- bioinformatics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100