UnifiedGenotyper

A variant caller which unifies the approaches of several disparate callers -- Works for single-sample and multi-sample data.

Category Variant Discovery Tools

Traversal LocusWalker

PartitionBy LOCUS


Overview

The GATK Unified Genotyper is a multiple-sample, technology-aware SNP and indel caller. It uses a Bayesian genotype likelihood model to estimate simultaneously the most likely genotypes and allele frequency in a population of N samples, emitting an accurate posterior probability of there being a segregating variant allele at each locus as well as for the genotype of each sample. The system can either emit just the variant sites or complete genotypes (which includes homozygous reference calls) satisfying some phred-scaled confidence value. The genotyper can make accurate calls on both single sample data and multi-sample data.

Input

The read data from which to make variant calls.

Output

A raw, unfiltered, highly sensitive callset in VCF format.

Example generic command for multi-sample SNP calling

 java -jar GenomeAnalysisTK.jar \
   -R resources/Homo_sapiens_assembly18.fasta \
   -T UnifiedGenotyper \
   -I sample1.bam [-I sample2.bam ...] \
   --dbsnp dbSNP.vcf \
   -o snps.raw.vcf \
   -stand_call_conf [50.0] \
   -stand_emit_conf 10.0 \
   -dcov [50 for 4x, 200 for >30x WGS or Whole exome] \
   [-L targets.interval_list]
 

The above command will call all of the samples in your provided BAM files [-I arguments] together and produce a VCF file with sites and genotypes for all samples. The easiest way to get the dbSNP file is from the GATK resource bundle (see Guide FAQs for details). Several arguments have parameters that should be chosen based on the average coverage per sample in your data. See the detailed argument descriptions below.

Example command for generating calls at all sites

 java -jar /path/to/GenomeAnalysisTK.jar \
   -l INFO \
   -R resources/Homo_sapiens_assembly18.fasta \
   -T UnifiedGenotyper \
   -I /DCC/ftp/pilot_data/data/NA12878/alignment/NA12878.SLX.maq.SRP000031.2009_08.bam \
   -o my.vcf \
   --output_mode EMIT_ALL_SITES
 

Caveats

  • The system is under active and continuous development. All outputs, the underlying likelihood model, arguments, and file formats are likely to change.
  • The system can be very aggressive in calling variants. In the 1000 genomes project for pilot 2 (deep coverage of ~35x) we expect the raw Qscore > 50 variants to contain at least ~10% FP calls. We use extensive post-calling filters to eliminate most of these FPs. Variant Quality Score Recalibration is a tool to perform this filtering.
  • The generalized ploidy model can be used to handle non-diploid or pooled samples (see the -ploidy argument in the table below).

Additional Information

Read filters

These Read Filters are automatically applied to the data by the Engine before processing by UnifiedGenotyper.

Parallelism options

This tool can be run in multi-threaded mode using these options.

Downsampling settings

This tool overrides the engine's default downsampling settings.

  • Mode: BY_SAMPLE
  • To coverage: 250

Window size

This tool uses a sliding window on the reference.

  • Window start: -200 bp before the locus
  • Window stop: 200 bp after the locus

Command-line Arguments

Inherited arguments

The arguments described in the entries below can be supplied to this tool to modify its behavior. For example, the -L argument directs the GATK engine restricts processing to specific genomic intervals (this is an Engine capability and is therefore available to all GATK walkers).

UnifiedGenotyper specific arguments

This table summarizes the command-line arguments that are specific to this tool. For details, see the list further down below the table.

