Skip to content

Make native mutation datasets portable with verified references - #573

Merged
iskandr merged 2 commits into
mainfrom
fix/563-portable-native-references
Oct 5, 2026
Merged

iskandr merged 2 commits into
mainfrom
fix/563-portable-native-references

Conversation

@iskandr

@iskandr iskandr commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Native mutation archives currently reopen the original annotation database while restoring supporting transcripts, so moving a result or deleting its temporary reference can prevent scoring and construct replay. This change restores transcript metadata lazily using released PyEnsembl 2.22.2 and exports custom-reference resources into a verified, relative sibling bundle.

Loading verifies size/SHA-256, preserves the exact reference/gene/transcript identity, and never substitutes an old path or another release. Missing resources still allow retained evidence and construct replay; annotation indexing is an explicit local-only operation. Saved protein IDs avoid annotation lookups during construct replay, including legacy archives with matching recorded transcript provenance. Evidence-only re-save retains the expected resource checksums.

Standard Ensembl release/species identity remains intact, with explicitly attached local DNA bundled. Move the native CSV/TSV and its .references directory together for annotation work; bundle size reflects the custom reference resources supplied.

Validation: lint passes; 24 focused regressions pass, including both BAM strands, fresh-process relocation, actual annotation/effect queries, legacy archives, missing/tampered resources, attached reference DNA, and CLI peptide/mRNA FASTA plus PDF output. The final full suite passes: 2,135 tests, with the existing 38 expected warnings.

Closes #563. Upstream lazy locus restoration shipped in openvax/pyensembl#436 (fixes openvax/pyensembl#435), published as 2.22.2. Vaxrank version: 3.37.2.

@iskandr
iskandr merged commit e40f48e into main Oct 5, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant