# HG changeset patch
# User dave
# Date 1569504203 14400
# Node ID c27f4eb641bff73fa0fd9703965881c8fcd139a7
Uploaded
diff -r 000000000000 -r c27f4eb641bf gatk4_Mutect2.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gatk4_Mutect2.xml Thu Sep 26 09:23:23 2019 -0400
@@ -0,0 +1,551 @@
+
+ - Call somatic SNVs and indels via local assembly of haplotypes
+
+ macros.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ output_opt['activity_profile_out_sel']
+
+
+ output_opt['assembly_region_out_sel']
+
+
+ output_opt['bam_output_sel']
+
+
+ output_opt['graph_output_sel']
+
+
+
+
+
+ `__)
+with the assembly-based machinery of
+`HaplotypeCaller `__.
+
+This tool is featured in the *Somatic Short Mutation calling Best
+Practice Workflow*. See
+`Tutorial#11136 `__
+for a step-by-step description of the workflow and
+`Article#11127 `__
+for an overview of what traditional somatic calling entails. For the
+latest pipeline scripts, see the `Mutect2 WDL scripts
+directory `__.
+Although we present the tool for somatic calling, it may apply to other
+contexts, such as mitochondrial variant calling.
+
+Usage examples
+~~~~~~~~~~~~~~
+
+Example commands show how to run Mutect2 for typical scenarios. The two
+modes are (i) *somatic mode* where a tumor sample is matched with a
+normal sample in analysis and (ii) *tumor-only mode* where a single
+sample's alignment data undergoes analysis.
+
+(i) Tumor with matched normal
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Given a matched normal, Mutect2 is designed to call somatic variants
+only. The tool includes logic to skip emitting variants that are clearly
+present in the germline based on provided evidence, e.g. in the matched
+normal. This is done at an early stage to avoid spending computational
+resources on germline events. If the variant's germline status is
+borderline, then Mutect2 will emit the variant to the callset for
+subsequent filtering and review.
+
+::
+
+ gatk Mutect2 \
+ -R reference.fa \
+ -I tumor.bam \
+ -tumor tumor_sample_name \
+ -I normal.bam \
+ -normal normal_sample_name \
+ --germline-resource af-only-gnomad.vcf.gz \
+ --af-of-alleles-not-in-resource 0.00003125 \
+ --panel-of-normals pon.vcf.gz \
+ -O somatic.vcf.gz
+
+
+The --af-of-alleles-not-in-resource argument value should match
+expectations for alleles not found in the provided germline resource.
+Note the tool does not require a germline resource nor a panel of
+normals (PoN) to run. The tool prefilters sites for the matched normal
+and the PoN. For the germline resource, the tool prefilters on the
+allele. Below is an excerpt of a known variants resource with population
+allele frequencies
+
+::
+
+ #CHROM POS ID REF ALT QUAL FILTER INFO
+ 1 10067 . T TAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCC 30.35 PASS AC=3;AF=7.384E-5
+ 1 10108 . CAACCCT C 46514.32 PASS AC=6;AF=1.525E-4
+ 1 10109 . AACCCTAACCCT AAACCCT,* 89837.27 PASS AC=48,5;AF=0.001223,1.273E-4
+ 1 10114 . TAACCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAACCCTAACCCTAACCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAAACCCTA *,CAACCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAACCCTAACCCTAACCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCTAACCCCTAACCCTAACCCTAAACCCTA,T 36728.97 PASS AC=55,9,1;AF=0.001373,2.246E-4,2.496E-5
+ 1 10119 . CT C,* 251.23 PASS AC=5,1;AF=1.249E-4,2.498E-5
+ 1 10120 . TA CA,* 14928.74 PASS AC=10,6;AF=2.5E-4,1.5E-4
+ 1 10128 . ACCCTAACCCTAACCCTAAC A,* 285.71 PASS AC=3,1;AF=7.58E-5,2.527E-5
+ 1 10131 . CT C,* 378.93 PASS AC=7,5;AF=1.765E-4,1.261E-4
+ 1 10132 . TAACCC *,T 18025.11 PASS AC=12,2;AF=3.03E-4,5.049E-5
+
+
+(ii) Tumor-only mode
+^^^^^^^^^^^^^^^^^^^^
+
+This mode runs on a single sample, e.g. single tumor or single normal
+sample. To create a PoN, call on each normal sample in this mode, then
+use CreateSomaticPanelOfNormals to generate the PoN.
+
+::
+
+ gatk Mutect2 \
+ -R reference.fa \
+ -I sample.bam \
+ -tumor sample_name \
+ -O single_sample.vcf.gz
+
+
+Further points of interest
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Additional parameters that factor towards filtering, including
+normal-artifact-lod (default threshold 0.0) and tumor-lod (default
+threshold 5.3), are available in FilterMutectCalls. While the tool
+calculates normal-lod assuming a diploid genotype, it calculates
+normal-artifact-lod with the same approach it uses for tumor-lod, i.e.
+with a variable ploidy assumption.
+
+- If the normal artifact log odds becomes large, then FilterMutectCalls applies the artifact-in-normal filter. For matched normal samples with tumor contamination, consider increasing the normal-artifact-lod threshold.
+
+- The tumor log odds, which is calculated independently of any matched normal, determines whether to filter a tumor variant. Variants with tumor LODs exceeding the threshold pass filtering.
+
+
+If a variant is absent from a given germline resource, then the value
+for --af-of-alleles-not-in-resource applies. For example, gnomAD's
+16,000 samples (~32,000 homologs per locus) becomes a probability of one
+in 32,000 or less. Thus, an allele's absence from the germline resource
+becomes evidence that it is not a germline variant.
+
+Caveats
+~~~~~~~
+
+Although GATK4 Mutect2 accomodates varying coverage depths, further
+optimization of parameters may improve calling for extreme high depths,
+e.g. 1000X.
+]]>
+
+
+
+
diff -r 000000000000 -r c27f4eb641bf macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Thu Sep 26 09:23:23 2019 -0400
@@ -0,0 +1,710 @@
+
+
+ 4.0.5.1
+ @VERSION@+galaxy
+
+
+
+ gatk4
+ tabix
+ samtools
+
+
+
+
+
+
+ gatk SortSam --version 2>&1 | grep Version | cut -d ':' -f 2
+
+
+
+ gatk --java-options "\$_JAVA_OPTIONS"
+
+
+
+ #set global $sections = ['', 'optional.', 'advanced.', 'common.', 'deprecated.']
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "reference_source.reference_source_selector")
+ #if $getVar($sect + "reference_source.reference_source_selector") != "no_ref"
+ #if $getVar($sect + "reference_source.reference_source_selector") != "history"
+ --reference $getVar($sect + "reference_source.reference_sequence.fields.path")
+ #else
+ --reference reference.fa
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "reference_source.reference_source_selector")
+ #if $getVar($sect + "reference_source.reference_source_selector") != "no_ref"
+ #if $getVar($sect + "reference_source.reference_source_selector") != "history"
+ --REFERENCE_SEQUENCE $getVar($sect + "reference_source.reference_sequence.fields.path")
+ #else
+ --REFERENCE_SEQUENCE $getVar($sect + "reference_source.reference_sequence")
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "reference_source.reference_source_selector")
+ #if $getVar($sect + "reference_source.reference_source_selector") != "no_ref"
+ #if $getVar($sect + "reference_source.reference_source_selector") != "history"
+ --REFERENCE $getVar($sect + "reference_source.reference_sequence.fields.path")
+ #else
+ --REFERENCE $getVar($sect + "reference_source.reference_sequence")
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "reference_source.reference_source_selector")
+ #if $getVar($sect + "reference_source.reference_source_selector") != "no_ref"
+ #if $getVar($sect + "reference_source.reference_source_selector") != "history"
+ --input $getVar($sect + "reference_source.reference_sequence.fields.path")
+ #else
+ --input $getVar($sect + "reference_source.reference_sequence")
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "ival_type.ival_type_sel")
+ #if $getVar($sect + "ival_type.ival_type_sel") == "ival_file"
+ #if $varExists($sect + "ival_type.intervals")
+ #if $getVar($sect + "ival_type.intervals").is_of_type("gatk_interval")
+ --intervals intervals.interval_list
+ #end if
+ #if $getVar($sect + "ival_type.intervals").is_of_type("bed")
+ --intervals intervals.bed
+ #end if
+ #if $getVar($sect + "ival_type.intervals").is_of_type("vcf")
+ --intervals intervals.vcf
+ #end if
+ #end if
+ #else
+ #if $varExists($sect + "ival_type.intervals")
+ --intervals $getVar($sect + "ival_type.intervals")
+ #end if
+ #end if
+ #if $varExists($sect + "ival_type.interval_padding")
+ --interval-padding $getVar($sect + "ival_type.interval_padding")
+ #end if
+ #end if
+ #end for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "excl_ival_type.excl_ival_type_sel")
+ #if $getVar($sect + "excl_ival_type.excl_ival_type_sel") == "ival_file"
+ #if $varExists($sect + "excl_ival_type.exclude_intervals")
+ #if $getVar($sect + "excl_ival_type.exclude_intervals").is_of_type("gatk_interval")
+ --exclude-intervals excl_intervals.interval_list
+ #end if
+ #if $getVar($sect + "excl_ival_type.exclude_intervals").is_of_type("bed")
+ --exclude-intervals excl_intervals.bed
+ #end if
+ #if $getVar($sect + "excl_ival_type.exclude_intervals").is_of_type("vcf")
+ --exclude-intervals excl_intervals.vcf
+ #end if
+ #end if
+ #elif $getVar($sect + "excl_ival_type.excl_ival_type_sel") == "excl_ival_text"
+ #if $varExists($sect + "excl_ival_type.exclude_intervals")
+ --exclude-intervals $getVar($sect + "excl_ival_type.exclude_intervals")
+ #end if
+ #else
+ #pass
+ #end if
+ #if $varExists($sect + "excl_ival_type.interval_exclusion_padding")
+ --interval-exclusion-padding $getVar($sect + "excl_ival_type.interval_exclusion_padding")
+ #end if
+ #end if
+ #end for
+
+
+
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "seqdict_source.seqdict_source_selector")
+ #if $getVar($sect + "seqdict_source.seqdict_source_selector") != "no_seq_dict"
+ #if $getVar($sect + "seqdict_source.seqdict_source_selector") != "history"
+ #set seq_dict_loc = ''.join($getVar($sect + seqdict_source.seqdict_sequence).fields.path.split('.')[:-1]) + '.dict'
+ --SEQUENCE_DICTIONARY $seq_dict_loc
+ #else
+ --SEQUENCE_DICTIONARY $getVar($sect + "seqdict_source.seqdict_sequence")
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+ #for $sect in $sections
+ #if $varExists($sect + "seqdict_source.seqdict_source_selector")
+ #if $getVar($sect + "seqdict_source.seqdict_source_selector") != "no_seq_dict"
+ #if $getVar($sect + "seqdict_source.seqdict_source_selector") != "history"
+ #set $seq_dict_loc = ''.join($getVar($sect + "seqdict_source.seqdict_sequence").fields.path.split('.')[:-1]) + '.dict'
+ --sequence-dictionary $seq_dict_loc
+ #else
+ --sequence-dictionary $getVar($sect + "seqdict_source.seqdict_sequence")
+ #end if
+ #end if
+ #end if
+ #end for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --INPUT input.bam
+
+
+
+ --input input.bam
+
+
+
+
+
+
+
+
+
+
+
+
+
+ > output.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --output "${output}"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #if $picard_adv.arguments_file
+ --arguments_file ${picard_adv.arguments_file}
+ #end if
+ --COMPRESSION_LEVEL ${picard_adv.COMPRESSION_LEVEL}
+ #if $picard_adv.GA4GH_CLIENT_SECRETS
+ --GA4GH_CLIENT_SECRETS ${picard_adv.GA4GH_CLIENT_SECRETS}
+ #end if
+ --MAX_RECORDS_IN_RAM ${picard_adv.MAX_RECORDS_IN_RAM}
+ --VALIDATION_STRINGENCY ${picard_adv.VALIDATION_STRINGENCY}
+ --VERBOSITY ${picard_adv.VERBOSITY}
+ ${picard_adv.CREATE_MD5_FILE}
+ ${picard_adv.USE_JDK_DEFLATER}
+ ${picard_adv.USE_JDK_INFLATER}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ not gzipped_output
+
+
+ gzipped_output
+
+
+
+
+
+
+ #if $gzipped_output
+ --OUTPUT output.vcf.gz
+ #else
+ --OUTPUT output.vcf
+ #end if
+
+
+
+ #if $gzipped_output
+ --output output.vcf.gz
+ #else
+ --output output.vcf
+ #end if
+
+
+
+
+ picard_adv['CREATE_MD5_FILE']
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 10.1101/gr.107524.110
+ 10.1038/ng.806
+ 10.1002/0471250953.bi1110s43
+ 10.1101/201178
+
+
+
+
\ No newline at end of file