Name Type Default value Summary
Optional
--alleles RodBinding[VariantContext] none The set of alleles at which to genotype when --genotyping_mode is GENOTYPE_GIVEN_ALLELES
--annotateNDA boolean false If provided, we will annotate records with the number of alternate alleles that were discovered (but not necessarily genotyped) at a given site
--annotation List[String] [] One or more specific annotations to apply to variant calls
--comp List[RodBinding[VariantContext]] [] Comparison VCF file
--computeSLOD boolean false If provided, we will calculate the SLOD (SB annotation)
-contamination double 0.05 Fraction of contamination in sequencing data (for all samples) to aggressively remove
--dbsnp RodBinding[VariantContext] none dbSNP file
--excludeAnnotation List[String] [] One or more specific annotations to exclude
--genotype_likelihoods_model Model SNP Genotype likelihoods calculation model to employ -- SNP is the default option, while INDEL is also available for calling indels and BOTH is available for calling both together
--genotyping_mode GENOTYPING_MODE DISCOVERY Specifies how to determine the alternate alleles to use for genotyping
--group String[] [Standard] One or more classes/groups of annotations to apply to variant calls
--heterozygosity Double 0.0010 Heterozygosity value used to compute prior likelihoods for any locus
--indel_heterozygosity double 1.25E-4 Heterozygosity for indel calling
--max_deletion_fraction Double 0.05 Maximum fraction of reads with deletions spanning this locus for it to be callable [to disable, set to < 0 or > 1; default:0.05]
--min_base_quality_score int 17 Minimum base quality required to consider a base for calling
-minIndelCnt int 5 Minimum number of consensus indels required to trigger genotyping run
-minIndelFrac double 0.25 Minimum fraction of all reads at a locus that must contain an indel (of any allele) for that sample to contribute to the indel count for alleles
--out VariantContextWriter stdout File to which variants should be written
--output_mode OUTPUT_MODE EMIT_VARIANTS_ONLY Specifies which type of calls we should output
--pair_hmm_implementation HMM_IMPLEMENTATION ORIGINAL The PairHMM implementation to use for -glm INDEL genotype likelihood calculations
--pcr_error_rate Double 1.0E-4 The PCR error rate to be used for computing fragment-based likelihoods
--sample_ploidy int 2 Plody (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy).
-stand_call_conf double 30.0 The minimum phred-scaled confidence threshold at which variants should be called
-stand_emit_conf double 30.0 The minimum phred-scaled confidence threshold at which variants should be emitted (and filtered with LowQual if less than the calling threshold)
Advanced
-contaminationFile File NA Tab-separated File containing fraction of contamination in sequencing data (per sample) to aggressively remove. Format should be "" (Contamination is double) per line; No header.
--indelGapContinuationPenalty byte 10 Indel gap continuation penalty, as Phred-scaled probability. I.e., 30 => 10^-30/10
--indelGapOpenPenalty byte 45 Indel gap open penalty, as Phred-scaled probability. I.e., 30 => 10^-30/10
--input_prior List[Double] [] Input prior for calls
--max_alternate_alleles int 6 Maximum number of alternate alleles to genotype

Argument details

Arguments in this list are specific to this tool. Keep in mind that other arguments are available that are shared with other tools (e.g. command-line GATK arguments); see Inherited arguments above.

--alleles / -alleles ( RodBinding[VariantContext] with default value none )

The set of alleles at which to genotype when --genotyping_mode is GENOTYPE_GIVEN_ALLELES. When the UnifiedGenotyper is put into GENOTYPE_GIVEN_ALLELES mode it will genotype the samples using only the alleles provide in this rod binding --alleles binds reference ordered data. This argument supports ROD files of the following types: BCF2, VCF, VCF3

--annotateNDA / -nda ( boolean with default value false )

If provided, we will annotate records with the number of alternate alleles that were discovered (but not necessarily genotyped) at a given site. Depending on the value of the --max_alternate_alleles argument, we may genotype only a fraction of the alleles being sent on for genotyping. Using this argument instructs the genotyper to annotate (in the INFO field) the number of alternate alleles that were originally discovered at the site.

--annotation / -A ( List[String] with default value [] )

One or more specific annotations to apply to variant calls. Which annotations to add to the output VCF file. See the VariantAnnotator -list argument to view available annotations.

--comp / -comp ( List[RodBinding[VariantContext]] with default value [] )

Comparison VCF file. If a call overlaps with a record from the provided comp track, the INFO field will be annotated as such in the output with the track name (e.g. -comp:FOO will have 'FOO' in the INFO field). Records that are filtered in the comp track will be ignored. Note that 'dbSNP' has been special-cased (see the --dbsnp argument). --comp binds reference ordered data. This argument supports ROD files of the following types: BCF2, VCF, VCF3

--computeSLOD / -slod ( boolean with default value false )

If provided, we will calculate the SLOD (SB annotation). Note that calculating the SLOD increases the runtime by an appreciable amount.

-contamination / --contamination_fraction_to_filter ( double with default value 0.05 )

Fraction of contamination in sequencing data (for all samples) to aggressively remove. If this fraction is greater is than zero, the caller will aggressively attempt to remove contamination through biased down-sampling of reads. Basically, it will ignore the contamination fraction of reads for each alternate allele. So if the pileup contains N total bases, then we will try to remove (N * contamination fraction) bases for each alternate allele.

