> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/clara/parabricks/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/clara/parabricks/_mcp/server.

# germline (GATK Germline Pipeline)

## What is GATK?

GATK, the Genome Analysis Toolkit, is an industry standard software package
developed by the Broad Institute of MIT and Harvard and designed to be used for
a wide range of genomic analyses, including variant discovery, genotyping, and
more. GATK is one of the most popular tools used in bioinformatics for
analyzing next-generation sequencing datasets and is an industry standard for
calling single nucleotide variants (SNVs) and insertions/deletions (InDels)
from sequencing data in germline samples.

Refer to the [germline Reference](#options) section for a detailed listing of all available options.

## Why GATK?

GATK offers robust, accurate analysis of sequencing data and is frequently
updated to include the latest best practices for variant discovery. With high
reliability and the ability to be used for a number of use cases, GATK is a
gold standard tool for any researcher working with next-generation sequencing
data.

## How Should I Use GATK?

The GATK germline workflow for variant calling 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 analyzed in under 25 minutes on an NVIDIA DGX system,
compared to over 30 hours on a CPU instance (m5.24xlarge, 96 x vCPU), and
exomes can be analyzed in just 4 minutes. This means Parabricks, running on one
NVIDIA DGX A100, can analyze up to 25,000 whole genomes per year.  The NVIDIA
team collaborated with the GATK team at the Broad Institute to evaluate the
accuracy of germline workflows. Through this rigorous process, they verified
that the Parabricks workflows produce results that are functionally
equivalent to the CPU-native GATK versions.

As a specific example, benchmarking on publicly available Genome in a Bottle (GIAB)
samples with the fq2bam and germline caller workflows from the Parabricks
suite produced variant calling results that were >0.9999 equivalent in both precision
and recall to those produced by the BWA, MarkDuplicates, BQSR, and HaplotypeCaller
commands in the GATK’s Whole Genome Germline Single Sample variant calling workflow.

Given one or more pairs of FASTQ files, you can run the germline variant tool
to generate BAM, variants, duplicate metrics and recal.

The germline pipeline shown below resembles the GATK4 best practices pipeline. The
inputs are BWA-indexed reference files, pair-ended FASTQ files, and knownSites for
BQSR calculation. The outputs of this pipeline are as follows:

* Aligned, co-ordinate sorted, duplicated marked BAM

* BQSR report

* Variants in `vcf`/`g.vcf`/`g.vcf.gz` format

![](/clara/parabricks/_files/parabricks-clara.docs.buildwithfern.com/364ddb0df261a4b746846b7eb15c8c345ed5851cc41803eda873e8604c6e6174/assets/images/germline.png)

## Quick Start

Running the germline pipeline:

```sh
# This command assumes all the inputs are in the current working directory and all the outputs go to the same place.
docker run --rm --gpus all --volume $(pwd):/workdir --volume $(pwd):/outputdir \
    --workdir /workdir \
    nvcr.io/nvidia/clara/clara-parabricks:4.7.1-1 \
    pbrun germline \
    --ref /workdir/${REFERENCE_FILE} \
    --in-fq /workdir/${INPUT_FASTQ_1} /workdir/${INPUT_FASTQ_2} \
    --knownSites /workdir/${KNOWN_SITES_FILE} \
    --out-bam /outputdir/${OUTPUT_BAM} \
    --out-variants /outputdir/${OUTPUT_VCF} \
    --out-recal-file /outputdir/${OUT_RECAL_FILE}
```

Several original HaplotypeCaller options are supported by Parabricks.
To specify the inclusion or exclusion of several haplotype caller annotations,
use the `--haplotypecaller-options` option:

```sh
$ |sample_docker_cmd|
     --workdir /workdir \
     |docker_image| \
     pbrun haplotypecaller \
      ...
      --haplotypecaller-options '-min-pruning 4 -A AS_BaseQualityRankSumTest -A TandemRepeat'
      ...
```

Annotations may be excluded in the same manner using the `-AX` option. There should
be a space between the `-A`/`-AX` flag and its value.

The following are supported options and their allowed values:

* -A
  * AS\_BaseQualityRankSumTest
  * AS\_FisherStrand
  * AS\_InbreedingCoeff
  * AS\_MappingQualityRankSumTest
  * AS\_QualByDepth
  * AS\_RMSMappingQuality
  * AS\_ReadPosRankSumTest
  * AS\_StrandOddsRatio
  * AssemblyComplexity
  * BaseQualityRankSumTest
  * ChromosomeCounts
  * ClippingRankSumTest
  * Coverage
  * DepthPerAlleleBySample
  * DepthPerSampleHC
  * ExcessHet
  * FisherStrand
  * InbreedingCoeff
  * MappingQualityRankSumTest
  * QualByDepth
  * RMSMappingQuality
  * ReadPosRankSumTest
  * ReferenceBases
  * StrandBiasBySample
  * StrandOddsRatio
  * TandemRepeat
* -AX
  * (same as for the *-A* option)
* \--output-mode
  * EMIT\_VARIANTS\_ONLY
  * EMIT\_ALL\_CONFIDENT\_SITES
  * EMIT\_ALL\_ACTIVE\_SITES
* -max-reads-per-alignment-start
  * a positive integer
* -min-dangling-branch-length
  * a positive integer
* -min-pruning
  * a positive integer
* -pcr-indel-model
  * NONE
  * HOSTILE
  * AGGRESSIVE
  * CONSERVATIVE
* -standard-min-confidence-threshold-for-calling
  * a positive integer

## Compatible CPU-based BWA-MEM, GATK4 Commands

The commands below are the bwa-0.7.12 and GATK4 counterpart of the Parabricks command
above. The output from these commands will be identical to the output from the above
command. Refer to the [Output Comparison](/about-parabricks/comparison-with-baseline-tools) page for comparing
the results.

```sh
# Run bwa-mem and pipe output to create sorted BAM
$ bwa mem \
    -t 32 \
    -K 10000000 \
    -R '@RG\tID:sample_rg1\tLB:lib1\tPL:bar\tSM:sample\tPU:sample_rg1' \
    <INPUT_DIR>/${REFERENCE_FILE} <INPUT_DIR>/${INPUT_FASTQ_1} <INPUT_DIR>/${INPUT_FASTQ_2} | \
  gatk SortSam \
      --java-options -Xmx30g \
      --MAX_RECORDS_IN_RAM 5000000 \
      -I /dev/stdin \
      -O cpu.bam \
      --SORT_ORDER coordinate

# Mark Duplicates
$ gatk MarkDuplicates \
    --java-options -Xmx30g \
    -I cpu.bam \
    -O mark_dups_cpu.bam \
    -M metrics.txt

# Generate BQSR Report
$ gatk BaseRecalibrator \
    --java-options -Xmx30g \
    --input mark_dups_cpu.bam \
    --output <OUTPUT_DIR>/${OUT_RECAL_FILE} \
    --known-sites <INPUT_DIR>/${KNOWN_SITES_FILE} \
    --reference <INPUT_DIR>/${REFERENCE_FILE}

# Run ApplyBQSR Step
$ gatk ApplyBQSR \
    --java-options -Xmx30g \
    -R <INPUT_DIR>/${REFERENCE_FILE} \
    -I mark_dups_cpu.bam \
    --bqsr-recal-file <OUTPUT_DIR>/${OUT_RECAL_FILE} \
    -O cpu_nodups_BQSR.bam

#Run Haplotype Caller
$ gatk HaplotypeCaller \
    --java-options -Xmx30g \
    --input cpu_nodups_BQSR.bam \
    --output <OUTPUT_DIR>/${OUTPUT_VCF} \
    --reference <INPUT_DIR>/${REFERENCE_FILE} \
    --native-pair-hmm-threads 16
```

## Options

The *--in-fq* option takes the names of two FASTQ files, optionally followed by a
quoted read group.  The FASTQ filenames must not start with a hyphen.

In the values provided to *--haplotypecaller-options* --output-mode requires two leading hyphens, while all other values take a single hyphen.