Skip to content

Splice signal downgrade when germline already disrupts the signal #363

@iskandr

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions