Skip to content

Binding-aware cross-reactivity axes are no longer tracked by any open issue #412

Open

Description

@iskandr

The binding-aware cross-reactivity axes — self_mimic_* (nearest self peptide that also binds at least as strongly as the query at this allele), self_strongest_nearby_*, and the structured self_nearest_candidates column — have fallen out of issue tracking entirely.

Where they used to live:

An issue search for self_mimic / self_strongest_nearby / self_nearest_candidates returns only #124 and #190. The design notes for them exist only in #124's 2026-04-16 comments.

Two things wanted here:

  1. Track the axes under their own issue, carrying over the decisions already recorded in those comments: per-(peptide, allele) rather than per-peptide; self_mimic_* as the primary cross-reactivity signal with "none found" meaning no match within the stated reference, search and prediction coverage, never no presentable risk; binding_metric= defaulting to percentile_rank for cross-tool comparability; TCR-facing vs anchor position weighting (TCR-facing substitutions read as more distant, anchor substitutions as less, since the latter keep the same TCR-facing surface).
  2. Fix the self_proteome.py docstring, which now points readers at an issue that does not cover the feature.

Found while triaging #124.

Scientific semantics correction (Vaxrank feedback, 2026-10-02): sequence similarity, same-allele predicted binding and healthy-tissue presentation are separate evidence axes, not proof of TCR recognition or absence of risk. Preserve multiple candidate matches and every origin, including CTA/non-CTA shared sequences. Exact self ligands within a vaccine window must be distinguishable from similar peptides relevant to the intended target. Reference/CTA ownership remains oncoref; Vaxrank owns window repair and required-target constraints. Primary study: https://www.nature.com/articles/s41541-023-00713-y .

Activity

  1. iskandr commented on Oct 2, 2026

    @iskandr
    ContributorAuthor

    Shipped the bounded evidence primitive in Topiary 5.92.0, PR #456. match_self_peptides / SelfProteome.match_candidates retain all same-length candidates within an explicit Hamming radius, all origins, supplied observations/predictions, same-allele coverage and bounded-negative search semantics. self_matches_in_windows enumerates every exact window occurrence. Typed CSV/TSV preserves the evidence and its search identity.

    The actual Vaxrank 3.36 consumer loads its published builtin:openvax-v1 bundle and changes window choice using this evidence while retaining both intended epitopes, both alleles and all target score. This adds no second recipe or Vaxrank selection rule.

    Remaining here: binding-conditioned candidate ranking/axis definitions, explicit model/metric selection, broader indel enumeration and any scientifically reviewed positional weighting. This PR does not equate presentation or similarity with TCR recognition. Full gate: 5,048 passed without skips or unexpected warnings; consumer/focused tests: 44 passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions