Skip to content

HLA LOH + B2M / TAP / antigen-presentation pathway integrity from LENS #264

Description

@iskandr

Status

LENS reports carry essential antigen-presentation-pathway state that vaxrank currently ignores. If the patient has lost an HLA allele or has a damaging mutation in B2M / TAP1 / TAP2, MHC-I presentation is broken and predictions for that allele or pathway are clinically meaningless.

LENS columns vaxrank ignores

HLA loss-of-heterozygosity

  • `lohhla_allele_loss_pval` — LOHHLA-derived p-value for HLA allele loss
  • `hla_allele_proportion_rna_tumor_reads`, `hla_allele_proportion_hla_rna_tumor_reads` — HLA expression in tumor RNA
  • `hla_allele_raw_read_aligned_count`, `hla_allele_support` — read support for the HLA call

Antigen presentation machinery integrity

  • `b2m_mutations` (count of damaging B2M mutations) + `b2m_tpm` (β2-microglobulin expression)
  • `tap1_mutations` + `tap1_tpm`
  • `tap2_mutations` + `tap2_tpm`

If any of these are mutated or B2M/TAP expression is critically low, MHC-I presentation can't happen regardless of how strong a peptide-binding prediction is.

Why this matters for ranking

A patient with TAP2 mutated → all MHC-I predictions are downgraded to "presentation impossible." Today vaxrank ranks them identically to a TAP-intact patient. That's wrong and silently ships a non-functional vaccine.

Vaxrank data-model gap

These are per-patient properties (or per-allele, for LOH), not per-peptide. Need a new place to carry them:

  • `PatientInfo` (already exists in `vaxrank/patient_info.py`) gains `hla_allele_status: dict[allele, dict]` and `apc_pathway_status: dict` fields.
  • LENS loader populates these from the relevant columns (collapse per-allele LOH p-values across rows; B2M/TAP info is constant per patient).
  • Ranking layer:
    • Hard filter: drop predictions for alleles with `lohhla_allele_loss_pval < threshold`.
    • Score penalty: apply a presentation-pathway penalty when B2M/TAP have damaging mutations.
  • Reports surface the patient-level pathway status prominently so reviewers see it before consulting per-peptide predictions.

Acceptance

  • LENS rows populate `PatientInfo` with HLA + APC pathway state.
  • `--drop-lost-hla-alleles` flag filters predictions for LOH'd alleles (default: warn but include, so users see the data).
  • Reports surface APC pathway integrity in the patient-info section.
  • Tests against the Pt02 fixture pin the wiring.

Related

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