You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #292 introduces `SpliceOutcomeSet`, a multi-outcome wrapper for splice-disrupting variants. The same "one DNA event → multiple plausible proteins" pattern appears in several adjacent workstreams:
Each of these will want to wrap an underlying effect in a set of plausible outcomes. Committing to the `SpliceOutcomeSet` name / shape pigeonholes the abstraction into splicing.
Rename / refactor `SpliceOutcomeSet` to inherit from it cleanly and expose splice-specific fields (`disrupted_signal_class`, `candidate_proteins`, etc.) as extensions of the generic surface.
Design the `Candidate` side analogously — `SpliceCandidate` becomes a subclass of a generic `OutcomeCandidate` carrying `(outcome_label, plausibility, description, coding_effect, predicted_class_name)`.
Consider integrating with `predict_variant_effects` uniformly: a single `multi_outcome=True` (or `outcome_sets=True`) kwarg that wraps any multi-outcome-capable effect, of which splice is the first implementation.
Downstream consumers (isovar, vaxrank, neoantigen pipelines) write `isinstance(e, MultiOutcomeEffect)` rather than `isinstance(e, SpliceOutcomeSet)`, so future wrappers don't churn their filtering code.
Ordering
This should land after the foundational `MutantTranscript` refactor (#271) — the generic `MultiOutcomeEffect` is a good customer for a proper transcript-edit abstraction, and doing both at once collapses two refactors into one.
Background
PR #292 introduces `SpliceOutcomeSet`, a multi-outcome wrapper for splice-disrupting variants. The same "one DNA event → multiple plausible proteins" pattern appears in several adjacent workstreams:
Each of these will want to wrap an underlying effect in a set of plausible outcomes. Committing to the `SpliceOutcomeSet` name / shape pigeonholes the abstraction into splicing.
Scope
Ordering
This should land after the foundational `MutantTranscript` refactor (#271) — the generic `MultiOutcomeEffect` is a good customer for a proper transcript-edit abstraction, and doing both at once collapses two refactors into one.
Related