Sign inSign up

cmgantwerpen/cadd

By cmgantwerpen

Updated 11 months ago

CADD v1.7 support on CPU and GPU machines, with parallelization and Annotation Install script

Image
Data science
0

400

cmgantwerpen/cadd repository overview

CADD v1.7.1 with PARALLEL support

This container contains CADD-scripts v1.7.1, with all required conda environments.
I've adapted the Snakefile and CADD.sh scripts to support multi-threading.

The logic is as follows:

  • CADD.sh "-c" options specifies the amount of cores snakemake can use
  • The input file is split in "$c" chunks, which are processed in parallel
  • Output files are re-concatenated into a single output file

Notes:

  • ESM and MMsplice steps are restricted based on the amount of available (GPU) memory (16Gb/thread)
  • Make sure to put all datasources on SSD drives, as threaded random access will bring any rotational disk to its knees
  • During preprocessing, preceding 'chr' in the contigs are removed, and not re-added.

Performance :

Hardware:
  • CPU : 13th Gen Intel(R) Core(TM) i9-13900K ; 32 cores
  • RAM : 126GB
  • Storage : SSD
  • GPU: NVIDIA GeForce RTX 4090 ; 24Gb RAM
Benchmark on a 6 million variants WGS file:
  • Original implementation:
    • CPU only; 32 cores : 3 hours, 50 minutes
  • CPU only (cadd:1.7.1):
    • 1 core : 3 hours, 50 minutes
    • 2 cores : 2 hours, 5 minutes
    • 4 cores : 1 hour, 5 minutes
    • 8 cores : 40 minutes
    • 12 cores : 32 minutes
    • 16 cores : 28 minutes
    • 20 cores : 26 minutes
    • 24 cores : 26 minutes
    • 28 cores : 27 minutes
    • 32 cores : 26 minutes
  • CPU + GPU (cadd:1.7.1 with "--gpus=all"):
    • 1 core : 2 hours, 32 minutes
    • 2 cores : 1 hour, 54 minutes
    • 4 cores : 1 hour, 6 minutes
    • 8 cores : 39 minutes
    • 12 cores: 32 minutes
    • 16 cores: 27 minutes
    • 20 cores: 27 minutes
    • 24 cores: 26 minutes
    • 28 cores: 27 minutes
    • 32 cores: 28 minutes

In our testing, only ESM scoring used the GPU, and we didn't see a significant performance benefit...

SOURCE CODE

This docker image is built on an optimized fork of the CADD-scripts. Source is available here

VERSIONS

This image contains:

  • CADD v 1.7.1
Usage

CADD can be run from the command line:

docker run --rm \
   -w /opt/CADD-scripts \
   -v /ssd/annotations:/opt/CADD-scripts/data/annotations \
   -v /ssd/prescored:/opt/CADD-scripts/data/prescored \
   cmgantwerpen/cadd:1.7.1 CADD.sh 

notes:

  • To use GPU : add --gpus=all

Annotations:

The container includes a script "/opt/CADD-scripts/Install_Annotations.sh", that will download all needed annotations and prescore files for this release.

Issues:

  • Repeat analysis of identical input files yields identical output files. However, Raw scores seem to be slightly dependent on the set of variants in the input file (5 digits behind comma). No impact on phred scores was found. We noticed the same issue already in CADD v1.5.

Further info:

Contact

Geert Vandeweyer (This implementation) : [email protected]

Tag summary

Content type

Image

Digest

sha256:43b365c34

Size

7.2 GB

Last updated

11 months ago

docker pull cmgantwerpen/cadd:1.7