-contaminationFile / --contamination_fraction_per_sample_file ( File )

Tab-separated File containing fraction of contamination in sequencing data (per sample) to aggressively remove. Format should be "" (Contamination is double) per line; No header.. This argument specifies a file with two columns "sample" and "contamination" specifying the contamination level for those samples. Samples that do not appear in this file will be processed with CONTAMINATION_FRACTION

--dbsnp / -D ( RodBinding[VariantContext] with default value none )

dbSNP file. rsIDs from this file are used to populate the ID column of the output. Also, the DB INFO flag will be set when appropriate. dbSNP is not used in any way for the calculations themselves. --dbsnp binds reference ordered data. This argument supports ROD files of the following types: BCF2, VCF, VCF3

--excludeAnnotation / -XA ( List[String] with default value [] )

One or more specific annotations to exclude. Which annotations to exclude from output in the VCF file. Note that this argument has higher priority than the -A or -G arguments, so annotations will be excluded even if they are explicitly included with the other options.

--genotype_likelihoods_model / -glm ( Model with default value SNP )

Genotype likelihoods calculation model to employ -- SNP is the default option, while INDEL is also available for calling indels and BOTH is available for calling both together.
The --genotype_likelihoods_model argument is an enumerated type (Model), which can have one of the following values:

SNP
INDEL
GENERALPLOIDYSNP
GENERALPLOIDYINDEL
BOTH

--genotyping_mode / -gt_mode ( GENOTYPING_MODE with default value DISCOVERY )

Specifies how to determine the alternate alleles to use for genotyping.
The --genotyping_mode argument is an enumerated type (GENOTYPING_MODE), which can have one of the following values:

DISCOVERY
the Unified Genotyper will choose the most likely alternate allele
GENOTYPE_GIVEN_ALLELES
only the alleles passed in from a VCF rod bound to the -alleles argument will be used for genotyping

--group / -G ( String[] with default value [Standard] )

One or more classes/groups of annotations to apply to variant calls. If specified, all available annotations in the group will be applied. See the VariantAnnotator -list argument to view available groups. Keep in mind that RODRequiringAnnotations are not intended to be used as a group, because they require specific ROD inputs.

--heterozygosity / -hets ( Double with default value 0.0010 )

Heterozygosity value used to compute prior likelihoods for any locus. The expected heterozygosity value used to compute prior likelihoods for any locus. The default priors are: het = 1e-3, P(hom-ref genotype) = 1 - 3 * het / 2, P(het genotype) = het, P(hom-var genotype) = het / 2

--indel_heterozygosity / -indelHeterozygosity ( double with default value 1.25E-4 )

Heterozygosity for indel calling. This argument informs the prior probability of having an indel at a site.

--indelGapContinuationPenalty / -indelGCP ( byte with default value 10 )

Indel gap continuation penalty, as Phred-scaled probability. I.e., 30 => 10^-30/10.

--indelGapOpenPenalty / -indelGOP ( byte with default value 45 )

Indel gap open penalty, as Phred-scaled probability. I.e., 30 => 10^-30/10.

--input_prior / -inputPrior ( List[Double] with default value [] )

Input prior for calls. By default, the prior specified with the argument --heterozygosity/-hets is used for variant discovery at a particular locus, using an infinite sites model, see e.g. Waterson (1975) or Tajima (1996). This model asserts that the probability of having a population of k variant sites in N chromosomes is proportional to theta/k, for 1=1:N There are instances where using this prior might not be desireable, e.g. for population studies where prior might not be appropriate, as for example when the ancestral status of the reference allele is not known. By using this argument, user can manually specify priors to be used for calling as a vector for doubles, with the following restriciotns: a) User must specify 2N values, where N is the number of samples. b) Only diploid calls supported. c) Probability values are specified in double format, in linear space. d) No negative values allowed. e) Values will be added and Pr(AC=0) will be 1-sum, so that they sum up to one. f) If user-defined values add to more than one, an error will be produced. If user wants completely flat priors, then user should specify the same value (=1/(2*N+1)) 2*N times,e.g. -inputPrior 0.33 -inputPrior 0.33 for the single-sample diploid case.

--max_alternate_alleles / -maxAltAlleles ( int with default value 6 )

