vep-rs: high-throughput Rust variant annotation with population-scale concordance to Ensembl VEP
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,…
The research introduces vep-rs, a high-throughput Rust reimplementation of Ensembl's Variant Effect Predictor (VEP) release 115.2. The Rust version was tested against six variant datasets, including ClinVar, gnomAD chr21, and 1000 Genomes chr21 across GRCh37 and GRCh38. On SNPs and indels, vep-rs produced exactly the same tuple count as VEP for all six datasets, with an F1 score of at least 0.999974.
Only three of 260,638,766 tuples differed between VEP and vep-rs, with the error rate being one in 38,000 per dataset. After removing two documented VEP defect shapes, the F1 score for all datasets rose to 1.000000.
For each consequence class, 29 out of 30 Sequence Ontology terms with at least 1,000 tuples showed an F1 score of 0.99 or higher, with the lowest score being 0.540 on start_retained_variant. This score is attributed to a VEP defect rather than vep-rs. On structural variants, vep-rs achieved F1 scores of 0.975395 on GRCh37 and 0.909998 on GRCh38.
The Rust implementation proved to be significantly faster than the Perl VEP, being 101x-284x faster on ARM and 78.3x-192x faster on x86 architectures, with a geometric mean of 135x and 176x respectively.
The authors identified five divergence classes where vep-rs deviates from VEP, all of which are defects in VEP release 115. These include contradictory consequence calls, dropped splice-region terms, annotation against incorrect chromosomes, and output dependent on input batch composition. Despite these differences, vep-rs can be adopted as a substitute for VEP in a measured, per-term bound, shedding VEP's contradictory and batch-dependent calls and enabling population-scale variant annotation at 78.3 to 284 times VEP's throughput, with structural-variant sets at 22.5 to 52.9 times.
The vep-rs reimplementation, its harness, comparators, and performance data are released under the Apache-2.0 license and are available at https://github.com/natera-open-source/vep-rs. Supplementary data are also available at Bioinformatics online.
Written by urgent.news from bioRxiv's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.