This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How can I speed up Deepvariant ?

Hi Folks,

I currently have a Dell Poweredge R820 server, with the following specs:

Intel(R) Xeon(R) CPU E5-4640 0 @ 2.40 GHz 128 ECC DDR3 RAM 4 CPU 64 cores (64 CPUs) NVDIA Quadro 2000 1 Gb video memory

On this machine, it has Windows 10 Enterprise LTSC installed. However, Ubuntu 22.04 LTS is running using the Oracle Virtual box on this machine. In this virtual OS environment: Number of CPU cores assigned - 30 Memory assigned - 120 Gb

Deepvariant 1.6.1 has been installed with the Ubuntu 22.04 LTS virtual operating system.

This is the general command that is used:

sudo docker run \
  -v ~/windowsshare2/deepvariant/:/input \
  -v ~/windowsshare2/deepvariant/:/output \
  -v ~/windowsshare2/deepvariant/:/reference \
  google/deepvariant:1.6.1 \
  /opt/deepvariant/bin/run_deepvariant \
  --model_type WES \
  --ref /reference/human_genome_ref.fasta \
  --reads /input/TEST.BAM \
  --regions /input/exome.BED \
  --output_vcf /output/TEST.vcf.gz \
  --output_gvcf /output/TEST.gvcf.gz \
  --num_shards=30 \
  --intermediate_results_dir /output/intermediate_results_drive

It is taking forever to do an analysis (like more than 10 days), and even longer wait times like more than 4 weeks with the most recent versions of deepvariant.

Are there any suggestions you can advise on how I can speed up the processing time for deepvariant ?

Thanks for your assistance.

deepvariant variant caller

Reduce the number of virtualization layers with WSL or dual boot (also check for I/O issues). You can significantly improve the variant calling with Parabricks(Nvidia) but it requires a supported GPU architecture

Also, the setup is really old, the NVIDIA Quadro 2000 came out in 2010.

If you could upgrade the GPU to a recent supported CUDA-compatible GPU, that may significantly speed up the process, but this is likely not an option because of the legacy hardware.

Modern machine learning kits like TensorFlow (which powers DeepVariant) require a minimum CUDA compute capability of 6.0 and at least 8 GB of VRAM. But your mainboard likely isn't compatible with newer GPUs. Therefore, you will have to stick with fully CPU-based analysis.

You should definitely get rid of the VM layer and possibly Windows to allow for optimal CPU utilization. VirtualBox imposes a massive performance overhead.

1 answer

  --regions /input/exome.BED 

split your bed into multiple files, and run each sub-bed in parallel.

Thank you everyone for your advise and comments. Very kind of you. How do you run each sub BED files in parallel with deepariant ? Please send what command I use in the script. Thanks

  • make -j (nthread) +Makefile
  • snakemake
  • nextflow

Log in to answer this question.