Maximum number of alternate alleles to genotype. If there are more than this number of alternate alleles presented to the genotyper (either through discovery or GENOTYPE_GIVEN ALLELES), then only this many alleles will be used. Note that genotyping sites with many alternate alleles is both CPU and memory intensive and it scales exponentially based on the number of alternate alleles. Unless there is a good reason to change the default value, we highly recommend that you not play around with this parameter. As of GATK 2.2 the genotyper can handle a very large number of events, so the default maximum has been increased to 6.

--max_deletion_fraction / -deletions ( Double with default value 0.05 )

Maximum fraction of reads with deletions spanning this locus for it to be callable [to disable, set to < 0 or > 1; default:0.05].

--min_base_quality_score / -mbq ( int with default value 17 )

Minimum base quality required to consider a base for calling. The minimum confidence needed in a given base for it to be used in variant calling. Note that the base quality of a base is capped by the mapping quality so that bases on reads with low mapping quality may get filtered out depending on this value. Note too that this argument is ignored in indel calling. In indel calling, low-quality ends of reads are clipped off (with fixed threshold of Q20).

-minIndelCnt / --min_indel_count_for_genotyping ( int with default value 5 )

Minimum number of consensus indels required to trigger genotyping run. A candidate indel is genotyped (and potentially called) if there are this number of reads with a consensus indel at a site. Decreasing this value will increase sensitivity but at the cost of larger calling time and a larger number of false positives.

-minIndelFrac / --min_indel_fraction_per_sample ( double with default value 0.25 )

Minimum fraction of all reads at a locus that must contain an indel (of any allele) for that sample to contribute to the indel count for alleles. Complementary argument to minIndelCnt. Only samples with at least this fraction of indel-containing reads will contribute to counting and overcoming the threshold minIndelCnt. This parameter ensures that in deep data you don't end up summing lots of super rare errors up to overcome the 5 read default threshold. Should work equally well for low-coverage and high-coverage samples, as low coverage samples with any indel containing reads should easily over come this threshold.

--out / -o ( VariantContextWriter with default value stdout )

File to which variants should be written. A raw, unfiltered, highly sensitive callset in VCF format.

--output_mode / -out_mode ( OUTPUT_MODE with default value EMIT_VARIANTS_ONLY )

Specifies which type of calls we should output.
The --output_mode argument is an enumerated type (OUTPUT_MODE), which can have one of the following values:

EMIT_VARIANTS_ONLY
produces calls only at variant sites
EMIT_ALL_CONFIDENT_SITES
produces calls at variant sites and confident reference sites
EMIT_ALL_SITES
produces calls at any callable site regardless of confidence; this argument is intended only for point mutations (SNPs) in DISCOVERY mode or generally when running in GENOTYPE_GIVEN_ALLELES mode; it will by no means produce a comprehensive set of indels in DISCOVERY mode

--pair_hmm_implementation / -pairHMM ( HMM_IMPLEMENTATION with default value ORIGINAL )

The PairHMM implementation to use for -glm INDEL genotype likelihood calculations. The PairHMM implementation to use for -glm INDEL genotype likelihood calculations. The various implementations balance a tradeoff of accuracy and runtime.
The --pair_hmm_implementation argument is an enumerated type (HMM_IMPLEMENTATION), which can have one of the following values:

EXACT
ORIGINAL
LOGLESS_CACHING

--pcr_error_rate / -pcr_error ( Double with default value 1.0E-4 )

The PCR error rate to be used for computing fragment-based likelihoods. The PCR error rate is independent of the sequencing error rate, which is necessary because we cannot necessarily distinguish between PCR errors vs. sequencing errors. The practical implication for this value is that it effectively acts as a cap on the base qualities.

--sample_ploidy / -ploidy ( int with default value 2 )

Plody (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy)..

-stand_call_conf / --standard_min_confidence_threshold_for_calling ( double with default value 30.0 )

The minimum phred-scaled confidence threshold at which variants should be called. The minimum phred-scaled Qscore threshold to separate high confidence from low confidence calls. Only genotypes with confidence >= this threshold are emitted as called sites. A reasonable threshold is 30 for high-pass calling (this is the default).

-stand_emit_conf / --standard_min_confidence_threshold_for_emitting ( double with default value 30.0 )

The minimum phred-scaled confidence threshold at which variants should be emitted (and filtered with LowQual if less than the calling threshold). This argument allows you to emit low quality calls as filtered records.


See also Guide Index | Technical Documentation Index | Support Forum

GATK version 2.5-2-gdb4546e built at 2013/05/01 09:32:36.