VARIANT CALLERS

NVIDIA Clara Parabricks Pipelines accelerated variant callers

HAPLOTYPECALLER

GPU accelerated haplotypecaller.

This tool runs GPU accelerated haplotypecaller. Users can provide an optional BQSR report to fix the BAM similar to ApplyBQSR. In that case the updated base qualities will be used.

../_images/parabricks-web-graphics-1259949-r2-haplotypecaller.svg

QUICK START

$ pbrun haplotypecaller --ref Ref/Homo_sapiens_assembly38.fasta \
--in-bam mark_dups_gpu.bam \
--in-recal-file recal_gpu.txt \
--out-variants result.vcf

COMPATIBLE GATK4 COMMAND

The command below is the GATK4 counterpart of the Parabricks command above. The output from these commands will generate the exact same results as the output from the above command. Please look at Output Comparison page on how you can compare the results.

# Run ApplyBQSR Step
$ gatk ApplyBQSR --java-options -Xmx30g -R Ref/Homo_sapiens_assembly38.fasta \
-I=mark_dups_cpu.bam --bqsr-recal-file=recal_file.txt -O=cpu_nodups_BQSR.bam

#Run Haplotype Caller
$ gatk HaplotypeCaller --java-options -Xmx30g --input cpu_nodups_BQSR.bam --output \
result_cpu.vcf --reference Ref/Homo_sapiens_assembly38.fasta \
--native-pair-hmm-threads 16

OPTIONS

--ref

(required) The reference genome in fasta format.

--in-bam

(required) Path to the input bam file.

--out-variants

(required) Path of .vcf, g.vcf, or gvcf file.

--in-recal-file

Path to the input BQSR report. Only required if ApplyBQSR step is needed.

--haplotypecaller-options

Pass supported haplotype caller options as one string. Current original haplotypecaller supported options: -min-pruning , -standard-min-confidence-threshold-for-calling , -max-reads-per-alignment-start , -min-dangling-branch-length , and -pcr-indel-model .

--static-quantized-quals

Use static quantized quality scores to a given number of levels. Repeat this option multiple times for multiple bins.

--ploidy

Defaults to 2.

Ploidy assumed for the bam file. Currently only haploid (ploidy 1) and diploid (ploidy 2) are supported.

--interval-file

Path to an interval file for BQSR step with possible formats: Picard-style (.interval_list or .picard), GATK-style (.list or .intervals), or BED file (.bed). This option can be used multiple times (default: None)

--interval

(-L) Interval within which to call variants from the input reads. All intervals will have a padding of 100 to get read records and overlapping intervals will be combined. Interval files should be passed using the –interval-file option. This option can be used multiple times.

e.g. "-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000" (default: None)

--interval-padding

(-ip) Padding size (in base pairs) to add to each interval you are including (default: None)

--interval

(-L) Interval within which to call the variants from the bam file. This option can be used multiple times. All intervals will have a padding of 100 and overlapping intervals will be combined. The intervals can be specified in a file using the BED file format or GATK style format.

e.g. "-L chr1 -L chr2:1000-3100" or "-L interval.bed".

--gvcf

Defaults to False.

Generate variant calls in gvcf format. When using this option –out-variants file should end with g.vcf or g.vcf.gz. If the --out-variants file ends in gz, the tool will generate gvcf.gz and index for it.

--batch

Given an input list of BAMs, run the variant calling of each BAM using one GPU, and process BAMs in parallel based on how many GPUs the system has.

--disable-read-filter

Disable the read filters for bam entries. Currently supported read filters that can be disabled are: MappingQualityAvailableReadFilter, MappingQualityReadFilter, and NotSecondaryAlignmentReadFilter. This option can be repeated multiple times.

--max-alternate-alleles

Maximum number of alternate alleles to genotype (default: None)

--annotation-group

(-G) Which groups of annotations to add to the output variant calls. Currently supported annotation groups: StandardAnnotation, StandardHCAnnotation, AS_StandardAnnotation (default: None)

--gvcf-gq-bands

(-GQB) Exclusive upper bounds for reference confidence GQ bands. Must be in the range [1, 100] and specified in increasing order (default: None)

--tmp-dir

Defaults to ..

Full path to the directory where temporary files will be stored.

--num-gpus

Defaults to number of GPUs in the system.

The number of GPUs to be used for this analysis task.

--gpu-devices

Which GPU devices to use for a run. By default, all GPU devices will be used. To set specific GPU devices, enter a comma-separated list of GPU device numbers.

MUTECTCALLER

GPU accelerated mutect2.

mutectcaller supports tumor or tumor-normal variant calling. The figure below shows high level functionality of mutectcaller. All dotted boxes are optional with some constraints.

../_images/parabricks-web-graphics-1259949-r2-mutecaller.svg

QUICK START

$ pbrun mutectcaller --ref Ref/Homo_sapiens_assembly38.fasta \
--in-tumor-bam tumor.bam \
--tumor-name foobar \
--out-vcf output.vcf

COMPATIBLE GATK4 COMMAND

The command below is the GATK4 counterpart of the Parabricks command above. The output from these commands will generate the exact same results as the output from the above command. Please look at Output Comparison page on how you can compare the results.

gatk Mutect2 -R ref.tar.gz --input tumor.bam --tumor-sample foobar --output result.vcf

OPTIONS

--ref

(required) The reference genome in fasta format. We assume that the indexing required to run bwa has been completed by the user.

--in-tumor-bam

(required) Path of bam file for tumor reads.

--tumor-name

