Skip to content
DraconiticResearch
Search Sources API
194,226 studies31 sourcesUpdated 26 min ago
PreprintCC BYbioRxiv

vep-rs: high-throughput Rust variant annotation with population-scale concordance to Ensembl VEP

  1. 1Natera, Inc.

Abstract

Ensembl VEP is the de facto reference for variant consequence annotation, but its Perl implementation limits throughput, and the open reimplementation benchmarked here is validated on a set too small to bound its disagreement with it. We present vep-rs, a Rust reimplementation of Ensembl VEP release 115.2, audited over 260,638,766 VEP consequence tuples, each a (location, allele, feature) key carrying a Sequence Ontology term set, from six variant datasets (ClinVar, gnomAD chr21, and 1000 Genomes chr21 across GRCh37 and GRCh38). On SNPs and indels vep-rs emits exactly VEP's tuple count on all six and attains F1 [≥] 0.999974, differing from VEP on 3,169 tuples, at most one in 38,000 per dataset; with two documented VEP defect shapes set aside, F1 rounds to 1.000000 on all six. Per consequence class, 29 of the 30 Sequence Ontology terms carrying at least 1,000 tuples exceed F1 0.99, and the lowest, 0.540 on start_retained_variant, is entirely a VEP defect. On structural variants, F1 is 0.975395 (GRCh37) and 0.909998 (GRCh38). Timed on 20 independent machines per engine and architecture, vep-rs is faster than VEP by 101x-284x on ARM (geometric mean 176x) and 78.3x-192x on x86 (geometric mean 135x). Five divergence classes are documented, four of them defects in VEP release 115 that vep-rs does not reproduce: a consequence call that contradicts itself, a splice-region term dropped from a variant that lies in a splice region, annotation against a chromosome the variant does not lie on, and output that depends on input batch composition. A pipeline keyed on VEP consequence terms can therefore adopt vep-rs against a measured, per-term bound, shed VEP's contradictory and batch-dependent calls, and annotate population-scale inputs at 78.3 to 284 times VEP's throughput, and per-file structural-variant sets at 22.5 to 52.9 times. Availability and implementation: vep-rs, its harness, both comparators, and every per-machine wall time are released under Apache-2.0 at https://github.com/natera-open-source/vep-rs (release v0.1.0, archived at https://doi.org/10.5281/zenodo.22837897). Supplementary information: Supplementary data are available at Bioinformatics online.

Related

  1. Integrating multi-omics with machine learning: from genomic variant functional annotation to pharmacogenomics and biomarker discovery
    Jing Lv, Jinjin Guo, Yangyang Wang +3
    Frontiers in PharmacologyPeer-reviewedCC BY 4.0Full textGenetics & genomicsCrossrefEurope PMCPMC
  2. hvantk: an agentic multi-omics framework for variant annotation and analysis
    E. Audain, Y. Perez-Riverol, M.-P. Hitz
    bioRxivPreprintCC BY-NCFull textBioinformatics & computational biologybioRxiv
  3. High-throughput variant libraries and machine learning enable robust target-site selection for toehold-switch design in Detectrons
    J. Han, S. L. Shipman
    bioRxivPreprintCC BYFull textSystems & synthetic biologybioRxiv
  4. Genomic variation and ancestry of Helicobacter pylori in the admixed population of Cabo Verde reveal host adaptation, limited host-pathogen ancestry concordance, and signatures of trans-Atlantic slave trade migrations
    T. Archampong, Y. L. Tam, C. Davison +15
    bioRxivPreprintCC BYFull textEvolutionary biologybioRxiv
  5. Population-scale drug target and variant prioritization with Varformer
    A. Wenteler, V. Neduva, Genes & Health Research Team +3
    bioRxivPreprintCC BYFull textBioinformatics & computational biologybioRxiv
BibTeX
@misc{porter2026veprs,
  title = {{vep-rs: high-throughput Rust variant annotation with population-scale concordance to Ensembl VEP}},
  author = {M. Porter and R. Borkowski},
  howpublished = {bioRxiv},
  year = {2026},
  month = sep,
  doi = {10.64898/2026.09.22.753614},
  url = {https://www.biorxiv.org/content/10.64898/2026.09.22.753614v1},
  note = {CC BY},
}
RIS
TY  - UNPB
TI  - vep-rs: high-throughput Rust variant annotation with population-scale concordance to Ensembl VEP
AU  - M. Porter
AU  - R. Borkowski
PY  - 2026
DA  - 2026/09/22
PB  - bioRxiv
DO  - 10.64898/2026.09.22.753614
UR  - https://www.biorxiv.org/content/10.64898/2026.09.22.753614v1
AB  - Ensembl VEP is the de facto reference for variant consequence annotation, but its Perl implementation limits throughput, and the open reimplementation benchmarked here is validated on a set too small to bound its disagreement with it. We present vep-rs, a Rust reimplementation of Ensembl VEP release 115.2, audited over 260,638,766 VEP consequence tuples, each a (location, allele, feature) key carrying a Sequence Ontology term set, from six variant datasets (ClinVar, gnomAD chr21, and 1000 Genomes chr21 across GRCh37 and GRCh38). On SNPs and indels vep-rs emits exactly VEP's tuple count on all six and attains F1 [≥] 0.999974, differing from VEP on 3,169 tuples, at most one in 38,000 per dataset; with two documented VEP defect shapes set aside, F1 rounds to 1.000000 on all six. Per consequence class, 29 of the 30 Sequence Ontology terms carrying at least 1,000 tuples exceed F1 0.99, and the lowest, 0.540 on start_retained_variant, is entirely a VEP defect. On structural variants, F1 is 0.975395 (GRCh37) and 0.909998 (GRCh38). Timed on 20 independent machines per engine and architecture, vep-rs is faster than VEP by 101x-284x on ARM (geometric mean 176x) and 78.3x-192x on x86 (geometric mean 135x). Five divergence classes are documented, four of them defects in VEP release 115 that vep-rs does not reproduce: a consequence call that contradicts itself, a splice-region term dropped from a variant that lies in a splice region, annotation against a chromosome the variant does not lie on, and output that depends on input batch composition. A pipeline keyed on VEP consequence terms can therefore adopt vep-rs against a measured, per-term bound, shed VEP's contradictory and batch-dependent calls, and annotate population-scale inputs at 78.3 to 284 times VEP's throughput, and per-file structural-variant sets at 22.5 to 52.9 times. Availability and implementation: vep-rs, its harness, both comparators, and every per-machine wall time are released under Apache-2.0 at https://github.com/natera-open-source/vep-rs (release v0.1.0, archived at https://doi.org/10.5281/zenodo.22837897). Supplementary information: Supplementary data are available at Bioinformatics online.
ER  -