IMPORTANT NOTE! The PairedSingleSample workflow in this repo is outdated and is no longer being used in production at Broad. For the latest production version please visit the five-dollar-genome-analysis-pipeline repo.
Workflows used for germline short variant discovery in WGS data.
This WDL pipeline implements data pre-processing and initial variant calling (GVCF generation) according to the GATK Best Practices (June 2016) for germline SNP and Indel discovery in human whole-genome sequencing (WGS) data.
Note: PairedEndSingleSampleWf-fc is a modified version of the original workflow that is easier to run on FireCloud/Terra
- Human whole-genome pair-end sequencing data in unmapped BAM (uBAM) format
- One or more read groups, one per uBAM file, all belonging to a single sample (SM)
- Input uBAM files must additionally comply with the following requirements:
-
- filenames all have the same suffix (we use ".unmapped.bam")
-
- files must pass validation by ValidateSamFile
-
- reads are provided in query-sorted order
-
- all reads must have an RG tag
- Reference genome must be Hg38 with ALT contigs
- Cram, cram index, and cram md5
- GVCF and its gvcf index
- BQSR Report
- Several Summary Metrics
The second WDL implements the joint discovery and VQSR filtering portion of the GATK Best Practices (June 2016) for germline SNP and Indel discovery in human whole-genome sequencing (WGS) and exome sequencing data.
- One or more GVCFs produced by HaplotypeCaller in GVCF mode.
- Bare minimum 1 WGS sample or 30 Exome samples. Gene panels are not supported.
- VCF and its vcf index
Note: The gvcf is filtered using variant quality score recalibration
(VQSR) with genotypes for all samples present in the input VCF. All sites that
are present in the input VCF are retained; filtered sites are annotated as such
in the FILTER field. - Summary Metrics
- GATK 4.beta.5 for PairedSingleSampleWF and GATK 4.0 for PairedSingleSampleWF-fc. GATK4.0.11.0 for JointGenotypingWf.
- Picard 2.16.0-SNAPSHOT
- Samtools 1.3.1
- Python 2.7
- Cromwell version support
- Successfully tested on v37
- Does not work on versions < v23 due to output syntax
- VQSR wiring. The SNP and INDEL models are built in parallel, but then the corresponding recalibrations are applied in series. Because the INDEL model is generally ready first (because there are fewer indels than SNPs) we set INDEL recalibration to be applied first to the input VCF, while the SNP model is still being built. By the time the SNP model is available, the indel-recalibrated file is available to serve as input to apply the SNP recalibration. If we did it the other way around, we would have to wait until the SNP recal file was available despite the INDEL recal file being there already, then apply SNP recalibration, then apply INDEL recalibration. This would lead to a longer wall clock time for complete workflow execution. Wiring the INDEL recalibration to be applied first solves the problem.
- The current version of the posted "Generic germline short variant joint genotyping"
is derived from the Broad production version of the workflow, which was adapted for
large WGS callsets of up to 20K samples. We believe the results of this workflow run
on a single WGS sample are equally accurate, but there may be some shortcomings when
the workflow is modified and run on small cohorts. Specifically, modifying the SNP
ApplyRecalibration step for higher specificity may not be effective. The user can verify
if this is an issue by consulting the gathered SNP tranches file. If the listed
truthSensitivity in the rightmost column is not well matched to the targetTruthSensitivity
in the leftmost column, then requesting that targetTruthSensitivity from ApplyVQSR will
not use an accurate filtering threshold. This workflow has not been tested on exomes.
The dynamic scatter interval creating was optimized for genomes. The scattered SNP VariantRecalibration may fail because of too few "bad" variants to build the negative model. Also, apologies that the logging for SNP recalibration is overly verbose. - The provided JSON is meant to be a ready to use example JSON template of the workflow. It is the user’s responsibility to correctly set the reference and resource input variables using the GATK Tool and Tutorial Documentations.
- Relevant reference and resources bundles can be accessed in Resource Bundle.
- Runtime parameters are optimized for Broad's Google Cloud Platform implementation.
- For help running workflows on the Google Cloud Platform or locally please view the following tutorial (How to) Execute Workflows from the gatk-workflows Git Organization.
- The following material is provided by the GATK Team. Please post any questions or concerns to one of our forum sites : GATK , FireCloud or Terra , WDL/Cromwell.
- Please visit the User Guide site for further documentation on our workflows and tools.
Copyright Broad Institute, 2019 | BSD-3 This script is released under the WDL open source code license (BSD-3) (full license text at https://github.com/openwdl/wdl/blob/master/LICENSE). Note however that the programs it calls may be subject to different licenses. Users are responsible for checking that they are authorized to run all programs before running this script.