Skip to content

Splice signal downgrade when germline already disrupts the signal #363

Description

@iskandr

Documented in docs/germline.md under Limitations:

Germline-disrupted splice sites get no explicit downgrade. When germline already breaks a splice signal that the somatic also targets, the patient transcript carries the germline edit, so classification runs against the patient signal — but there's no separate "germline already broke this; downgrade severity" path.

Also noted in varcode/germline.py near line 586:

Splice-signal recomputation when germline already disrupts a splice site varcode would otherwise classify against. Falls out partially because the patient transcript carries the germline edits, but downgrade-by-already-broken needs targeted work.

What's missing

Today's germline pipeline applies germline edits to the transcript, so the patient cDNA is correct. But splice classification is still position-based (canonical donor/acceptor windows) and does not check whether the germline-applied signal still looks canonical. When germline has already broken the GT/AG canonical motif, a somatic variant at the same site is classified as if it were the one breaking it — overstating severity.

Proposed scope

A focused follow-up to the closed #285 spec. Minimum:

  1. After applying germline to the transcript, recompute the canonical-window bases for any exon adjacent to a somatic splice-window variant.
  2. If the patient signal is already non-canonical, classify the somatic effect at one severity tier below the reference-relative call (e.g., SpliceDonorSpliceRegion, or attach a SpliceSignalStatus.NON_CANONICAL_GERMLINE evidence flag rather than downgrading the class).
  3. If the patient signal is fully disrupted, surface a DISRUPTED_GERMLINE evidence flag and mark the prediction low-confidence (the patient may not express this isoform; RNA evidence is required to resolve — composes with Incorporate RNA-level evidence for variant effects #259).

Out of scope

See also

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions