Skip to main content

Cache-based VCF annotation accelerator

Project description

DOI CI License PyPI Cite codecov

VCFcache – Cache once, annotate fast

Cache common variants once, reuse them for every sample. VCFcache builds a normalized blueprint, annotates it once, and reuses those results so only rare/novel variants are annotated at runtime.

Performance: With 60-90% cache hit rates on typical samples, VCFcache achieves 2-10× speed-ups compared to standard annotation pipelines. Cache lookups are constant-time operations regardless of cache size, making the tool highly scalable. See WIKI.md for the detailed runtime efficiency model.

Works with any genome/build (human, mouse, plants, model organisms) as long as your inputs and annotation pipeline use the same reference/contig naming.


Quick Start - pip install

Requires: Python >= 3.11 (earlier versions untested), bcftools >= 1.20

pip install vcfcache
vcfcache demo --smoke-test  # Run comprehensive demo
vcfcache --help

Install bcftools separately:

  • Ubuntu/Debian: sudo apt-get install bcftools
  • macOS: brew install bcftools
  • Conda: conda install -c bioconda bcftools

Quick Start - Docker

Docker includes bcftools - no separate installation needed.

docker pull ghcr.io/julius-muller/vcfcache:latest

# List available public caches
docker run --rm ghcr.io/julius-muller/vcfcache:latest list caches

# Use a public cache from Zenodo
docker run --rm -v $(pwd):/work ghcr.io/julius-muller/vcfcache:latest \
  annotate \
    -a cache-hg38-gnomad-4.1joint-AF0100-vep-115.2-basic \
    --vcf /work/sample.vcf.gz \
    --output /work/out 

Quick Start - from source

git clone https://github.com/julius-muller/vcfcache.git
cd vcfcache
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
vcfcache --help

Build Your Own Cache

  1. Create blueprint (normalize/deduplicate variants):
vcfcache blueprint-init --vcf gnomad.bcf --output ./cache -y params.yaml
  1. Annotate blueprint (create cache):
vcfcache cache-build --name vep_cache --db ./cache -a annotation.yaml -y params.yaml
  1. Use cache on samples:
vcfcache annotate -a ./cache/cache/vep_cache --vcf sample.vcf.gz --output ./results

Configuration

Override system bcftools (if needed):

export VCFCACHE_BCFTOOLS=/path/to/bcftools-1.22

Change where downloaded caches/blueprints are stored (default: ~/.cache/vcfcache):

export VCFCACHE_DIR=/path/to/vcfcache_cache_dir

Or in params.yaml:

bcftools_cmd: "/path/to/bcftools"

See WIKI.md for detailed configuration, cache distribution via Zenodo, and troubleshooting.


Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vcfcache-0.4.1.tar.gz (153.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vcfcache-0.4.1-py3-none-any.whl (100.1 kB view details)

Uploaded Python 3

File details

Details for the file vcfcache-0.4.1.tar.gz.

File metadata

  • Download URL: vcfcache-0.4.1.tar.gz
  • Upload date:
  • Size: 153.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for vcfcache-0.4.1.tar.gz
Algorithm Hash digest
SHA256 da118a7b9d422970b4c507ce574764b191fbdeaebce2b76530a005bfac095edb
MD5 42a41d9f80e0ef459a3b02b1ad399288
BLAKE2b-256 a903e30d10004d6762e4047c43f4762e5244b3a9bc20a675a77ec12c1d1a5ceb

See more details on using hashes here.

File details

Details for the file vcfcache-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: vcfcache-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 100.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for vcfcache-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9efc6f4f2282196e0e14824ed6cc9c21eb1f1bd0aea7ed7e1a2f2a27e45a15fd
MD5 81b6b9d8476b205700832bc88bf85eaf
BLAKE2b-256 3f2c99a1f890e41ef849162f61bee7945c4cef64338ae1205c0d7cd4ae7bda3f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page