(required) Name of sample for tumor reads.

--out-vcf

(required) Path to the VCF output file.

--in-tumor- recal-file

Path of BQSR report for tumor sample.

--in-normal-bam

Path of bam file for normal reads.

--in-normal-recal-file

Path of BQSR report for normal sample.

--normal-name

Name of sample for normal reads.

--ploidy

Ploidy assumed for the bam file. Currently only haploid (ploidy 1) and diploid (ploidy 2) are supported.

--interval-file

Path to an interval file for BQSR step with possible formats: Picard-style (.interval_list or .picard), GATK-style (.list or .intervals), or BED file (.bed). This option can be used multiple times (default: None)

--interval

(-L) Interval within which to call variants from the input reads. All intervals will have a padding of 100 to get read records and overlapping intervals will be combined. Interval files should be passed using the --interval-file option. This option can be used multiple times.

e.g. "-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000" (default: None)

--interval-padding

(-ip) Padding size (in base pairs) to add to each interval you are including (default: None)

--tmp-dir

Defaults to ..

Full path to the directory where temporary files will be stored.

--num-gpus

Defaults to number of GPUs in the system.

The number of GPUs to be used for this analysis task.

--gpu-devices

Which GPU devices to use for a run. By default, all GPU devices will be used. To set specific GPU devices, enter a comma-separated list of GPU device numbers.

DEEPVARIANT

Run GPU-accelerated deepvariant algorithm.

Parabricks has accelerated Google Deepvariant to extensively use GPUs and finish 30x WGS analysis in 25 minutes. The Parabricks flavor of Deepvariant is more like other commandline tools that users are familiar with. It takes the BAM and reference as inputs and produces variants as outputs. In the next versions, we will allow users to choose the exact model to use.

QUICK START

$ pbrun deepvariant --ref Ref/Homo_sapiens_assembly38.fasta \
--in-bam mark_dups_gpu.bam \
--out-variants output.vcf

COMPATIBLE GOOGLE DEEPVARIANT COMMANDS

The command below is the GATK4 counterpart of the Parabricks command above. The output from these commands will generate the exact same results as the output from the above command. Please look at Output Comparison page on how you can compare the results.

# Run make_examples in parallel
seq 0 $((N_SHARDS-1)) | \
parallel --eta --halt 2 --joblog "${LOGDIR}/log" --res "${LOGDIR}" \
sudo docker run \
-v ${HOME}:${HOME} \
gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}" \
/opt/deepvariant/bin/make_examples \
--mode calling \
--ref "${REF}" \
--reads "${BAM}" \
--examples "${OUTPUT_DIR}/examples.tfrecord@${N_SHARDS}.gz" \
--regions '"chr20:10,000,000-10,010,000"' \
--task {}

# Run call_variants in parallel
sudo docker run \
-v ${HOME}:${HOME} \
gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}" \
/opt/deepvariant/bin/call_variants \
--outfile "${CALL_VARIANTS_OUTPUT}" \
--examples "${OUTPUT_DIR}/examples.tfrecord@${N_SHARDS}.gz" \
--checkpoint "${MODEL}"

# Run postprocess_variants in parallel
sudo docker run \
-v ${HOME}:${HOME} \
gcr.io/deepvariant-docker/deepvariant:"${BIN_VERSION}" \
/opt/deepvariant/bin/postprocess_variants \
--ref "${REF}" \
--infile "${CALL_VARIANTS_OUTPUT}" \
--outfile "${FINAL_OUTPUT_VCF}"

OPTIONS

--ref

(required) The reference genome in fasta format.

--in-bam

(required) Path to the input BAM file.

--out-variants

(required) Name of output vcf file.

--pb-model-file

Path of a non-default parabricks model file for deepvariant.

--interval-file

Path to an interval file for BQSR step with possible formats: Picard-style (.interval_list or .picard), GATK-style (.list or .intervals), or BED file (.bed). This option can be used multiple times (default: None)

--interval

(-L) Interval within which to call variants from the input reads. All intervals will have a padding of 100 to get read records and overlapping intervals will be combined. Interval files should be passed using the --interval-file option. This option can be used multiple times.

e.g. "-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000" (default: None)

--interval-padding

(-ip) Padding size (in base pairs) to add to each interval you are including (default: None)

--disable-use-window-selector-model

Change the window selector model from Allele Count Linear to Variant Reads. This option will increase the accuracy and runtime (default: None)

--gvcf

Generate variant calls in gvcf format.

--tmp-dir

Defaults to ..

Full path to the directory where temporary files will be stored.

--num-gpus

Defaults to number of GPUs in the system.

The number of GPUs to be used for this analysis task.

--gpu-devices

Which GPU devices to use for a run. By default, all GPU devices will be used. To set specific GPU devices, enter a comma-separated list of GPU device numbers.

CNVKIT

CPU accelerated Copy number variant calling.

Run CNVkit with accelerated coverage calculation from read depths. CNVkit is not available as part of the free for Covid19 program.

QUICK START

$ pbrun cnvkit --ref Ref/Homo_sapiens_assembly38.fasta \
--in-bam mark_dups_gpu.bam
--out-file output.vcf

OPTIONS

--ref

(required) Path to the reference file.

--in-bam

(required) Path to the bam file.

--out-file

Path to the output vcf file.

--cnvkit-options

Pass supported cnvkit options as one string.

e.g. --cnvkit-options="--count-reads --drop-low-coverage".

--generate-vcf

Export the output cns to vcf after running batch (default: None)