vepyr
vepyr (/ˈvaɪpər/) — VEP Yielding Performant Results — is a blazing-fast Rust
reimplementation of Ensembl's Variant Effect
Predictor, exposed as a
Python library and a vepyr command. It builds and uses Ensembl VEP caches
locally, annotates VCF input through a native DataFusion engine, and returns
results as a polars.LazyFrame or a VCF with CSQ in the INFO column.
📚 Documentation
https://biodatageeks.org/vepyr/
| Quick start | Install, get a cache, annotate |
| Polars DataFrames | Schema, region filters, filter_vep in Polars |
| Command line | vepyr annotate, VCF in, VCF out |
| Nextflow | The vepyr/annotate module, amd64 and arm64 containers, and the vcf_annotate_vepyr subworkflow (normalize, optional Hugging Face cache, annotate) |
| Download Ensembl VEP and plugin caches | Prebuilt release-116 caches |
| Caches | Cache types, entity schemas, CSQ output fields |
| Plugins | CADD, SpliceAI, AlphaMissense, ClinVar, dbNSFP, PhenotypeOrthologous |
| API reference | build_cache(), annotate(), … |
| Performance | Benchmarks vs Ensembl VEP |
Install
pip install vepyr
or from bioconda (linux-64, osx-64, osx-arm64):
conda install -c conda-forge -c bioconda vepyr
Either installs both the Python package and a vepyr executable:
vepyr annotate \
-i input.vcf.gz \
-o annotated.vcf.gz \
--dir_cache ~/vepyr_cache/116_GRCh38_ensembl \
--fasta GRCh38.fa \
--fork 8
See Developers for building from source and running the test suite.
Quick sanity check with chr22
Check Ensembl VEP 116.0 parity on the 50,861 normalized HG002 GRCh38 chr22
records using the existing run_comparison.py CLI. Docker provides vepyr 0.9.2,
the Hugging Face client, Git LFS and the VCF tools.
From the repository root, download the merged chr22 cache and run its md5 check:
docker build -t vepyr-e2e e2e-testing/docker
mkdir -p e2e-testing/results/sanity-chr22
docker run --rm --user "$(id -u):$(id -g)" -e HOME=/tmp \
-v "$PWD:/repo" \
-v "$PWD/e2e-testing/results/sanity-chr22:/work" \
vepyr-e2e bash -ec '
python e2e-testing/scripts/download_chr22.py --work-dir /work --profiles merged
DATA_VEPYR_DIR=/work python e2e-testing/scripts/run_comparison.py \
--release 116 --profile merged --chroms 22 \
--vcf /work/input/input_chr22.vcf.gz --fasta /work/input/chr22.fa.gz \
--output-dir /work --comparison-mode md5 --md5-mode both --bgzf --no-normalize
'
The download helper fetches only chr22 shards, manifests and the cache-root policy files from Hugging Face
at pinned revisions, plus the BGZF golden VCF and FASTA through Git LFS.
The comparison CLI prints the strict and canonical record-body md5 verdicts and
exits nonzero on a mismatch. Downloads and results persist in the mounted folder.
The input is already normalized with bcftools norm -m -both.
See Quick sanity check with chr22 for the command that runs all 10 profiles, offline reuse and golden-data provenance. The three caches total ~1.5 GB and the ten BGZF goldens total ~178 MB; allow about 6 GB of disk space for the complete run and Docker image.
Continuous integration
Four tiers gate every change; tiers 2-4 test the wheel built from the code under review.
| Tier | What | Draft PR | PR | master | Release |
|---|---|---|---|---|---|
| 1 Unit | lint, cargo test, pytest, wheels, vep-parity-checks |
yes | required | yes | yes |
| 2 Ensembl VEP parity | porting-tests/ data suite (205 tests) |
no | admin dispatch, required | no | yes |
| 3 Integration | chr22 VEP 116 parity, one job per profile | no | admin dispatch, required | no | yes |
| 4 nf-core | module + subworkflow nf-test on a PR-built image | no | required | yes | yes |
Admins run tiers 2-3 for a PR by commenting exactly /parity on it, or with
gh workflow run parity-tests.yml -f pr=<n> (or Actions -> Parity tests). They
report parity/vep-parity and parity/integration on the PR head; a new push
needs a new run. A /parity comment gets a rocket reaction and a reply with the
run link, then a final reply with both statuses; a non-admin's /parity is
refused with a reply. The comment route always runs master's copy of the
workflow, so it works for fork PRs and a PR cannot alter its own gate. Releases
(publish_to_pypi.yml) run all tiers and publish only if all pass;
dry_run=true runs everything without tagging or publishing.
The parity/* statuses are posted with GITHUB_TOKEN, so branch protection
can only pin them to the GitHub Actions app. A collaborator with write access
could post the same contexts from a workflow on their own branch. Setting
Settings -> Actions -> General -> Workflow permissions to read-only narrows
this (such a workflow must then request statuses: write explicitly); only a
dedicated status-posting GitHub App, required by branch protection, closes it.
Whole-genome parity (/parity-wgs)
An admin comment that is exactly /parity-wgs (or
gh workflow run parity-wgs.yml -f pr=<n>) runs the HG002 GRCh38
whole-genome md5 parity gate against the Ensembl VEP 116.0 golden VCFs for
the ensembl, merged and refseq profiles on the self-hosted runner.
It reports parity/wgs (and parity/wgs/<profile>) on the PR head. Runs
run one at a time on the self-hosted runner, take about 1.5 hours (wheel build,
then 20–30 minutes per profile), and are not
a required check unless added to branch protection. On a fork PR, pin the head
commit you reviewed: /parity-wgs <sha> (7+ hex characters, or
-f sha=<sha>); the run is refused if the head has moved. PR code runs only inside
a fresh, locked-down container with the staged data mounted read-only. Runner
setup and the accepted residual risk are in ci/wgs-runner/README.md.
License
Metadata
Release files for vepyr 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vepyr-0.10.0.tar.gz | 14.3 MB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| vepyr-0.10.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| vepyr-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| vepyr-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| vepyr-0.10.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| vepyr-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 309.5 MB
Release files / vepyr-0.10.0.tar.gz
| Download URL | vepyr-0.10.0.tar.gz |
|---|---|
| Size | 14.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35171d231bbaf5a9404ead597c2d2b9783121435d1cc326f79bc1c0aed1e3711
|
|
BLAKE2b-256 checksum How to use checksums |
f7df4ca5ea6633e5e060f606c16fc272c3ae7be7dbac4f2930498577da8f5456
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / vepyr-0.10.0-cp310-abi3-win_amd64.whl
| Download URL | vepyr-0.10.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 55.5 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b1d1a80a4d18cccc11cf6b2a7c9ced120320e05f690b9cf0fba0ed9a7051bc1c
|
|
BLAKE2b-256 checksum How to use checksums |
8285734dd7e2216f39f5e9d895bc2d9f5262d1971d52e9d114b0b3389426a0ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / vepyr-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | vepyr-0.10.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 62.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a191f599d76f53f226ede93fbf75db3d3d68adc14ff64f00f6500372082f393f
|
|
BLAKE2b-256 checksum How to use checksums |
4e9039734b2350ab5e7ab35140bf46c3e8839ad2ae51d66de811d89e4cefbcfe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / vepyr-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | vepyr-0.10.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 61.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
e4d469d9909528663f19d4858659e7539f397abf2fb518255e1c2173f85d7256
|
|
BLAKE2b-256 checksum How to use checksums |
5cfb244394438e6574a9998eea3620d73a61f4a1cc631d5a67bfeaaf9b89d806
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / vepyr-0.10.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | vepyr-0.10.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 56.3 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
66efebf3211a6c017e830af1483f778b597ea3d431ff8f937b2a677237db79b5
|
|
BLAKE2b-256 checksum How to use checksums |
bc4eef016f2f9ec6d3b1a9ba2f7127e567d7e389ae83a093da8346d070972b9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logRelease files / vepyr-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | vepyr-0.10.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 59.1 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d4df657887b26696a29523080ca6b368a1bbbb59417340557251f4f67a0b5d73
|
|
BLAKE2b-256 checksum How to use checksums |
26af4b0c7a1b8f38476e2d6a910cef46f7c5bea0b8d264fc24efdf150fe7f4fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logSecurity for vepyr 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 6 files in this release have been uploaded with provenance metadata.
Attestation for vepyr-0.10.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.