Fork of google/deepvariant v1.10.0. Tags:
v{upstream}-arm64.{n}.
The gold standard in variant calling. Now on ARM64. For less than the price of a chewing gum per genome.
Google's DeepVariant (Poplin et al., Nature Biotechnology 2018) achieves the highest SNP accuracy of any open-source variant caller. This fork brings it to Linux ARM64 — run it on a $0.16/hr Oracle A1 instance and get near-reference accuracy at $0.80/genome — or $0.12/genome on Hetzner CAX41. At UK Biobank scale (490,640 genomes), that's a $2.3 million compute cost difference vs. the x86 reference — enough to fund ~4,600 additional genomes. For population-scale GWAS where cost dominates, this is a viable alternative.
Requirements: ARM64 Linux + Docker. Full WGS needs ~2 GB RAM per CPU core.
# Add swap if <32 GB RAM (one-time, auto-sized):
curl -fsSL https://raw.githubusercontent.com/lambda-biolab/deepvariant-linux-arm64/main/scripts/setup_swap.sh | sudo bash
docker pull ghcr.io/lambda-biolab/deepvariant-arm64:v1.10.0-arm64.1
docker run \
-v /path/to/data:/data \
ghcr.io/lambda-biolab/deepvariant-arm64:v1.10.0-arm64.1 \
/opt/deepvariant/scripts/run_parallel_cv.sh \
--model_type=WGS \
--ref=/data/reference.fasta \
--reads=/data/input.bam \
--output_vcf=/data/output.vcf.gzThe script auto-detects your CPU (Graviton3/4, AmpereOne, Neoverse-N1/N2), enables jemalloc, selects the right backend (BF16 or INT8 ONNX), and scales parallel CV workers to your CPU and RAM. No env vars needed — just docker run. User-provided env vars always take precedence.
-
INT8 quantization without accuracy loss — InceptionV3 CNN quantized to INT8 via ONNX Runtime static quantization. 74% smaller model (21 MB), 2.3x faster inference than FP32 ONNX. Stratified GIAB validation confirms INT8 matches or exceeds BF16 across all regions — homopolymers, tandem repeats, segmental duplications included. Accuracy details →
-
BF16 on Graviton3+ — 38% call_variants speedup with zero accuracy loss via
ONEDNN_DEFAULT_FPMATH_MODE=BF16. Benchmarked on c7g.4xlarge at 0.232 s/100 inference rate. -
Parallel call_variants — Breaks through the GEMM saturation ceiling by splitting inference across N independent ONNX workers. 1.7-2.5x CV speedup with zero code changes. Only works with ONNX backend (~3 GB/worker vs TF's ~26 GB).
-
First open-source Linux ARM64 port — Builds on AWS Graviton3/4, Oracle A1/A2, Hetzner CAX, and any ARM64 Linux. Patches 8 upstream ARM64/GCC 13 compilation errors. BSD-3 licensed.
-
Systematic ARM64 benchmarking corpus — 5 platforms × 3 backends × jemalloc on/off × 16/32 vCPU, all accuracy-validated at each point. Benchmark details →
-
Nextflow / Snakemake integration — Platform profiles for arm64, graviton, oracle_a1, hetzner. Single sample and batch CSV input. See
workflows/.
- Benchmarks — Platform comparisons, cost projections, parallel CV speedups, profiling data, platform-specific notes
- Accuracy Validation — Full genome and WES GIAB validation, stratified regions, accuracy gates
- Advanced Usage — Backend configuration, all Docker commands, parallel CV setup, build from source, known pitfalls, roadmap
Poplin, R. et al. A universal SNP and small-indel variant caller using deep neural networks. Nature Biotechnology 36, 983-987 (2018). https://rdcu.be/7Dhl
BSD-3-Clause. Not an official Google product. Not validated for clinical use.