Skip to content

LENS / pVACseq path produces empty reports (per_allele_scores not populated by loaders) #295

Description

@iskandr

What happens

Running vaxrank with --input-pvacseq or --input-lens against a real pVACseq / LENS TSV produces an empty rank table. Every variant is dropped during ranking with a "No epitopes for peptide" log message, even when the loaded predictions have legitimate IC50s.

Smoke: cAIrn's HCC1395 example pVACseq TSV (317 rows of real predictions) ranks 0 variants.

Root cause

PR #291 (3.1.0) introduced CandidateEpitope.per_allele_scores as the canonical storage for per-(peptide, allele) DSL scores, and made VaccinePeptide.target_epitope_score read from it. predict_epitopes was updated to populate the new field at predict time. The external-input loaders load_lens and load_pvacseq were not — every loaded epitope ships with per_allele_scores == {}, so epitope_score == 0, target_epitope_score == 0, combined_score == 0, and the ranker drops the variant.

The 3.1.0 PR was verified against the upstream (VCF + BAM) path but not the external-input path.

Fix

Tracked in #294. Adds epitope_dsl.attach_per_allele_scores(epitopes, cfg=None) and calls it at the end of both loaders. Two regression tests pin both paths.

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