deepsomatic
GPU-accelerated DeepSomatic
What is DeepSomatic?
DeepSomatic builds on the deep learning-based variant caller DeepVariant. It processes aligned reads from tumor and normal samples (in BAM or CRAM format), generates pileup image tensors, classifies these tensors using a convolutional neural network, and outputs somatic variants in standard VCF or gVCF files.
DeepSomatic is designed for somatic variant calling using tumor-normal sequencing data.
Parabricks has enhanced Google DeepSomatic to leverage GPUs extensively. The Parabricks version of DeepSomatic operates similarly to other common command line tools: it accepts two BAM files and a reference file as inputs and generates variants in a VCF file as output.
Refer to the deepsomatic Reference section for a detailed listing of all available options.
Quick Start
Compatible Google DeepSomatic 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.
Models for Additional GPUs
Parabricks DeepSomatic supports the following models:
- Short-read WGS
- Short-read WES
- PacBio
- ONT
Parabricks DeepSomatic 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 DeepSomatic does not lose any accuracy in functionality when compared with Google DeepSomatic there is two reasons that can result in different output files.
- CNN Inference
Google DeepSomatic 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 DeepSomatic 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 DeepSomatic 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 DeepSomatic. 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 DeepSomatic 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.