deepvariant
Run a GPU-accelerated DeepVariant algorithm.
Refer to the deepvariant Reference section for a detailed listing of all available options.
What is DeepVariant?
DeepVariant is a deep learning based variant caller developed by Google for germline variant calling of high-throughput sequencing data. It works by taking aligned sequencing reads in BAM/CRAM format and utilizes a convolutional neural network (CNN) to classify the locus into true underlying genomic variation or sequencing error. DeepVariant can therefore call single nucleotide variants (SNVs) and insertions/deletions (InDels) from sequencing data at high accuracy in germline samples.
Why DeepVariant?
DeepVariant’s approach is able to detect variants that are often missed by traditional (for example Bayesian) variant callers, and is known to reduce false positives. It offers several advantages over similar tools, including its ability to detect a wide range of variants with high accuracy, its scalability for analyzing large datasets, and its open source availability. Additionally, its deep learning-based approach allows it to provide better support for different sequencing platforms, as it can be retrained to provide higher accuracy for specific protocols or research areas.
How Should I Use DeepVariant?
DeepVariant is designed for use as a germline variant caller that can apply different models trained for specific sample types (such as whole genome and whole exome samples) to yield higher accuracy results. DeepVariant can be deployed within NVIDIA’s Parabricks software suite, which is designed for accelerated secondary analysis in genomics, bringing industry standard tools and workflows from CPU to GPU, and delivering the same results at up to 60x faster runtimes. A 30x whole genome can be run through DeepVariant in as little as 8 minutes on an NVIDIA DGX station, compared to 5 hours on a CPU instance (m5.24xlarge, 96 x vCPU). DeepVariant in Parabricks is used in the same way as other command line tools that users are familiar with: It takes a BAM/CRAM and the reference genome as inputs and produces the variants (a VCF file) as outputs. Currently, DeepVariant is supported for T4 and newer GPUs out of the box.
In version 3.8 the —run-partition option was added, which can lead to a significant speed increase. However, using the —run-partition, —proposed-variants, and —gvcf options at the same time will lead to a substantial slowdown. A warning will be issued and the —run-partition option will be ignored.
Available Operating Modes
Parabricks DeepVariant can run in one of three operating modes:
- shortread
- PacBio
- ONT
See the —mode option below.
Quick Start
Compatible Google DeepVariant Commands
The commands below are the Google counterpart of the Parabricks command above. The output from these commands will be identical (see Source of Mismatches below) to the output from the above command. Refer to the Output Comparison page for comparing the results.
Variants called by the small model will have an additional MID field in their VCF record,
which denotes which model called the variant. This is consistent with VCF files produced by
Google DeepVariant.
Models for Additional GPUs
Parabricks DeepVariant supports the following models:
- Short-read WGS
- Short-read WES
- PacBio
- ONT
Parabricks DeepVariant ships with model files for T4 and all GPUs that are Ampere or newer. Since v4.8, these model files are created using TensorRT 11.3.0.99.
Source of Mismatches
While Parabricks DeepVariant does not lose any accuracy in functionality when compared with Google DeepVariant there are two reasons that can result in different output files.
- CNN Inference
Google DeepVariant uses a CNN (convolutional neural network) to predict the possibilities of each variant candidate. The model is trained, and does inference through, Keras. In Parabricks DeepVariant we convert this Keras model to an engine file with TensorRT to perform accelerated deep learning inferencing on NVIDIA GPUs. Because of the optimizations from TensorRT, there is a small difference in the final possibility scores after inferencing (10^-5), which could cause a few different variants in the final VCF output. Based on current observations, the mismatches only happen to RefCalls with a quality score of zero.
- Alt-Aligned Pileup Flag
Google DeepVariant sets the Alt-Aligned Pileup flag to the string “none” for WGS and WES models. However, an
internal code check still evaluates this flag to true (string “none” is truthy in Python). This results in trim_reads_for_pileup
being set to true for WGS and WES modes in Google DeepVariant. Parabricks correctly disables read trimming for these
models. In very rare cases, this can result in a mismatch between the variant call made by Google DeepVariant and Parabricks.
Options
The --run-partition option splits the run into partitions, each using
--gpu-num-per-partition GPUs (default 2). --num-gpus must be a multiple of
--gpu-num-per-partition, so at least 2 GPUs are required; running with --num-gpus 1
will cause the tool to exit with an error.