Repository 'ngsap_vc'
hg clone https://toolshed.g2.bx.psu.edu/repos/scisjnu123/ngsap_vc

Changeset 3:0d10255b5434 (2019-10-03)
Previous changeset 2:2c7824a8d764 (2019-09-12)
Commit message:
Uploaded
added:
ngsap-vc/Haplotypecaller.ga
ngsap-vc/SAMTools.ga
ngsap-vc/SVDetect.ga
ngsap-vc/VARSCAN.ga
ngsap-vc/gatk/analyze_covariates.xml
ngsap-vc/gatk/base_recalibrator.xml
ngsap-vc/gatk/combine_gvcfs.xml
ngsap-vc/gatk/combine_variants.xml
ngsap-vc/gatk/gatk.xml
ngsap-vc/gatk/gatk_macros.xml
ngsap-vc/gatk/generation/gatk.xsl
ngsap-vc/gatk/generation/gatk.xsldb.xml
ngsap-vc/gatk/genotype_gvcfs.xml
ngsap-vc/gatk/haplotype_caller.xml
ngsap-vc/gatk/indel_realigner.xml
ngsap-vc/gatk/print_reads.xml
ngsap-vc/gatk/realigner_target_creator.xml
ngsap-vc/gatk/tool-data/destinations.py
ngsap-vc/gatk/tool-data/picard_index.loc.sample
ngsap-vc/gatk/tool_data_table_conf.xml.sample
ngsap-vc/gatk/tool_dependencies.xml
ngsap-vc/package_r_for_gatk_3_4_0/tool_dependencies.xml
ngsap-vc/suite_samtools_1_2/repository_dependencies.xml
ngsap-vc/svdetect/BAM_preprocessingPairs.pl
ngsap-vc/svdetect/BAM_preprocessingPairs.xml
ngsap-vc/svdetect/SVDetect_compare.pl
ngsap-vc/svdetect/SVDetect_compare.xml
ngsap-vc/svdetect/SVDetect_import.sh
ngsap-vc/svdetect/SVDetect_import.xml
ngsap-vc/svdetect/SVDetect_run_parallel.pl
ngsap-vc/svdetect/SVDetect_run_parallel.xml
ngsap-vc/svdetect/circos_graph.xml
ngsap-vc/varscan/tool_dependencies.xml
ngsap-vc/varscan/varscan_mpileup.pl
ngsap-vc/varscan/varscan_mpileup.xml
ngsap-vc/varscan/varscan_somatic.pl
ngsap-vc/varscan/varscan_somatic.xml
removed:
GATK/gatk/analyze_covariates.xml
GATK/gatk/base_recalibrator.xml
GATK/gatk/combine_gvcfs.xml
GATK/gatk/combine_variants.xml
GATK/gatk/gatk.xml
GATK/gatk/gatk_macros.xml
GATK/gatk/generation/gatk.xsl
GATK/gatk/generation/gatk.xsldb.xml
GATK/gatk/genotype_gvcfs.xml
GATK/gatk/haplotype_caller.xml
GATK/gatk/indel_realigner.xml
GATK/gatk/print_reads.xml
GATK/gatk/realigner_target_creator.xml
GATK/gatk/tool-data/destinations.py
GATK/gatk/tool-data/picard_index.loc.sample
GATK/gatk/tool_data_table_conf.xml.sample
GATK/gatk/tool_dependencies.xml
GATK/package_picard_1_135/tool_dependencies.xml
GATK/package_r_for_gatk_3_4_0/tool_dependencies.xml
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/analyze_covariates.xml
--- a/GATK/gatk/analyze_covariates.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,37 +0,0 @@
-<macros>
-    <xml name="AnalyzeCovariatesParameters" tokens="tag">
-
-        <!-- BQSR in main config -->
-
-        <param name="afterReportFile" type="data" format="tabular" optional="true" label="file containing the BQSR second-pass report file" help="-after,&#8209;&#8209;afterReportFile &amp;lt;afterReportFile&amp;gt;" />
-
-        <param name="beforeReportFile" type="data" format="tabular" optional="true" label="file containing the BQSR first-pass report file" help="-before,&#8209;&#8209;beforeReportFile &amp;lt;beforeReportFile&amp;gt;" />
-
-    </xml>
-
-    <xml name="AnalyzeCovariatesOutput">
-        <data format="pdf" name="ac_plotsReportFile" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (PDF Recalibration Report)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="AnalyzeCovariatesPreprocessing">
-<![CDATA[
-]]>
-    </template>
-
-    <template name="AnalyzeCovariatesOptions">
-<![CDATA[
-        --plotsReportFile                   ${ac_plotsReportFile}
-
-        #if str($analysis_type.afterReportFile)
-            --afterReportFile $analysis_type.afterReportFile
-        #end if
-        #if str($analysis_type.beforeReportFile)
-            --beforeReportFile $analysis_type.beforeReportFile
-        #end if
-]]>
-    </template>
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/base_recalibrator.xml
--- a/GATK/gatk/base_recalibrator.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,38 +0,0 @@
-<macros>
-    <xml name="BaseRecalibratorParameters" tokens="tag">
-        
-        <expand macro="macro_bam_input" tag="@TAG@" />
-
-        <param name="knownSites" type="data" format="vcf,bcf,bed,pileup,tabular,table" label="Database of known Sites (ROD files; e.g. VCF format)" multiple="true" title="A database of known polymorphic sites to skip over in the recalibration algorithm" help="-knownSites,&#8209;&#8209;knownSites &amp;lt;knownSites&amp;gt;" />
-
-    </xml>
-
-    <xml name="BaseRecalibratorOutput">
-        <data format="tabular" name="br_table" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (Table)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="BaseRecalibratorPreprocessing">
-<![CDATA[
-        @token_bam_input_pre@
-        #for $i, $variant in enumerate($analysis_type.knownSites):
-            ln -s -f ${variant} variant_${i}.vcf &&
-        #end for
-]]>
-    </template>
-
-    <template name="BaseRecalibratorOptions">
-<![CDATA[
-        --out                   ${br_table}
-
-        @token_bam_input@
-
-        #for $i, $variant in enumerate($analysis_type.knownSites):
-            --knownSites variant_${i}.vcf
-        #end for
-]]>
-    </template>
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/combine_gvcfs.xml
--- a/GATK/gatk/combine_gvcfs.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,44 +0,0 @@
-<macros>
-    <xml name="CombineGVCFsParameters" tokens="tag">
-        
-        <expand macro="macro_gvcf_input" tag="@TAG@" />
-
-        <expand macro="macro_optional_parameters">
-
-            <param name="breakBandsAtMultiplesOf" type="integer" value="0" label="If > 0, reference bands will be broken up at genomic positions that are multiples of this number" help="-breakBandsAtMultiplesOf,&#8209;&#8209;breakBandsAtMultiplesOf &amp;lt;breakBandsAtMultiplesOf&amp;gt;" />
-
-        </expand>
-
-    </xml>
-
-    <xml name="CombineGVCFsOutput">
-        <data format="vcf" name="cg_output_vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (VCF)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="CombineGVCFsPreprocessing">
-<![CDATA[
-        @token_gvcf_input_pre@
-]]>
-    </template>
-
-    <template name="CombineGVCFsOptions">
-<![CDATA[
-        --out ${cg_output_vcf}
-
-        @token_gvcf_input@
-
-        #set $optionals = $analysis_type.optional_parameters
-        #if $optionals.optional_parameters_enabled
-            #if $optionals.breakBandsAtMultiplesOf > 0
-                --breakBandsAtMultiplesOf $optionals.breakBandsAtMultiplesOf
-            #end if
-        #end if
-]]>
-    </template>
-
-
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/combine_variants.xml
--- a/GATK/gatk/combine_variants.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,96 +0,0 @@
-<macros>
-    <xml name="CombineVariantsParameters" tokens="tag">
-        
-        <expand macro="macro_vcf_input" tag="@TAG@" />
-
-        <expand macro="macro_optional_parameters">
-
-            <param name="filteredRecordsMergeType" type="select" label="Determines how we should handle records seen at the same site in the VCF, but with different FILTER fields" help="-filteredRecordsMergeType,&#8209;&#8209;filteredrecordsmergetype &amp;lt;filteredrecordsmergetype&amp;gt;">
-                <option value="">No Selection</option>
-                <option value="KEEP_IF_ANY_UNFILTERED">KEEP_IF_ANY_UNFILTERED</option>
-                <option value="KEEP_IF_ALL_UNFILTERED">KEEP_IF_ALL_UNFILTERED</option>
-                <option value="KEEP_UNCONDITIONAL">KEEP_UNCONDITIONAL</option>
-            </param>
-
-            <param name="genotypeMergeOptions" type="select" label="Determines how we should merge genotype records for samples shared across the ROD files" help="-genotypeMergeOptions,&#8209;&#8209;genotypemergeoption &amp;lt;genotypemergeoption&amp;gt;">
-                <option value="">No Selection</option>
-                <option value="UNIQUIFY">UNIQUIFY</option>
-                <option value="PRIORITIZE">PRIORITIZE</option>
-                <option value="UNSORTED">UNSORTED</option>
-                <option value="REQUIRE_UNIQUE">REQUIRE_UNIQUE</option>
-            </param>
-
-            <param name="minimumN" type="integer" value="1" optional="true" label="Combine variants and output site only if the variant is present in at least N input files" help="-minN,&#8209;&#8209;minimumN &amp;lt;minimumN&amp;gt;" />
-
-            <param name="rod_priority_list" type="text" value="" optional="true" label="A comma-separated string describing the priority ordering for the genotypes as far as which record gets emitted" help="-priority,&#8209;&#8209;rod_priority_list &amp;lt;rod_priority_list&amp;gt;" />
-
-            <param name="setKey" type="text" value="" optional="true" label="Key used in the INFO key=value tag emitted describing which set the combined VCF record came from" help="-setKey,&#8209;&#8209;setKey &amp;lt;setKey&amp;gt;" />
-
-            <param name="assumeIdenticalSamples" type="boolean" truevalue="--assumeIdenticalSamples" falsevalue="" label="If true, assume input VCFs have identical sample sets and disjoint calls" help="-assumeIdenticalSamples,&#8209;&#8209;assumeIdenticalSamples" />
-
-            <param name="excludeNonVariants" type="boolean" truevalue="--excludeNonVariants" falsevalue="" label="Don't include loci found to be non-variant after the combining procedure" help="-env,&#8209;&#8209;excludeNonVariants" />
-
-            <param name="filteredAreUncalled" type="boolean" truevalue="--filteredAreUncalled" falsevalue="" label="If true, then filtered VCFs are treated as uncalled, so that filtered set annotations don't appear in the combined VCF" help="-filteredAreUncalled,&#8209;&#8209;filteredAreUncalled" />
-
-            <param name="mergeInfoWithMaxAC" type="boolean" truevalue="--mergeInfoWithMaxAC" falsevalue="" label="If true, when VCF records overlap the info field is taken from the one with the max AC instead of only taking the fields which are identical across the overlapping records." help="-mergeInfoWithMaxAC,&#8209;&#8209;mergeInfoWithMaxAC" />
-
-            <param name="minimalVCF" type="boolean" truevalue="--minimalVCF" falsevalue="" label="If true, then the output VCF will contain no INFO or genotype FORMAT fields" help="-minimalVCF,&#8209;&#8209;minimalVCF" />
-
-            <param name="printComplexMerges" type="boolean" truevalue="--printComplexMerges" falsevalue="" label="Print out interesting sites requiring complex compatibility merging" help="-printComplexMerges,&#8209;&#8209;printComplexMerges" />
-
-            <param name="suppressCommandLineHeader" type="boolean" truevalue="--suppressCommandLineHeader" falsevalue="" label="If true, do not output the header containing the command line used" help="-suppressCommandLineHeader,&#8209;&#8209;suppressCommandLineHeader" />
-
-        </expand>
-
-    </xml>
-
-    <xml name="CombineVariantsOutput">
-        <data format="vcf" name="cv_output_vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (VCF)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="CombineVariantsPreprocessing">
-<![CDATA[
-        @token_vcf_input_pre@
-]]>
-    </template>
-
-    <template name="CombineVariantsOptions">
-<![CDATA[
-        --out ${cv_output_vcf}
-
-        @token_vcf_input@
-
-        #set $optionals = $analysis_type.optional_parameters
-        #if $optionals.optional_parameters_enabled
-
-            #if $optionals.filteredRecordsMergeType
-                --filteredRecordsMergeType $optionals.filteredRecordsMergeType
-            #end if
-            #if $optionals.genotypeMergeOptions
-                --genotypeMergeOptions $optionals.genotypeMergeOptions
-            #end if
-            #if $optionals.minimumN != 1
-                --minimumN $optionals.minimumN
-            #end if
-            #if $optionals.rod_priority_list
-                --rod_priority_list $optionals.rod_priority_list
-            #end if
-
-            $optionals.assumeIdenticalSamples
-            $optionals.excludeNonVariants
-            $optionals.filteredAreUncalled
-            $optionals.mergeInfoWithMaxAC
-            $optionals.minimalVCF
-            $optionals.printComplexMerges
-            $optionals.suppressCommandLineHeader
-
-        #end if
-]]>
-    </template>
-
-
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/gatk.xml
--- a/GATK/gatk/gatk.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
b'@@ -1,179 +0,0 @@\n-<?xml version="1.0" encoding="utf-8"?>\n-<tool id="gatk" name="GATK" version="@VERSION@.d9">\n-  <description>tool collection Version @VERSION@</description>\n-  <macros>\n-    <import>gatk_macros.xml</import>\n-    <import>realigner_target_creator.xml</import>\n-    <import>indel_realigner.xml</import>\n-    <import>base_recalibrator.xml</import>\n-    <import>analyze_covariates.xml</import>\n-    <import>print_reads.xml</import>\n-    <import>haplotype_caller.xml</import>\n-    <import>genotype_gvcfs.xml</import>\n-    <import>combine_gvcfs.xml</import>\n-    <import>combine_variants.xml</import>\n-  </macros>\n-  <expand macro="requirements"/>\n-  <stdio>\n-    <regex match="^INFO" level="log"/>\n-    <regex match="^WARN" level="warning"/>\n-    <regex match="Using .* implementation of PairHMM" level="warning"/>\n-    <regex match="There is insufficient memory for the Java Runtime Environment to continue" level="fatal"/>\n-    <regex match="^##### ERROR" level="fatal"/>\n-    <exit_code range="1:" level="fatal"/>\n-  </stdio>\n-  <command><![CDATA[\n-        ############################\n-        ## import analysis specific preprocessings by using cheetahs internal searchList\n-        ## if not defined, ignore\n-        ############################\n-        #if $analysis_type.analysis_type_selector + "Preprocessing" in vars()[\'SL\'][2]\n-            #set $analysisPreprocessing = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Preprocessing"]\n-            #include source=$analysisPreprocessing\n-        #end if\n-        \n-        ############################\n-        ## GATK tool unspecific options\n-        ############################\n-        @GATK_EXEC@\n-        \n-        --analysis_type ${analysis_type.analysis_type_selector}\n-        --reference_sequence    ${ref_file.fields.path}\n-\n-        --log_to_file           ${output_log}\n-\n-        #if $cond_intervals.cond_intervals_enabled\n-            #for $interval in $cond_intervals.intervals:\n-                --intervals ${interval.L}\n-            #end for\n-        #end if\n-\n-        #if $cond_BQSR.cond_BQSR_enabled\n-          --BQSR $cond_BQSR.BQSR\n-        #end if\n-\n-        ############################\n-        ## import analysis specific options by using cheetahs internal searchList\n-        ## if not defined throw raw python error until better idea\n-        ############################\n-        #if $analysis_type.analysis_type_selector + "Options" in vars()[\'SL\'][2]\n-            #set $analysisOptions = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Options"]\n-            #include source=$analysisOptions\n-        #else\n-            #set $analysisOptions = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Options"]\n-        #end if\n-        \n-        ############################\n-        ## only put ERROR or FATAL log messages into stderr\n-        ## but keep full log for printing into log file\n-        ############################\n-        2>&1 | awk \'\\$1 != "INFO" && \\$1 != "WARN"\' >&2\n-]]></command>\n-  <inputs>\n-    <param name="ref_file" type="select" label="Using reference genome" help="-R,\xe2\x80\x91\xe2\x80\x91reference_sequence &amp;lt;reference_sequence&amp;gt;">\n-      <options from_data_table="picard_indexes"/>\n-      <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>\n-    </param>\n-    <conditional name="cond_intervals">\n-      <param name="cond_intervals_enabled" type="boolean" label="Select interval subset to operate on?"/>\n-      <when value="true">\n-        <repeat name="intervals" title="genomic interval over which to operate" help="-L,\xe2\x80\x91\xe2\x80\x91intervals &amp;lt;intervals&amp;gt;">\n-          <param name="L" type="text" value=""/>\n-        </repeat>\n-      </when>\n-      <when value="false"/>\n-    </conditional>\n-    <conditional name="cond_BQSR">\n-      <param name="cond_BQSR_enabled" type="boolean" label="Select covariates for on-the-fly recalibration?"/>\n-      <when '..b'"nct" type="integer" value="1" label="Number of CPU threads to allocate per data thread" help="make sure, the option is available for the chosen tool"/>\n-        <param name="mem" type="integer" value="0" label="Overwrite Memory in MB (0 = don\'t overwrite)" help="Overwrites all other defaults and might lead to crash the run. States mem per data thread"/>\n-      </when>\n-      <when value="false"/>\n-    </conditional>\n-    <conditional name="analysis_type">\n-      <param name="analysis_type_selector" type="select" label="Analysis Type">\n-        <option value="RealignerTargetCreator">RealignerTargetCreator</option>\n-        <option value="IndelRealigner">IndelRealigner</option>\n-        <option value="BaseRecalibrator">BaseRecalibrator</option>\n-        <option value="AnalyzeCovariates">AnalyzeCovariates</option>\n-        <option value="PrintReads">PrintReads</option>\n-        <option value="HaplotypeCaller">HaplotypeCaller</option>\n-        <option value="GenotypeGVCFs">GenotypeGVCFs</option>\n-        <option value="CombineGVCFs">CombineGVCFs</option>\n-        <option value="CombineVariants">CombineVariants</option>\n-      </param>\n-      <when value="RealignerTargetCreator">\n-        <expand macro="RealignerTargetCreatorParameters" tag="rtc"/>\n-      </when>\n-      <when value="IndelRealigner">\n-        <expand macro="IndelRealignerParameters" tag="ir"/>\n-      </when>\n-      <when value="BaseRecalibrator">\n-        <expand macro="BaseRecalibratorParameters" tag="br"/>\n-      </when>\n-      <when value="AnalyzeCovariates">\n-        <expand macro="AnalyzeCovariatesParameters" tag="ac"/>\n-      </when>\n-      <when value="PrintReads">\n-        <expand macro="PrintReadsParameters" tag="pr"/>\n-      </when>\n-      <when value="HaplotypeCaller">\n-        <expand macro="HaplotypeCallerParameters" tag="hc"/>\n-      </when>\n-      <when value="GenotypeGVCFs">\n-        <expand macro="GenotypeGVCFsParameters" tag="gg"/>\n-      </when>\n-      <when value="CombineGVCFs">\n-        <expand macro="CombineGVCFsParameters" tag="cg"/>\n-      </when>\n-      <when value="CombineVariants">\n-        <expand macro="CombineVariantsParameters" tag="cv"/>\n-      </when>\n-    </conditional>\n-  </inputs>\n-  <outputs>\n-    <expand macro="RealignerTargetCreatorOutput" tag="rtc">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'RealignerTargetCreator\'</filter>\n-    </expand>\n-    <expand macro="IndelRealignerOutput" tag="ir">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'IndelRealigner\'</filter>\n-    </expand>\n-    <expand macro="BaseRecalibratorOutput" tag="br">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'BaseRecalibrator\'</filter>\n-    </expand>\n-    <expand macro="AnalyzeCovariatesOutput" tag="ac">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'AnalyzeCovariates\'</filter>\n-    </expand>\n-    <expand macro="PrintReadsOutput" tag="pr">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'PrintReads\'</filter>\n-    </expand>\n-    <expand macro="HaplotypeCallerOutput" tag="hc">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'HaplotypeCaller\'</filter>\n-    </expand>\n-    <expand macro="GenotypeGVCFsOutput" tag="gg">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'GenotypeGVCFs\'</filter>\n-    </expand>\n-    <expand macro="CombineGVCFsOutput" tag="cg">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'CombineGVCFs\'</filter>\n-    </expand>\n-    <expand macro="CombineVariantsOutput" tag="cv">\n-      <filter>analysis_type[\'analysis_type_selector\'] == \'CombineVariants\'</filter>\n-    </expand>\n-    <data format="txt" name="output_log" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (log)"/>\n-  </outputs>\n-  <expand macro="macro_tests"/>\n-  <citations>\n-    <citation type="doi">10.1101/gr.107524.110</citation>\n-    <citation type="doi">10.1038/ng.806</citation>\n-    <citation type="doi">10.1002/0471250953.bi1110s43</citation>\n-  </citations>\n-</tool>\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/gatk_macros.xml
--- a/GATK/gatk/gatk_macros.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,166 +0,0 @@
-<macros>
-
-    <xml name="requirements">
-        <requirements>
-            <requirement type="package">gatk</requirement>
-            <requirement type="set_environment">GATK_PATH</requirement>
-            <requirement type="set_environment">GATK_SITE_OPTIONS</requirement>
-            <requirement type="package" version="3.1.2.1">package_r_for_gatk_3_4_0</requirement>
-        </requirements>
-    </xml>
-
-    <xml name="version_command">
-        <version_command><![CDATA[ @GATK_EXEC@ --help|grep '^The Genome' ]]></version_command>
-    </xml>
-
-    <token name="@VERSION@">3.4-0</token>
-    <token name="@OUTPUT_NAME_PREFIX@">${tool.name} - ${analysis_type.analysis_type_selector}</token>
-    <token name="@GATK_EXEC@">
-<![CDATA[
-        #if $cond_threads.cond_threads_enabled:
-            #if int($cond_threads.nct) > 1:
-                THREAD_STRING="-nct $cond_threads.nct" &&
-            #end if
-            #if int($cond_threads.nt) > 1:
-                THREAD_STRING=$THREAD_STRING" -nt $cond_threads.nt" &&
-            #end if
-            #if int($cond_threads.mem) > 0:
-                GATK_MEM=$cond_threads.mem &&
-            #end if
-        #end if
-        java -Xmx\${GATK_MEM:-\${SLURM_MEM_PER_NODE:-4096}}M -jar "\$GATK_PATH/GenomeAnalysisTK.jar" \${THREAD_STRING:-}
-]]>
-    </token>
-
-    <xml name="macro_vcf_input" tokens="tag">
-        <param name="input" type="data" format="vcf" multiple="true" label="Variant files (VCF format)" help="-V, &#8209;&#8209;variant">
-            <validator type="unspecified_build" />
-            <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build." /> 
-        </param>
-    </xml>
-    <token name="@token_vcf_input_pre@" tokens="tag">
-<![CDATA[
-        ############################
-        ## create links to gVCF input files with correct extensions
-        ############################
-        #for $i, $variant in enumerate($analysis_type.input):
-            ln -s -f ${variant} variant_${i}.vcf &&
-        #end for
-]]>
-    </token>
-    <token name="@token_vcf_input@">
-<![CDATA[
-        #for $i, $variant in enumerate($analysis_type.input):
-            --variant variant_${i}.vcf
-        #end for
-        @token_reference_input@
-]]>
-    </token>
-
-
-    <xml name="macro_gvcf_input" tokens="tag">
-        <param name="input" type="data" format="vcf" multiple="true" label="Variant files (gVCF format)" help="-V, &#8209;&#8209;variant">
-            <validator type="unspecified_build" />
-            <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build." /> 
-        </param>
-    </xml>
-    <token name="@token_gvcf_input_pre@" tokens="tag">
-<![CDATA[
-        ############################
-        ## create links to gVCF input files with correct extensions
-        ############################
-        #for $i, $variant in enumerate($analysis_type.input):
-            ln -s -f ${variant} variant_${i}.g.vcf &&
-        #end for
-]]>
-    </token>
-    <token name="@token_gvcf_input@">
-<![CDATA[
-        #for $i, $variant in enumerate($analysis_type.input):
-            --variant variant_${i}.g.vcf
-        #end for
-        @token_reference_input@
-]]>
-    </token>
-
-    <xml name="macro_bam_input">
-        <conditional name="cond_bam_input">
-            <param name="all_in_one" type="boolean" value="false" label="Input all BAM files in a single command" />
-            <when value="true">
-                <param name="input" type="data" format="bam" multiple="true" label="Input file containing sequence data (BAM)" help="-I, ‑‑input_file">
-                    <validator type="unspecified_build"/>
-                    <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build."/>
-                </param>
-            </when>
-            <when value="false">
-                <param name="input" type="data" format="bam" label="Input file containing sequence data (BAM)" help="-I, ‑‑input_file">
-                    <validator type="unspecified_build"/>
-                    <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build."/>
-                </param>
-            </when>
-        </conditional>
-    </xml>
-    <token name="@token_bam_input_pre@">
-<![CDATA[
-        ############################
-        ## create links to bam input files with correct extensions
-        ############################
-        #if $analysis_type.cond_bam_input.all_in_one
-            #for $i, $bam in enumerate($analysis_type.cond_bam_input.input):
-                ln -s -f ${bam} input_${i}.bam &&
-                ln -s -f ${bam.metadata.bam_index} input_${i}.bam.bai &&
-            #end for
-        #else
-            ln -s -f ${analysis_type.cond_bam_input.input} input.bam &&
-            ln -s -f ${analysis_type.cond_bam_input.input.metadata.bam_index} input.bam.bai &&
-        #end if
-]]>
-    </token>
-    <token name="@token_bam_input@">
-<![CDATA[
-        #if $analysis_type.cond_bam_input.all_in_one
-            #for $i, $bam in enumerate($analysis_type.cond_bam_input.input):
-                --input_file input_${i}.bam
-            #end for
-        #else
-            --input_file            input.bam
-        #end if
-        @token_reference_input@
-]]>
-    </token>
-
-    <token name="@token_reference_input@">
-<![CDATA[
-]]>
-    </token>
-    <xml name="macro_input" tokens="tag">
-        <yield />
-    </xml>
-
-    <xml name="macro_optional_parameters">
-        <conditional name="optional_parameters">
-            <param name="optional_parameters_enabled" type="boolean" label="Configure Optional Parameters" />
-            <when value="true">
-                <yield />
-            </when>
-            <when value="false" />
-        </conditional>
-    </xml>
-
-    <xml name="macro_advanced_parameters">
-        <conditional name="advanced_parameters">
-            <param name="advanced_parameters_enabled" type="boolean" label="Configure Advanced Parameters" />
-            <when value="true">
-                <yield />
-            </when>
-            <when value="false" />
-        </conditional>
-    </xml>
-
-    <xml name="macro_tests">
-        <tests>
-            
-        </tests>
-    </xml>
-
-</macros>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/generation/gatk.xsl
--- a/GATK/gatk/generation/gatk.xsl Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output
-    method="xml"
-    encoding="utf-8"
-    indent="yes"
-    cdata-section-elements="script style" />
-
-<xsl:template match="/">
-
-<tool id="gatk" name="GATK" version="@VERSION@.d9">
-    <description>tool collection Version @VERSION@</description>
-
-    <macros>
-        <import>gatk_macros.xml</import>
-        <xsl:for-each select="analyses/analysis">
-        <import><xsl:value-of select="macro_file" /></import>
-        </xsl:for-each>
-    </macros>
-
-    <expand macro="requirements" />
-
-    <stdio>
-        <regex match="^INFO" level="log" />
-        <regex match="^WARN" level="warning" />
-        <regex match="Using .* implementation of PairHMM" level="warning" />
-        <regex match="There is insufficient memory for the Java Runtime Environment to continue" level="fatal" />
-        <regex match="^##### ERROR" level="fatal" />
-        <exit_code range="1:" level="fatal"/>
-    </stdio>
-
-    <command>
-<xsl:text disable-output-escaping="yes">&lt;![CDATA[
-        ############################
-        ## import analysis specific preprocessings by using cheetahs internal searchList
-        ## if not defined, ignore
-        ############################
-        #if $analysis_type.analysis_type_selector + "Preprocessing" in vars()['SL'][2]
-            #set $analysisPreprocessing = vars()['SL'][2][$analysis_type.analysis_type_selector + "Preprocessing"]
-            #include source=$analysisPreprocessing
-        #end if
-        
-        ############################
-        ## GATK tool unspecific options
-        ############################
-        @GATK_EXEC@
-        
-        --analysis_type ${analysis_type.analysis_type_selector}
-        --reference_sequence    ${ref_file.fields.path}
-
-        --log_to_file           ${output_log}
-
-        #if $cond_intervals.cond_intervals_enabled
-            #for $interval in $cond_intervals.intervals:
-                --intervals ${interval.L}
-            #end for
-        #end if
-
-        #if $cond_BQSR.cond_BQSR_enabled
-          --BQSR $cond_BQSR.BQSR
-        #end if
-
-        ############################
-        ## import analysis specific options by using cheetahs internal searchList
-        ## if not defined throw raw python error until better idea
-        ############################
-        #if $analysis_type.analysis_type_selector + "Options" in vars()['SL'][2]
-            #set $analysisOptions = vars()['SL'][2][$analysis_type.analysis_type_selector + "Options"]
-            #include source=$analysisOptions
-        #else
-            #set $analysisOptions = vars()['SL'][2][$analysis_type.analysis_type_selector + "Options"]
-        #end if
-        
-        ############################
-        ## only put ERROR or FATAL log messages into stderr
-        ## but keep full log for printing into log file
-        ############################
-        2>&amp;1 | awk '\$1 != "INFO" &amp;&amp; \$1 != "WARN"' >&amp;2
-]]&gt;</xsl:text>
-    </command>
-
-    <inputs>
-
-        <param name="ref_file" type="select" label="Using reference genome" help="-R,&#8209;&#8209;reference_sequence &amp;lt;reference_sequence&amp;gt;" >
-            <options from_data_table="picard_indexes">
-                <!--filter type="data_meta" key="dbkey" ref="@TAG@_input" column="dbkey" /-->
-            </options>
-            <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
-        </param>
-
-        <conditional name="cond_intervals">
-            <param name="cond_intervals_enabled" type="boolean" label="Select interval subset to operate on?" />
-            <when value="true">
-                <repeat name="intervals" title="genomic interval over which to operate" help="-L,&#8209;&#8209;intervals &amp;lt;intervals&amp;gt;">
-                    <param name="L" type="text" value="" />
-                </repeat>
-            </when>
-            <when value="false" />
-        </conditional>
-
-        <conditional name="cond_BQSR">
-            <param name="cond_BQSR_enabled" type="boolean" label="Select covariates for on-the-fly recalibration?" />
-            <when value="true">
-                <param name="BQSR" type="data" format="tabular" label="Input covariates table file for on-the-fly base quality score recalibration" help="-BQSR,&#8209;&#8209;BQSR &amp;lt;BQSR&amp;gt; intended primarily for use with BaseRecalibrator and PrintReads" />
-            </when>
-            <when value="false" />
-        </conditional>
-
-        <conditional name="cond_threads">
-            <param name="cond_threads_enabled" type="boolean" label="Set computational options (cpu, mem)?" />
-            <when value="true">
-                <param name="nt" type="integer" value="1" label="Number of data threads to allocate to this analysis" help="make sure, the option is available for the chosen tool" />
-                <param name="nct" type="integer" value="1" label="Number of CPU threads to allocate per data thread" help="make sure, the option is available for the chosen tool" />
-                <param name="mem" type="integer" value="0" label="Overwrite Memory in MB (0 = don't overwrite)" help="Overwrites all other defaults and might lead to crash the run. States mem per data thread" />
-            </when>
-            <when value="false" />
-        </conditional>
-
-        <conditional name="analysis_type">
-            <param name="analysis_type_selector" type="select" label="Analysis Type">
-                <xsl:for-each select="analyses/analysis">
-                <option value="{name}"><xsl:value-of select="name" /></option>
-                </xsl:for-each>
-            </param>
-            <xsl:for-each select="analyses/analysis">
-            <when value="{name}">
-                <!--xsl:choose>
-                    <xsl:when test="input_type = 'bam'">
-                        <expand macro="macro_bam_input" tag="{tag}" />
-                    </xsl:when>
-                    <xsl:when test="input_type = 'gvcf'">
-                        <expand macro="macro_gvcf_input" tag="{tag}" />
-                    </xsl:when>
-                </xsl:choose-->
-                <expand macro="{name}Parameters" tag="{tag}" />
-            </when>
-            </xsl:for-each>
-        </conditional>
-    </inputs>
-
-    <outputs>
-        <xsl:for-each select="analyses/analysis">
-        <expand macro="{name}Output" tag="{tag}">
-            <filter>analysis_type['analysis_type_selector'] == '<xsl:value-of select="name" />'</filter>
-        </expand>
-        </xsl:for-each>
-        <data format="txt" name="output_log" label="${{tool.name}} - ${{analysis_type.analysis_type_selector}} on ${{on_string}} (log)" />
-    </outputs>
-
-    <expand macro="macro_tests" />
-
-    <citations>
-        <citation type="doi">10.1101/gr.107524.110</citation>
-        <citation type="doi">10.1038/ng.806</citation>
-        <citation type="doi">10.1002/0471250953.bi1110s43</citation>
-    </citations>
-</tool>
-
-</xsl:template>
-</xsl:stylesheet>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/generation/gatk.xsldb.xml
--- a/GATK/gatk/generation/gatk.xsldb.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<analyses>
-    <analysis>
-     <name>RealignerTargetCreator</name>
-     <input_type>bam</input_type>
-     <tag>rtc</tag>
-     <macro_file>realigner_target_creator.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>IndelRealigner</name>
-     <input_type>bam</input_type>
-     <tag>ir</tag>
-     <macro_file>indel_realigner.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>BaseRecalibrator</name>
-     <input_type>bam</input_type>
-     <tag>br</tag>
-     <macro_file>base_recalibrator.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>AnalyzeCovariates</name>
-     <input_type>bam</input_type>
-     <tag>ac</tag>
-     <macro_file>analyze_covariates.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>PrintReads</name>
-     <input_type>bam</input_type>
-     <tag>pr</tag>
-     <macro_file>print_reads.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>HaplotypeCaller</name>
-     <input_type>bam</input_type>
-     <tag>hc</tag>
-     <macro_file>haplotype_caller.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>GenotypeGVCFs</name>
-     <input_type>gvcf</input_type>
-     <tag>gg</tag>
-     <macro_file>genotype_gvcfs.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>CombineGVCFs</name>
-     <input_type>gvcf</input_type>
-     <tag>cg</tag>
-     <macro_file>combine_gvcfs.xml</macro_file>
-    </analysis>
-    <analysis>
-     <name>CombineVariants</name>
-     <input_type>vcf</input_type>
-     <tag>cv</tag>
-     <macro_file>combine_variants.xml</macro_file>
-    </analysis>
-</analyses>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/genotype_gvcfs.xml
--- a/GATK/gatk/genotype_gvcfs.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,43 +0,0 @@
-<macros>
-    <xml name="GenotypeGVCFsParameters" tokens="tag">
-        
-        <expand macro="macro_gvcf_input" tag="@TAG@" />
-
-        <expand macro="macro_optional_parameters">
-
-
-            <param name="sample_ploidy" type="integer" value="2" label="Ploidy (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy)" help="-ploidy,&#8209;&#8209;sample_ploidy &amp;lt;sample_ploidy&amp;gt;" />
-
-        </expand>
-
-    </xml>
-
-    <xml name="GenotypeGVCFsOutput">
-        <data format="vcf" name="gg_output_gvcf" from_work_dir="output.g.vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (gVCF)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="GenotypeGVCFsPreprocessing">
-<![CDATA[
-        @token_gvcf_input_pre@
-]]>
-    </template>
-
-    <template name="GenotypeGVCFsOptions">
-<![CDATA[
-        --out output.g.vcf
-
-        @token_gvcf_input@
-
-        #set $optionals = $analysis_type.optional_parameters
-        #if $optionals.optional_parameters_enabled
-            --sample_ploidy $optionals.sample_ploidy
-        #end if
-]]>
-    </template>
-
-
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/haplotype_caller.xml
--- a/GATK/gatk/haplotype_caller.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,65 +0,0 @@
-<macros>
-    <xml name="HaplotypeCallerParameters" tokens="tag">
-        
-        <expand macro="macro_bam_input" tag="@TAG@" />
-
-        <conditional name="cond_usage">
-            <param name="cond_usage_selector" type="select" label="Select usage">
-                <option value="GVCF">Single-sample all-sites calling on DNAseq (GVCF mode)</option>
-            </param>
-            <when value="GVCF">
-                <expand macro="HaplotypeCallerGVCF" />
-            </when>
-        </conditional>
-
-        <expand macro="macro_optional_parameters">
-
-            <param name="sample_ploidy" type="integer" value="2" label="Ploidy (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy)" help="-ploidy,&#8209;&#8209;sample_ploidy &amp;lt;sample_ploidy&amp;gt;" />
-
-        </expand>
-
-    </xml>
-
-    <xml name="HaplotypeCallerOutput">
-        <data format="vcf" name="hc_output_gvcf" from_work_dir="output.g.vcf" label="${tool.name} on ${on_string} (gVCF)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="HaplotypeCallerPreprocessing">
-<![CDATA[
-        @token_bam_input_pre@
-]]>
-    </template>
-
-    <template name="HaplotypeCallerOptions">
-<![CDATA[
-        --out output.g.vcf
-
-        @token_bam_input@
-
-        #set $optionals = $analysis_type.optional_parameters
-        #if $optionals.optional_parameters_enabled
-            --sample_ploidy $optionals.sample_ploidy
-        #end if
-
-        #set $usage_selector = $analysis_type.cond_usage.cond_usage_selector
-        #set $usage = $analysis_type.cond_usage
-
-        #if str($usage_selector) == 'GVCF'
-            --emitRefConfidence "GVCF"
-        #end if
-]]>
-    </template>
-
-
-
-    <xml name="HaplotypeCallerGVCF">
-        <param name="emitRefConfidence" type="select" optional="true" label="Mode for emitting reference confidence scores" help="-ERC,‑‑emitRefConfidence &amp;lt;emitRefConfidence&amp;gt;">
-              <option value="GVCF">GVCF (Reference model emitted with condensed non-variant blocks)</option>
-        </param>
-    </xml>
-
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/indel_realigner.xml
--- a/GATK/gatk/indel_realigner.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,90 +0,0 @@
-<macros>
-    <xml name="IndelRealignerParameters" tokens="tag">
-        
-        <expand macro="macro_bam_input" tag="@TAG@" />
-
-        <param name="targetIntervals" type="data" format="gatk_interval" label="Intervals file output from RealignerTargetCreator" help="-targetIntervals,--targetIntervals &amp;lt;targetIntervals&amp;gt;" />
-
-        <expand macro="macro_optional_parameters">
-            <repeat name="knownAlleles" title="Input VCF file(s) with known indels" help="-known,&#8209;&#8209;knownAlleles &amp;lt;knownAlleles&amp;gt;">
-                <param name="knownAllele" type="data" format="vcf" label="Variant file (VCF format)" />
-            </repeat>
-            
-            <param name="consensusDeterminationModel" type="select" label="minimum reads at a locus to enable using the entropy calculation" help="-model,&#8209;&#8209;consensusDeterminationModel &amp;lt;consensusDeterminationModel&amp;gt;">
-                <option value="USE_READS">USE_READS - Additionally uses indels already present in the original alignments of the reads</option>
-                <option value="KNOWNS_ONLY">KNOWNS_ONLYS - Uses only indels from a provided ROD of known indels</option>
-                <option value="USE_SW">USE_SW - Additionally uses 'Smith-Waterman' to generate alternate consenses</option>
-            </param>
-            <param name="LODThresholdForCleaning" type="float" value="5.0" label="LOD threshold above which the cleaner will clean" help="-LOD,&#8209;&#8209;LODThresholdForCleaning &amp;lt;LODThresholdForCleaning&amp;gt;" />
-            <!--param name="nWayOut" type="float" value="5.0" label="Generate one output file for each input (-I) bam file (not compatible with -output)" help="-nWayOut,&#45;&#45;nWayOut &amp;lt;nWayOut&amp;gt;" /-->
-        </expand>
-
-
-        <expand macro="macro_advanced_parameters">
-            <param name="entropyThreshold" type="float" value="0.15" label="Percentage of mismatches at a locus to be considered having high entropy (0.0 &lt; entropy &lt;= 1.0)" help="-entropy,&#8209;&#8209;entropyThreshold &amp;lt;entropyThreshold&amp;gt;" />
-
-            <param name="maxConsensuses" type="integer" value="30" label="Max alternate consensuses to try (necessary to improve performance in deep coverage)" help="-maxConsensuses,&#8209;&#8209;maxConsensuses &amp;lt;maxConsensuses&amp;gt;" />
-
-            <param name="maxIsizeForMovement" type="integer" value="3000" label="maximum insert size of read pairs that we attempt to realign" help="-maxIsize,&#8209;&#8209;maxIsizeForMovement &amp;lt;maxIsizeForMovement&amp;gt;" />
-
-            <param name="maxPositionalMoveAllowed" type="integer" value="200" label="Maximum positional move in basepairs that a read can be adjusted during realignment" help="-maxPosMove,&#8209;&#8209;maxPositionalMoveAllowed &amp;lt;maxPositionalMoveAllowed&amp;gt;" />
-
-            <param name="maxReadsForConsensuses" type="integer" value="120" label="Max reads used for finding the alternate consensuses (necessary to improve performance in deep coverage)" help="-greedy,&#8209;&#8209;maxReadsForConsensuses &amp;lt;maxReadsForConsensuses&amp;gt;" />
-
-            <param name="maxReadsForRealignment" type="integer" value="20000" label="Max reads allowed at an interval for realignment" help="-maxReads,&#8209;&#8209;maxReadsForRealignment &amp;lt;maxReadsForRealignment&amp;gt;" />
-
-            <param name="maxReadsInMemory" type="integer" value="150000" label="max reads allowed to be kept in memory at a time by the SAMFileWriter" help="-maxInMemory,&#8209;&#8209;maxReadsInMemory &amp;lt;maxReadsInMemory&amp;gt;" />
-
-            <param name="noOriginalAlignmentTags" type="boolean" truevalue="--noOriginalAlignmentTags" falsevalue="" label="Don't output the original cigar or alignment start tags for each realigned read in the output bam" help="-noTags,&#8209;&#8209;noOriginalAlignmentTags" />
-        </expand>
-
-    </xml>
-
-    <xml name="IndelRealignerOutput">
-        <data format="bam" name="ir_output_bam" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (BAM)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="IndelRealignerPreprocessing">
-<![CDATA[
-        @token_bam_input_pre@
-
-        ln -s -f ${analysis_type.targetIntervals} target.intervals &&
-
-        #if $analysis_type.optional_parameters.optional_parameters_enabled
-            #for $i, $knownAllele in enumerate($analysis_type.optional_parameters.knownAlleles):
-                ln -s -f ${knownAllele.knownAllele} knownAllele_${i}.vcf &&
-            #end for
-        #end if
-]]>
-    </template>
-
-    <template name="IndelRealignerOptions">
-<![CDATA[
-        --out                   ${ir_output_bam}
-
-        @token_bam_input@
-        --targetIntervals       target.intervals
-
-        #if $analysis_type.optional_parameters.optional_parameters_enabled
-            #for $i, $knownAllele in enumerate($analysis_type.optional_parameters.knownAlleles):
-                --knownAlleles knownAllele_${i}.vcf
-            #end for
-            --consensusDeterminationModel       ${analysis_type.consensusDeterminationModel}
-            --LODThresholdForCleaning           ${analysis_type.LODThresholdForCleaning}
-        #end if
-
-        #if $analysis_type.advanced_parameters.advanced_parameters_enabled
-            --entropyThreshold          ${analysis_type.advanced_parameters.entropyThreshold}
-            --maxConsensuses            ${analysis_type.advanced_parameters.maxConsensuses}
-            --maxIsizeForMovement       ${analysis_type.advanced_parameters.maxIsizeForMovement}
-            --maxPositionalMoveAllowed  ${analysis_type.advanced_parameters.maxPositionalMoveAllowed}
-            --maxReadsForConsensuses    ${analysis_type.advanced_parameters.maxReadsForConsensuses}
-            --maxReadsForRealignment    ${analysis_type.advanced_parameters.maxReadsForRealignment}
-            --maxReadsInMemory          ${analysis_type.advanced_parameters.maxReadsInMemory}
-            ${analysis_type.advanced_parameters.noOriginalAlignmentTags}
-        #end if
-]]>
-    </template>
-</macros>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/print_reads.xml
--- a/GATK/gatk/print_reads.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,71 +0,0 @@
-<macros>
-    <xml name="PrintReadsParameters" tokens="tag">
-        
-        <expand macro="macro_bam_input" tag="@TAG@" />
-
-        <!-- BQSR in main config -->
-
-        <expand macro="macro_optional_parameters">
-
-            <param name="number" type="integer" value="" optional="true" label="Print the first n reads from the file, discarding the rest" help="-n,&#8209;&#8209;number &amp;lt;number&amp;gt;" />
-
-            <param name="platform" type="text" value="" optional="true" label="Exclude all reads with this platform from the output" help="-platform,&#8209;&#8209;platform &amp;lt;platform&amp;gt;" />
-
-            <param name="readGroup" type="text" value="" optional="true" label="Exclude all reads with this read group from the output" help="-readGroup,&#8209;&#8209;readGroup &amp;lt;readGroup&amp;gt;" />
-
-            <param name="sample_file" type="data" format="txt" optional="true" label="File containing a list of samples (one per line). Can be specified multiple times" help="-sf,&#8209;&#8209;sample_file &amp;lt;sample_file&amp;gt;" />
-
-            <repeat name="sample_names" title="Sample names to be included in the analysis" help="-sn,‑‑sample_name &amp;lt;sample_name&amp;gt;">
-                <param name="sample_name" type="text" value="" title="Sample name to be included in the analysis" />
-            </repeat>
-            
-            <param name="simplify" type="text" truevalue="-s" falsevalue="" label="Erase all extra attributes in the read but keep the read group information" help="-s,&#8209;&#8209;simplify" />
-
-        </expand>
-
-    </xml>
-
-    <xml name="PrintReadsOutput">
-        <data format="bam" name="pr_output_bam" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (BAM)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="PrintReadsPreprocessing">
-<![CDATA[
-        @token_bam_input_pre@
-]]>
-    </template>
-
-    <template name="PrintReadsOptions">
-<![CDATA[
-        --out                   ${pr_output_bam}
-
-        @token_bam_input@
-
-        #set $optionals = $analysis_type.optional_parameters
-        #if $optionals.optional_parameters_enabled
-            #if int($optionals.number) > 0
-                --number $optionals.number
-            #end if
-            #if str($optionals.platform)
-                --platform $optionals.platform
-            #end if
-            #if str($optionals.readGroup)
-                --readGroup $optionals.readGroup
-            #end if
-            #if $optionals.sample_file
-                --sample_file $optionals.sample_file
-            #end if
-            #if $optionals.sample_names
-                #for $sample in $optionals.sample_names:
-                    --intervals ${sample.sample_name}
-                #end for
-            #end if
-            $optionals.simplify
-        #end if
-]]>
-    </template>
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/realigner_target_creator.xml
--- a/GATK/gatk/realigner_target_creator.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,57 +0,0 @@
-<macros>
-    <xml name="RealignerTargetCreatorParameters" tokens="tag">
-        
-        <expand macro="macro_bam_input" tag="@TAG@" />
-
-        <expand macro="macro_optional_parameters">
-            <param name="maxIntervalSize" type="integer" value="500" label="maximum interval size; any intervals larger than this value will be dropped" help="-maxInterval,&#8209;&#8209;maxIntervalSize &amp;lt;maxIntervalSize&amp;gt;" />
-            <param name="minReadsAtLocus" type="integer" value="4" label="minimum reads at a locus to enable using the entropy calculation" help="-minReads,&#8209;&#8209;minReadsAtLocus &amp;lt;minReadsAtLocus&amp;gt;" />
-            <param name="windowSize" type="integer" value="10" label="window size for calculating entropy or SNP clusters" help="-window,&#8209;&#8209;windowSize &amp;lt;windowSize&amp;gt;" />
-
-            <param name="mismatchFraction" type="float" value="0.0" label="fraction of base qualities needing to mismatch for a position to have high entropy" help="-mismatch,&#8209;&#8209;mismatchFraction &amp;lt;mismatchFraction&amp;gt;" />
-            <repeat name="rod_bindings" title="Input VCF files with known indels" help="-known,&#8209;&#8209;known &amp;lt;known&amp;gt;">
-                <param name="input_rod" type="data" format="vcf" label="Variant file (VCF format)" />
-            </repeat>
-        </expand>
-        
-    </xml>
-
-    <xml name="RealignerTargetCreatorOutput">
-        <data format="gatk_interval" name="rtc_output_intervals" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (GATK intervals)">
-            <yield />
-        </data>
-    </xml>
-
-    <template name="RealignerTargetCreatorPreprocessing">
-<![CDATA[
-        @token_bam_input_pre@
-
-        #if $analysis_type.optional_parameters.optional_parameters_enabled
-            #for $i, $rod_binding in enumerate($analysis_type.optional_parameters.rod_bindings):
-                ln -s -f ${rod_binding.input_rod} rod_binding_${i}.vcf &&
-            #end for
-        #end if
-]]>
-    </template>
-
-    <template name="RealignerTargetCreatorOptions">
-<![CDATA[
-        --out                   ${rtc_output_intervals}
-
-        @token_bam_input@
-
-        #if $analysis_type.optional_parameters.optional_parameters_enabled
-            --maxIntervalSize       ${analysis_type.optional_parameters.maxIntervalSize}
-            --minReadsAtLocus       ${analysis_type.optional_parameters.minReadsAtLocus}
-            --windowSize            ${analysis_type.optional_parameters.windowSize}
-            --mismatchFraction      ${analysis_type.optional_parameters.mismatchFraction}
-
-            #for $i, $rod_binding in enumerate($analysis_type.optional_parameters.rod_bindings):
-                --known rod_binding_${i}.vcf
-            #end for
-        #end if
-]]>
-    </template>
-</macros>
-
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/tool-data/destinations.py
--- a/GATK/gatk/tool-data/destinations.py Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
[
@@ -1,62 +0,0 @@
-from galaxy.jobs import JobDestination
-import os
-import sys
-import json
-import cStringIO
-import logging
-
-log = logging.getLogger( __name__ )
-
-
-def dump(obj, nested_level=0, output=sys.stdout):
-    spacing = '   '
-    if type(obj) == dict:
-        print >> output, '%s{' % ((nested_level) * spacing)
-        for k, v in obj.items():
-            if hasattr(v, '__iter__'):
-                print >> output, '%s%s:' % ((nested_level + 1) * spacing, k)
-                dump(v, nested_level + 1, output)
-            else:
-                print >> output, '%s%s: %s' % ((nested_level + 1) * spacing, k, v)
-        print >> output, '%s}' % (nested_level * spacing)
-    elif type(obj) == list:
-        print >> output, '%s[' % ((nested_level) * spacing)
-        for v in obj:
-            if hasattr(v, '__iter__'):
-                dump(v, nested_level + 1, output)
-            else:
-                print >> output, '%s%s' % ((nested_level + 1) * spacing, v)
-        print >> output, '%s]' % ((nested_level) * spacing)
-    else:
-        print >> output, '%s%s' % (nested_level * spacing, obj)
-
-
-def dynamic_slurm_cluster_gatk(job, tool_id):
-    # Allocate extra time
-    inp_data = dict( [ ( da.name, da.dataset ) for da in job.input_datasets ] )
-    inp_data.update( [ ( da.name, da.dataset ) for da in job.input_library_datasets ] )
-    inp_data.update( [ ( da.name, json.loads(da.value) ) for da in job.parameters ] )
-    out = cStringIO.StringIO()
-    dump(inp_data, 1, out)
-    log.debug(out.getvalue())
-    
-    nativeSpecs = '--nodes=1 --ntasks=1'
-    
-    # runner doesn't allow to specify --cpus-per-task
-    # thus the mem calculation gets messy with more than 1 node
-    # --> translate nt ==> nodes, nct ==> ntasks
-    
-    if 'cond_threads' not in inp_data:
-        return JobDestination(runner="slurm")
-    
-    if inp_data['cond_threads']['cond_threads_enabled'] == "True":
-        nNodes = int(inp_data['cond_threads']['nt'])
-        nCPU   = int(inp_data['cond_threads']['nct'])
-        nMEM   = int(inp_data['cond_threads']['mem'])
-        if nMEM > 0:
-            nativeSpecs = '--nodes=%d --ntasks=%d --mem=%d' % (nNodes, nCPU*nNodes, nMEM)
-        else:
-            nativeSpecs = '--nodes=%d --ntasks=%d' % (nNodes, nCPU*nNodes)
-        
-    return JobDestination(runner="slurm", params={"nativeSpecification": nativeSpecs})
-
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/tool-data/picard_index.loc.sample
--- a/GATK/gatk/tool-data/picard_index.loc.sample Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,26 +0,0 @@
-#This is a sample file distributed with Galaxy that enables tools
-#to use a directory of Picard dict and associated files. You will need
-#to create these data files and then create a picard_index.loc file 
-#similar to this one (store it in this directory) that points to 
-#the directories in which those files are stored. The picard_index.loc 
-#file has this format (longer white space is the TAB character):
-#
-#<unique_build_id> <dbkey> <display_name> <fasta_file_path>
-#
-#So, for example, if you had hg18 indexed and stored in 
-#/depot/data2/galaxy/srma/hg18/,
-#then the srma_index.loc entry would look like this:
-#
-#hg18 hg18 hg18 Pretty /depot/data2/galaxy/picard/hg18/hg18.fa
-#
-#and your /depot/data2/galaxy/srma/hg18/ directory
-#would contain the following three files:
-#hg18.fa
-#hg18.dict
-#hg18.fa.fai
-#
-#The dictionary file for each reference (ex. hg18.dict) must be 
-#created via Picard (http://picard.sourceforge.net). Note that
-#the dict file does not have the .fa extension although the
-#path list in the loc file does include it.
-#
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/tool_data_table_conf.xml.sample
--- a/GATK/gatk/tool_data_table_conf.xml.sample Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,7 +0,0 @@
-<tables>
-    <!-- Location of Picard dict files valid for GATK -->
-    <table name="picard_indexes" comment_char="#">
-        <columns>value, dbkey, name, path</columns>
-        <file path="tool-data/picard_index.loc" />
-    </table>
-</tables>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/gatk/tool_dependencies.xml
--- a/GATK/gatk/tool_dependencies.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <set_environment version="1.0">
-        <environment_variable action="set_to" name="GATK_PATH">/mnt/galaxy/tools/GATK/3.4-0</environment_variable>
-    </set_environment>
-    <!--
-    Use GATK_SITE_OPTIONS to set additional parameters that should be inserted in every GATK call.
-    The intended use case was to prohibit GATK to collect and send data.
-    For example:
-
-    -et "NO_ET" -K "/data/gatk_key_file" ##ET no phone home
-    -->
-    <set_environment version="1.0">
-        <environment_variable action="set_to" name="GATK_SITE_OPTIONS"> </environment_variable>
-    </set_environment>
-    <package name="package_r_for_gatk_3_4_0" version="3.1.2.1">
-        <repository changeset_revision="49c62e9b71ad" name="package_r_for_gatk_3_4_0" owner="avowinkel" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/package_picard_1_135/tool_dependencies.xml
--- a/GATK/package_picard_1_135/tool_dependencies.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="picard" version="1.135">
-        <install version="1.0">
-            <actions_group>
-                <actions architecture="x86_64" os="linux">
-                    <action type="download_by_url">https://github.com/broadinstitute/picard/releases/download/1.135/picard-tools-1.135.zip</action>
-                    <action type="move_directory_files">
-                        <source_directory>.</source_directory>
-                        <destination_directory>$INSTALL_DIR</destination_directory>
-                    </action>       
-                </actions>                
-                <action type="set_environment">
-                    <environment_variable name="JAVA_JAR_PATH" action="set_to">$INSTALL_DIR</environment_variable>
-                </action>
-            </actions_group>
-        </install>
-        <readme>
-This picard package dependency is retrieved directly from https://github.com/broadinstitute/picard/releases
-        </readme>
-    </package>
-</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 GATK/package_r_for_gatk_3_4_0/tool_dependencies.xml
--- a/GATK/package_r_for_gatk_3_4_0/tool_dependencies.xml Thu Sep 12 06:50:21 2019 -0400
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="R" version="3.1.2">
-        <repository changeset_revision="9f2fddb9d6e2" name="package_r_3_1_2" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="package_r_for_gatk_3_4_0" version="3.1.2.1">
-        <install version="1.0">
-            <actions>
-                <action type="setup_r_environment">
-
-                    <repository changeset_revision="9f2fddb9d6e2" name="package_r_3_1_2" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu">
-                        <package name="R" version="3.1.2" />
-                    </repository>
-                    <package>https://github.com/cran/stringi/archive/0.5-5.tar.gz</package>
-                    <package>https://github.com/cran/magrittr/archive/1.5.tar.gz</package>
-                    <package>https://github.com/cran/stringr/archive/1.0.0.tar.gz</package>
-                    <package>https://github.com/cran/RColorBrewer/archive/1.1-2.tar.gz</package>
-                    <package>https://github.com/cran/dichromat/archive/2.0-0.tar.gz</package>
-                    <package>https://github.com/cran/colorspace/archive/1.2-6.tar.gz</package>
-                    <package>https://github.com/cran/munsell/archive/0.4.2.tar.gz</package>
-                    <package>https://github.com/cran/labeling/archive/0.3.tar.gz</package>
-                    <package>https://github.com/cran/Rcpp/archive/0.11.6.tar.gz</package>
-                    <package>https://github.com/cran/digest/archive/0.6.8.tar.gz</package>
-                    <package>https://github.com/cran/gtable/archive/0.1.2.tar.gz</package>
-                    <package>https://github.com/cran/bitops/archive/1.0-6.tar.gz</package>
-                    <package>https://github.com/cran/caTools/archive/1.17.1.tar.gz</package>
-                    <package>https://github.com/cran/gtools/archive/3.5.0.tar.gz</package>
-                    <package>https://github.com/cran/gdata/archive/2.17.0.tar.gz</package>
-                    <package>https://github.com/cran/gsalib/archive/2.1.tar.gz</package>
-                    <package>https://github.com/cran/gplots/archive/2.17.0.tar.gz</package>
-                    <package>https://github.com/cran/plyr/archive/1.8.3.tar.gz</package>
-                    <package>https://github.com/cran/reshape/archive/0.8.5.tar.gz</package>
-                    <package>https://github.com/cran/reshape2/archive/1.4.1.tar.gz</package>
-                    <package>https://github.com/cran/scales/archive/0.2.5.tar.gz</package>
-                    <package>https://github.com/cran/proto/archive/0.3-10.tar.gz</package>
-                    <package>https://github.com/cran/MASS/archive/7.3-43.tar.gz</package>
-                    <package>https://github.com/cran/ggplot2/archive/1.0.1.tar.gz</package>
-                </action>
-            </actions>
-        </install>
-        <readme>
-            ggplot2 is a plotting system for R, based on the grammar of graphics, which tries to take the good parts of base and lattice graphics and none of the bad parts.
-            It takes care of many of the fiddly details that make plotting a hassle (like drawing legends) as well as providing a powerful model of graphics that makes it easy to produce complex multi-layered graphics.
-
-            http://ggplot2.org/
-        </readme>
-    </package>
-</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/Haplotypecaller.ga
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/Haplotypecaller.ga Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,101 @@
+{
+    "a_galaxy_workflow": "true", 
+    "annotation": "Haplotypecaller workflow.", 
+    "format-version": "0.1", 
+    "name": "Haplotypecaller", 
+    "steps": {
+        "0": {
+            "annotation": "", 
+            "id": 0, 
+            "input_connections": {}, 
+            "inputs": [
+                {
+                    "description": "", 
+                    "name": "Input Dataset"
+                }
+            ], 
+            "label": null, 
+            "name": "Input dataset", 
+            "outputs": [], 
+            "position": {
+                "left": 198, 
+                "top": 208.1666717529297
+            }, 
+            "tool_errors": null, 
+            "tool_id": null, 
+            "tool_state": "{\"name\": \"Input Dataset\"}", 
+            "tool_version": null, 
+            "type": "data_input", 
+            "user_outputs": [], 
+            "uuid": "b9fb671f-f07f-498c-8c85-619987501313"
+        }, 
+        "1": {
+            "annotation": "", 
+            "id": 1, 
+            "input_connections": {
+                "analysis_type|cond_bam_input|input": {
+                    "id": 0, 
+                    "output_name": "output"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "GATK", 
+            "outputs": [
+                {
+                    "name": "rtc_output_intervals", 
+                    "type": "gatk_interval"
+                }, 
+                {
+                    "name": "ir_output_bam", 
+                    "type": "bam"
+                }, 
+                {
+                    "name": "br_table", 
+                    "type": "tabular"
+                }, 
+                {
+                    "name": "ac_plotsReportFile", 
+                    "type": "pdf"
+                }, 
+                {
+                    "name": "pr_output_bam", 
+                    "type": "bam"
+                }, 
+                {
+                    "name": "hc_output_gvcf", 
+                    "type": "vcf"
+                }, 
+                {
+                    "name": "gg_output_gvcf", 
+                    "type": "vcf"
+                }, 
+                {
+                    "name": "cg_output_vcf", 
+                    "type": "vcf"
+                }, 
+                {
+                    "name": "cv_output_vcf", 
+                    "type": "vcf"
+                }, 
+                {
+                    "name": "output_log", 
+                    "type": "txt"
+                }
+            ], 
+            "position": {
+                "left": 484.83331298828125, 
+                "top": 200
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/avowinkel/gatk/gatk/3.4-0.d9", 
+            "tool_state": "{\"__page__\": 0, \"cond_threads\": \"{\\\"cond_threads_enabled\\\": \\\"False\\\", \\\"__current_case__\\\": 1}\", \"ref_file\": \"{\\\"__class__\\\": \\\"UnvalidatedValue\\\", \\\"value\\\": \\\"\\\"}\", \"__rerun_remap_job_id__\": null, \"cond_BQSR\": \"{\\\"cond_BQSR_enabled\\\": \\\"False\\\", \\\"__current_case__\\\": 1}\", \"analysis_type\": \"{\\\"analysis_type_selector\\\": \\\"HaplotypeCaller\\\", \\\"cond_usage\\\": {\\\"emitRefConfidence\\\": \\\"GVCF\\\", \\\"__current_case__\\\": 0, \\\"cond_usage_selector\\\": \\\"GVCF\\\"}, \\\"optional_parameters\\\": {\\\"optional_parameters_enabled\\\": \\\"False\\\", \\\"__current_case__\\\": 1}, \\\"cond_bam_input\\\": {\\\"input\\\": null, \\\"all_in_one\\\": \\\"False\\\", \\\"__current_case__\\\": 1}, \\\"__current_case__\\\": 5}\", \"cond_intervals\": \"{\\\"cond_intervals_enabled\\\": \\\"False\\\", \\\"__current_case__\\\": 1}\"}", 
+            "tool_version": "3.4-0.d9", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "5988799c-5658-4475-89ee-86f267cfbee1"
+        }
+    }, 
+    "uuid": "e4f99de3-d6b0-4554-9562-60b2b0eed2d3"
+}
\ No newline at end of file
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/SAMTools.ga
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/SAMTools.ga Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,160 @@
+{
+    "a_galaxy_workflow": "true", 
+    "annotation": "SAMTools workflow", 
+    "format-version": "0.1", 
+    "name": "SAMTools", 
+    "steps": {
+        "0": {
+            "annotation": "", 
+            "id": 0, 
+            "input_connections": {}, 
+            "inputs": [
+                {
+                    "description": "", 
+                    "name": "Input Dataset"
+                }
+            ], 
+            "label": null, 
+            "name": "Input dataset", 
+            "outputs": [], 
+            "position": {
+                "left": 162, 
+                "top": 169
+            }, 
+            "tool_errors": null, 
+            "tool_id": null, 
+            "tool_state": "{\"name\": \"Input Dataset\"}", 
+            "tool_version": null, 
+            "type": "data_input", 
+            "user_outputs": [], 
+            "uuid": "1eec712c-2fe0-43a8-b033-f027a74c6a48"
+        }, 
+        "1": {
+            "annotation": "", 
+            "id": 1, 
+            "input_connections": {}, 
+            "inputs": [
+                {
+                    "description": "", 
+                    "name": "Input Dataset"
+                }
+            ], 
+            "label": null, 
+            "name": "Input dataset", 
+            "outputs": [], 
+            "position": {
+                "left": 273.83331298828125, 
+                "top": 341.83331298828125
+            }, 
+            "tool_errors": null, 
+            "tool_id": null, 
+            "tool_state": "{\"name\": \"Input Dataset\"}", 
+            "tool_version": null, 
+            "type": "data_input", 
+            "user_outputs": [], 
+            "uuid": "98d5e3bf-4715-48a2-9b2b-29b21179c425"
+        }, 
+        "2": {
+            "annotation": "", 
+            "id": 2, 
+            "input_connections": {
+                "input1": {
+                    "id": 0, 
+                    "output_name": "output"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "Sort", 
+            "outputs": [
+                {
+                    "name": "output1", 
+                    "type": "bam"
+                }
+            ], 
+            "position": {
+                "left": 330, 
+                "top": 222
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/samtools_sort/samtools_sort/2.0", 
+            "tool_state": "{\"__page__\": 0, \"__rerun_remap_job_id__\": null, \"input1\": \"null\", \"sort_mode\": \"\\\"\\\"\"}", 
+            "tool_version": "2.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "5e9aef3e-c2ad-43d1-b248-7d94d6a974bc"
+        }, 
+        "3": {
+            "annotation": "", 
+            "id": 3, 
+            "input_connections": {
+                "reference_source|input_bams_0|input_bam": {
+                    "id": 2, 
+                    "output_name": "output1"
+                }, 
+                "reference_source|ref_file": {
+                    "id": 1, 
+                    "output_name": "output"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "MPileup", 
+            "outputs": [
+                {
+                    "name": "output_mpileup", 
+                    "type": "pileup"
+                }, 
+                {
+                    "name": "output_log", 
+                    "type": "txt"
+                }
+            ], 
+            "position": {
+                "left": 484.83331298828125, 
+                "top": 313.83331298828125
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/samtools_mpileup/samtools_mpileup/2.0", 
+            "tool_state": "{\"__page__\": 0, \"advanced_options\": \"{\\\"advanced_options_selector\\\": \\\"basic\\\", \\\"__current_case__\\\": 1}\", \"__rerun_remap_job_id__\": null, \"genotype_likelihood_computation_type\": \"{\\\"output_mapping_quality\\\": \\\"False\\\", \\\"genotype_likelihood_computation_type_selector\\\": \\\"do_not_perform_genotype_likelihood_computation\\\", \\\"__current_case__\\\": 1, \\\"base_position_on_reads\\\": \\\"False\\\"}\", \"reference_source\": \"{\\\"ref_file\\\": null, \\\"reference_source_selector\\\": \\\"history\\\", \\\"input_bams\\\": [{\\\"__index__\\\": 0, \\\"input_bam\\\": null}], \\\"__current_case__\\\": 1}\"}", 
+            "tool_version": "2.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "84c6d18e-1930-4eef-b58a-46c88a35339e"
+        }, 
+        "4": {
+            "annotation": "", 
+            "id": 4, 
+            "input_connections": {
+                "input_file": {
+                    "id": 3, 
+                    "output_name": "output_mpileup"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "Pileup to VCF", 
+            "outputs": [
+                {
+                    "name": "output_file", 
+                    "type": "vcf"
+                }
+            ], 
+            "position": {
+                "left": 562.8333129882812, 
+                "top": 469.83331298828125
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/jjohnson/pileup_to_vcf/pileup_to_vcf/2.2", 
+            "tool_state": "{\"snps_only\": \"\\\"False\\\"\", \"min_cvrg\": \"\\\"5\\\"\", \"allow_multiples\": \"\\\"False\\\"\", \"input_file\": \"null\", \"__page__\": 0, \"vcf_id\": \"\\\"\\\"\", \"__rerun_remap_job_id__\": null, \"cols\": \"{\\\"select_order\\\": \\\"no\\\", \\\"__current_case__\\\": 0}\", \"depth_as\": \"\\\"ref\\\"\", \"min_base_qual\": \"\\\"20\\\"\", \"min_var_pct\": \"\\\"0.5\\\"\"}", 
+            "tool_version": "2.2", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "335581bc-838e-431d-8247-1e1580260275"
+        }
+    }, 
+    "uuid": "0c40a63d-b349-49b8-90b0-c927a05253ef"
+}
\ No newline at end of file
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/SVDetect.ga
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/SVDetect.ga Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,163 @@
+{
+    "a_galaxy_workflow": "true", 
+    "annotation": "SVDetect workflow.", 
+    "format-version": "0.1", 
+    "name": "SVDetect", 
+    "steps": {
+        "0": {
+            "annotation": "", 
+            "id": 0, 
+            "input_connections": {}, 
+            "inputs": [], 
+            "label": null, 
+            "name": "Import data", 
+            "outputs": [
+                {
+                    "name": "outbamfile", 
+                    "type": "bam"
+                }, 
+                {
+                    "name": "outlenfile", 
+                    "type": "len"
+                }, 
+                {
+                    "name": "outsvfile", 
+                    "type": "sv"
+                }
+            ], 
+            "position": {
+                "left": 171.99998474121094, 
+                "top": 168
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/bzeitouni/svdetect/svdetect_import/1.0.0", 
+            "tool_state": "{\"file_name\": \"\\\"file1\\\"\", \"__rerun_remap_job_id__\": null, \"type\": \"{\\\"file_type\\\": \\\"bam\\\", \\\"__current_case__\\\": 0}\", \"file_path\": \"\\\"\\\"\", \"__page__\": 0}", 
+            "tool_version": "1.0.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "296478bf-9b67-47e8-9685-ced05bad2857"
+        }, 
+        "1": {
+            "annotation": "", 
+            "id": 1, 
+            "input_connections": {}, 
+            "inputs": [], 
+            "label": null, 
+            "name": "Import data", 
+            "outputs": [
+                {
+                    "name": "outbamfile", 
+                    "type": "bam"
+                }, 
+                {
+                    "name": "outlenfile", 
+                    "type": "len"
+                }, 
+                {
+                    "name": "outsvfile", 
+                    "type": "sv"
+                }
+            ], 
+            "position": {
+                "left": 266.99998474121094, 
+                "top": 430.99998474121094
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/bzeitouni/svdetect/svdetect_import/1.0.0", 
+            "tool_state": "{\"file_name\": \"\\\"file1\\\"\", \"__rerun_remap_job_id__\": null, \"type\": \"{\\\"file_type\\\": \\\"len\\\", \\\"__current_case__\\\": 1}\", \"file_path\": \"\\\"\\\"\", \"__page__\": 0}", 
+            "tool_version": "1.0.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "481cf408-cef1-4ccd-bd08-9394bac04050"
+        }, 
+        "2": {
+            "annotation": "", 
+            "id": 2, 
+            "input_connections": {
+                "inputBam": {
+                    "id": 0, 
+                    "output_name": "outbamfile"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "BAM preprocessing", 
+            "outputs": [
+                {
+                    "name": "abBAM", 
+                    "type": "bam"
+                }, 
+                {
+                    "name": "log", 
+                    "type": "txt"
+                }, 
+                {
+                    "name": "normBAM", 
+                    "type": "bam"
+                }
+            ], 
+            "position": {
+                "left": 344.49998474121094, 
+                "top": 224
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/bzeitouni/svdetect/svdetect_preprocessing/1.0.0", 
+            "tool_state": "{\"__page__\": 0, \"isizeMin\": \"\\\"0\\\"\", \"newBam\": \"{\\\"__current_case__\\\": 1, \\\"pairNormal\\\": \\\"no\\\"}\", \"isizeMax\": \"\\\"10000\\\"\", \"inputBam\": \"null\", \"__rerun_remap_job_id__\": null, \"nbrePair\": \"\\\"1000000\\\"\", \"readType\": \"\\\"1\\\"\", \"sample_name\": \"\\\"sample\\\"\", \"pairType\": \"\\\"1\\\"\", \"foldPair\": \"\\\"3.0\\\"\"}", 
+            "tool_version": "1.0.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "01f2c8d8-123b-4eac-9c5e-6101e9264dbf"
+        }, 
+        "3": {
+            "annotation": "", 
+            "id": 3, 
+            "input_connections": {
+                "cmap_file": {
+                    "id": 1, 
+                    "output_name": "outlenfile"
+                }, 
+                "mates_file": {
+                    "id": 2, 
+                    "output_name": "abBAM"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "Detect clusters of anomalously mapped pairs", 
+            "outputs": [
+                {
+                    "name": "sv_file", 
+                    "type": "sv"
+                }, 
+                {
+                    "name": "circos_file", 
+                    "type": "segdup"
+                }, 
+                {
+                    "name": "bed_file", 
+                    "type": "bed"
+                }, 
+                {
+                    "name": "log_file", 
+                    "type": "txt"
+                }
+            ], 
+            "position": {
+                "left": 472.49998474121094, 
+                "top": 375.99998474121094
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/bzeitouni/svdetect/svdetect_run_parallel/1.0.0", 
+            "tool_state": "{\"__page__\": 0, \"sv_type\": \"\\\"all\\\"\", \"getLinks\": \"{\\\"window_size\\\": \\\"3000\\\", \\\"step_length\\\": \\\"250\\\", \\\"splitmate\\\": \\\"True\\\", \\\"__current_case__\\\": 1, \\\"linking\\\": \\\"linking\\\"}\", \"mates_file\": \"null\", \"__rerun_remap_job_id__\": null, \"getFilteredLinks\": \"{\\\"nb_pairs_threshold\\\": \\\"5\\\", \\\"filtering\\\": \\\"filtering\\\", \\\"chromosomes\\\": \\\"\\\", \\\"file_conversion\\\": {\\\"file_conversion_select\\\": \\\"do_not_convert\\\", \\\"__current_case__\\\": 0}, \\\"splitlink\\\": \\\"False\\\", \\\"filter1\\\": {\\\"strand_filtering\\\": \\\"strand\\\", \\\"final_score_threshold\\\": \\\"1.0\\\", \\\"__current_case__\\\": 1, \\\"filter2\\\": {\\\"nb_pairs_order_threshold\\\": \\\"2\\\", \\\"order_filtering\\\": \\\"order\\\", \\\"__current_case__\\\": 1, \\\"filter3\\\": {\\\"indel_sigma_threshold\\\": \\\"3.0\\\", \\\"dup_sigma_threshold\\\": \\\"3.0\\\", \\\"singleton_sigma_threshold\\\": \\\"4.0\\\", \\\"__current_case__\\\": 1, \\\"insert_size_filtering\\\": \\\"insert\\\"}, \\\"mu_length\\\": \\\"3000\\\", \\\"sigma_length\\\": \\\"250\\\"}}, \\\"__current_case__\\\": 1, \\\"links2SV\\\": \\\"True\\\"}\", \"read2_length\": \"\\\"50\\\"\", \"read1_length\": \"\\\"50\\\"\", \"sample_name\": \"\\\"sample\\\"\", \"mates_orientation\": \"\\\"FR\\\"\", \"cmap_file\": \"null\"}", 
+            "tool_version": "1.0.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "2edd1fca-fc2d-453e-aead-c95a2e250d0a"
+        }
+    }, 
+    "uuid": "bb58fd42-403a-48ad-80d2-59d81f0c8f0b"
+}
\ No newline at end of file
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/VARSCAN.ga
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/VARSCAN.ga Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,133 @@
+{
+    "a_galaxy_workflow": "true", 
+    "annotation": "VARSCAN workflow.", 
+    "format-version": "0.1", 
+    "name": "VARSCAN", 
+    "steps": {
+        "0": {
+            "annotation": "", 
+            "id": 0, 
+            "input_connections": {}, 
+            "inputs": [
+                {
+                    "description": "", 
+                    "name": "Input Dataset"
+                }
+            ], 
+            "label": null, 
+            "name": "Input dataset", 
+            "outputs": [], 
+            "position": {
+                "left": 161, 
+                "top": 187
+            }, 
+            "tool_errors": null, 
+            "tool_id": null, 
+            "tool_state": "{\"name\": \"Input Dataset\"}", 
+            "tool_version": null, 
+            "type": "data_input", 
+            "user_outputs": [], 
+            "uuid": "72a1326a-cd57-4567-8c41-cc66411642be"
+        }, 
+        "1": {
+            "annotation": "", 
+            "id": 1, 
+            "input_connections": {}, 
+            "inputs": [
+                {
+                    "description": "", 
+                    "name": "Input Dataset"
+                }
+            ], 
+            "label": null, 
+            "name": "Input dataset", 
+            "outputs": [], 
+            "position": {
+                "left": 163.83331298828125, 
+                "top": 263.8333282470703
+            }, 
+            "tool_errors": null, 
+            "tool_id": null, 
+            "tool_state": "{\"name\": \"Input Dataset\"}", 
+            "tool_version": null, 
+            "type": "data_input", 
+            "user_outputs": [], 
+            "uuid": "d8444634-af6c-44c5-9b55-8c3284da2823"
+        }, 
+        "2": {
+            "annotation": "", 
+            "id": 2, 
+            "input_connections": {
+                "reference_source|input_bams_0|input_bam": {
+                    "id": 0, 
+                    "output_name": "output"
+                }, 
+                "reference_source|ref_file": {
+                    "id": 1, 
+                    "output_name": "output"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "MPileup", 
+            "outputs": [
+                {
+                    "name": "output_mpileup", 
+                    "type": "pileup"
+                }, 
+                {
+                    "name": "output_log", 
+                    "type": "txt"
+                }
+            ], 
+            "position": {
+                "left": 370, 
+                "top": 187
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/samtools_mpileup/samtools_mpileup/2.0", 
+            "tool_state": "{\"__page__\": 0, \"advanced_options\": \"{\\\"advanced_options_selector\\\": \\\"basic\\\", \\\"__current_case__\\\": 1}\", \"__rerun_remap_job_id__\": null, \"genotype_likelihood_computation_type\": \"{\\\"output_mapping_quality\\\": \\\"False\\\", \\\"genotype_likelihood_computation_type_selector\\\": \\\"do_not_perform_genotype_likelihood_computation\\\", \\\"__current_case__\\\": 1, \\\"base_position_on_reads\\\": \\\"False\\\"}\", \"reference_source\": \"{\\\"ref_file\\\": null, \\\"reference_source_selector\\\": \\\"history\\\", \\\"input_bams\\\": [{\\\"__index__\\\": 0, \\\"input_bam\\\": null}], \\\"__current_case__\\\": 1}\"}", 
+            "tool_version": "2.0", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "26d34295-7783-40e1-950f-a485ff569f5b"
+        }, 
+        "3": {
+            "annotation": "", 
+            "id": 3, 
+            "input_connections": {
+                "in_file": {
+                    "id": 2, 
+                    "output_name": "output_mpileup"
+                }
+            }, 
+            "inputs": [], 
+            "label": null, 
+            "name": "VarScan mpileup", 
+            "outputs": [
+                {
+                    "name": "output", 
+                    "type": "vcf"
+                }, 
+                {
+                    "name": "log", 
+                    "type": "txt"
+                }
+            ], 
+            "position": {
+                "left": 563.8333129882812, 
+                "top": 364.83331298828125
+            }, 
+            "post_job_actions": {}, 
+            "tool_errors": null, 
+            "tool_id": "toolshed.g2.bx.psu.edu/repos/fcaramia/varscan/varscan_mpileup/2.3.5", 
+            "tool_state": "{\"strand_filter\": \"\\\"1\\\"\", \"min_avg_qual\": \"\\\"15\\\"\", \"min_coverage\": \"\\\"8\\\"\", \"__page__\": 0, \"__rerun_remap_job_id__\": null, \"min_freq_for_hom\": \"\\\"0.75\\\"\", \"min_var_freq\": \"\\\"0.01\\\"\", \"exe_command\": \"\\\"mpileup2snp\\\"\", \"min_reads2\": \"\\\"2\\\"\", \"p_value\": \"\\\"0.99\\\"\", \"variants\": \"\\\"1\\\"\", \"vcf_sample_list\": \"null\", \"in_file\": \"null\"}", 
+            "tool_version": "2.3.5", 
+            "type": "tool", 
+            "user_outputs": [], 
+            "uuid": "5ff6cf71-5d74-42ad-bcdc-7c75891dc10e"
+        }
+    }, 
+    "uuid": "5b7bf29e-1272-4211-b345-37695989c6fa"
+}
\ No newline at end of file
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/analyze_covariates.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/analyze_covariates.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,37 @@
+<macros>
+    <xml name="AnalyzeCovariatesParameters" tokens="tag">
+
+        <!-- BQSR in main config -->
+
+        <param name="afterReportFile" type="data" format="tabular" optional="true" label="file containing the BQSR second-pass report file" help="-after,&#8209;&#8209;afterReportFile &amp;lt;afterReportFile&amp;gt;" />
+
+        <param name="beforeReportFile" type="data" format="tabular" optional="true" label="file containing the BQSR first-pass report file" help="-before,&#8209;&#8209;beforeReportFile &amp;lt;beforeReportFile&amp;gt;" />
+
+    </xml>
+
+    <xml name="AnalyzeCovariatesOutput">
+        <data format="pdf" name="ac_plotsReportFile" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (PDF Recalibration Report)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="AnalyzeCovariatesPreprocessing">
+<![CDATA[
+]]>
+    </template>
+
+    <template name="AnalyzeCovariatesOptions">
+<![CDATA[
+        --plotsReportFile                   ${ac_plotsReportFile}
+
+        #if str($analysis_type.afterReportFile)
+            --afterReportFile $analysis_type.afterReportFile
+        #end if
+        #if str($analysis_type.beforeReportFile)
+            --beforeReportFile $analysis_type.beforeReportFile
+        #end if
+]]>
+    </template>
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/base_recalibrator.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/base_recalibrator.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,38 @@
+<macros>
+    <xml name="BaseRecalibratorParameters" tokens="tag">
+        
+        <expand macro="macro_bam_input" tag="@TAG@" />
+
+        <param name="knownSites" type="data" format="vcf,bcf,bed,pileup,tabular,table" label="Database of known Sites (ROD files; e.g. VCF format)" multiple="true" title="A database of known polymorphic sites to skip over in the recalibration algorithm" help="-knownSites,&#8209;&#8209;knownSites &amp;lt;knownSites&amp;gt;" />
+
+    </xml>
+
+    <xml name="BaseRecalibratorOutput">
+        <data format="tabular" name="br_table" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (Table)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="BaseRecalibratorPreprocessing">
+<![CDATA[
+        @token_bam_input_pre@
+        #for $i, $variant in enumerate($analysis_type.knownSites):
+            ln -s -f ${variant} variant_${i}.vcf &&
+        #end for
+]]>
+    </template>
+
+    <template name="BaseRecalibratorOptions">
+<![CDATA[
+        --out                   ${br_table}
+
+        @token_bam_input@
+
+        #for $i, $variant in enumerate($analysis_type.knownSites):
+            --knownSites variant_${i}.vcf
+        #end for
+]]>
+    </template>
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/combine_gvcfs.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/combine_gvcfs.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,44 @@
+<macros>
+    <xml name="CombineGVCFsParameters" tokens="tag">
+        
+        <expand macro="macro_gvcf_input" tag="@TAG@" />
+
+        <expand macro="macro_optional_parameters">
+
+            <param name="breakBandsAtMultiplesOf" type="integer" value="0" label="If > 0, reference bands will be broken up at genomic positions that are multiples of this number" help="-breakBandsAtMultiplesOf,&#8209;&#8209;breakBandsAtMultiplesOf &amp;lt;breakBandsAtMultiplesOf&amp;gt;" />
+
+        </expand>
+
+    </xml>
+
+    <xml name="CombineGVCFsOutput">
+        <data format="vcf" name="cg_output_vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (VCF)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="CombineGVCFsPreprocessing">
+<![CDATA[
+        @token_gvcf_input_pre@
+]]>
+    </template>
+
+    <template name="CombineGVCFsOptions">
+<![CDATA[
+        --out ${cg_output_vcf}
+
+        @token_gvcf_input@
+
+        #set $optionals = $analysis_type.optional_parameters
+        #if $optionals.optional_parameters_enabled
+            #if $optionals.breakBandsAtMultiplesOf > 0
+                --breakBandsAtMultiplesOf $optionals.breakBandsAtMultiplesOf
+            #end if
+        #end if
+]]>
+    </template>
+
+
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/combine_variants.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/combine_variants.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,96 @@
+<macros>
+    <xml name="CombineVariantsParameters" tokens="tag">
+        
+        <expand macro="macro_vcf_input" tag="@TAG@" />
+
+        <expand macro="macro_optional_parameters">
+
+            <param name="filteredRecordsMergeType" type="select" label="Determines how we should handle records seen at the same site in the VCF, but with different FILTER fields" help="-filteredRecordsMergeType,&#8209;&#8209;filteredrecordsmergetype &amp;lt;filteredrecordsmergetype&amp;gt;">
+                <option value="">No Selection</option>
+                <option value="KEEP_IF_ANY_UNFILTERED">KEEP_IF_ANY_UNFILTERED</option>
+                <option value="KEEP_IF_ALL_UNFILTERED">KEEP_IF_ALL_UNFILTERED</option>
+                <option value="KEEP_UNCONDITIONAL">KEEP_UNCONDITIONAL</option>
+            </param>
+
+            <param name="genotypeMergeOptions" type="select" label="Determines how we should merge genotype records for samples shared across the ROD files" help="-genotypeMergeOptions,&#8209;&#8209;genotypemergeoption &amp;lt;genotypemergeoption&amp;gt;">
+                <option value="">No Selection</option>
+                <option value="UNIQUIFY">UNIQUIFY</option>
+                <option value="PRIORITIZE">PRIORITIZE</option>
+                <option value="UNSORTED">UNSORTED</option>
+                <option value="REQUIRE_UNIQUE">REQUIRE_UNIQUE</option>
+            </param>
+
+            <param name="minimumN" type="integer" value="1" optional="true" label="Combine variants and output site only if the variant is present in at least N input files" help="-minN,&#8209;&#8209;minimumN &amp;lt;minimumN&amp;gt;" />
+
+            <param name="rod_priority_list" type="text" value="" optional="true" label="A comma-separated string describing the priority ordering for the genotypes as far as which record gets emitted" help="-priority,&#8209;&#8209;rod_priority_list &amp;lt;rod_priority_list&amp;gt;" />
+
+            <param name="setKey" type="text" value="" optional="true" label="Key used in the INFO key=value tag emitted describing which set the combined VCF record came from" help="-setKey,&#8209;&#8209;setKey &amp;lt;setKey&amp;gt;" />
+
+            <param name="assumeIdenticalSamples" type="boolean" truevalue="--assumeIdenticalSamples" falsevalue="" label="If true, assume input VCFs have identical sample sets and disjoint calls" help="-assumeIdenticalSamples,&#8209;&#8209;assumeIdenticalSamples" />
+
+            <param name="excludeNonVariants" type="boolean" truevalue="--excludeNonVariants" falsevalue="" label="Don't include loci found to be non-variant after the combining procedure" help="-env,&#8209;&#8209;excludeNonVariants" />
+
+            <param name="filteredAreUncalled" type="boolean" truevalue="--filteredAreUncalled" falsevalue="" label="If true, then filtered VCFs are treated as uncalled, so that filtered set annotations don't appear in the combined VCF" help="-filteredAreUncalled,&#8209;&#8209;filteredAreUncalled" />
+
+            <param name="mergeInfoWithMaxAC" type="boolean" truevalue="--mergeInfoWithMaxAC" falsevalue="" label="If true, when VCF records overlap the info field is taken from the one with the max AC instead of only taking the fields which are identical across the overlapping records." help="-mergeInfoWithMaxAC,&#8209;&#8209;mergeInfoWithMaxAC" />
+
+            <param name="minimalVCF" type="boolean" truevalue="--minimalVCF" falsevalue="" label="If true, then the output VCF will contain no INFO or genotype FORMAT fields" help="-minimalVCF,&#8209;&#8209;minimalVCF" />
+
+            <param name="printComplexMerges" type="boolean" truevalue="--printComplexMerges" falsevalue="" label="Print out interesting sites requiring complex compatibility merging" help="-printComplexMerges,&#8209;&#8209;printComplexMerges" />
+
+            <param name="suppressCommandLineHeader" type="boolean" truevalue="--suppressCommandLineHeader" falsevalue="" label="If true, do not output the header containing the command line used" help="-suppressCommandLineHeader,&#8209;&#8209;suppressCommandLineHeader" />
+
+        </expand>
+
+    </xml>
+
+    <xml name="CombineVariantsOutput">
+        <data format="vcf" name="cv_output_vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (VCF)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="CombineVariantsPreprocessing">
+<![CDATA[
+        @token_vcf_input_pre@
+]]>
+    </template>
+
+    <template name="CombineVariantsOptions">
+<![CDATA[
+        --out ${cv_output_vcf}
+
+        @token_vcf_input@
+
+        #set $optionals = $analysis_type.optional_parameters
+        #if $optionals.optional_parameters_enabled
+
+            #if $optionals.filteredRecordsMergeType
+                --filteredRecordsMergeType $optionals.filteredRecordsMergeType
+            #end if
+            #if $optionals.genotypeMergeOptions
+                --genotypeMergeOptions $optionals.genotypeMergeOptions
+            #end if
+            #if $optionals.minimumN != 1
+                --minimumN $optionals.minimumN
+            #end if
+            #if $optionals.rod_priority_list
+                --rod_priority_list $optionals.rod_priority_list
+            #end if
+
+            $optionals.assumeIdenticalSamples
+            $optionals.excludeNonVariants
+            $optionals.filteredAreUncalled
+            $optionals.mergeInfoWithMaxAC
+            $optionals.minimalVCF
+            $optionals.printComplexMerges
+            $optionals.suppressCommandLineHeader
+
+        #end if
+]]>
+    </template>
+
+
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/gatk.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/gatk.xml Thu Oct 03 10:42:15 2019 -0400
[
b'@@ -0,0 +1,179 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<tool id="gatk" name="GATK" version="@VERSION@.d9">\n+  <description>tool collection Version @VERSION@</description>\n+  <macros>\n+    <import>gatk_macros.xml</import>\n+    <import>realigner_target_creator.xml</import>\n+    <import>indel_realigner.xml</import>\n+    <import>base_recalibrator.xml</import>\n+    <import>analyze_covariates.xml</import>\n+    <import>print_reads.xml</import>\n+    <import>haplotype_caller.xml</import>\n+    <import>genotype_gvcfs.xml</import>\n+    <import>combine_gvcfs.xml</import>\n+    <import>combine_variants.xml</import>\n+  </macros>\n+  <expand macro="requirements"/>\n+  <stdio>\n+    <regex match="^INFO" level="log"/>\n+    <regex match="^WARN" level="warning"/>\n+    <regex match="Using .* implementation of PairHMM" level="warning"/>\n+    <regex match="There is insufficient memory for the Java Runtime Environment to continue" level="fatal"/>\n+    <regex match="^##### ERROR" level="fatal"/>\n+    <exit_code range="1:" level="fatal"/>\n+  </stdio>\n+  <command><![CDATA[\n+        ############################\n+        ## import analysis specific preprocessings by using cheetahs internal searchList\n+        ## if not defined, ignore\n+        ############################\n+        #if $analysis_type.analysis_type_selector + "Preprocessing" in vars()[\'SL\'][2]\n+            #set $analysisPreprocessing = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Preprocessing"]\n+            #include source=$analysisPreprocessing\n+        #end if\n+        \n+        ############################\n+        ## GATK tool unspecific options\n+        ############################\n+        @GATK_EXEC@\n+        \n+        --analysis_type ${analysis_type.analysis_type_selector}\n+        --reference_sequence    ${ref_file.fields.path}\n+\n+        --log_to_file           ${output_log}\n+\n+        #if $cond_intervals.cond_intervals_enabled\n+            #for $interval in $cond_intervals.intervals:\n+                --intervals ${interval.L}\n+            #end for\n+        #end if\n+\n+        #if $cond_BQSR.cond_BQSR_enabled\n+          --BQSR $cond_BQSR.BQSR\n+        #end if\n+\n+        ############################\n+        ## import analysis specific options by using cheetahs internal searchList\n+        ## if not defined throw raw python error until better idea\n+        ############################\n+        #if $analysis_type.analysis_type_selector + "Options" in vars()[\'SL\'][2]\n+            #set $analysisOptions = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Options"]\n+            #include source=$analysisOptions\n+        #else\n+            #set $analysisOptions = vars()[\'SL\'][2][$analysis_type.analysis_type_selector + "Options"]\n+        #end if\n+        \n+        ############################\n+        ## only put ERROR or FATAL log messages into stderr\n+        ## but keep full log for printing into log file\n+        ############################\n+        2>&1 | awk \'\\$1 != "INFO" && \\$1 != "WARN"\' >&2\n+]]></command>\n+  <inputs>\n+    <param name="ref_file" type="select" label="Using reference genome" help="-R,\xe2\x80\x91\xe2\x80\x91reference_sequence &amp;lt;reference_sequence&amp;gt;">\n+      <options from_data_table="picard_indexes"/>\n+      <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>\n+    </param>\n+    <conditional name="cond_intervals">\n+      <param name="cond_intervals_enabled" type="boolean" label="Select interval subset to operate on?"/>\n+      <when value="true">\n+        <repeat name="intervals" title="genomic interval over which to operate" help="-L,\xe2\x80\x91\xe2\x80\x91intervals &amp;lt;intervals&amp;gt;">\n+          <param name="L" type="text" value=""/>\n+        </repeat>\n+      </when>\n+      <when value="false"/>\n+    </conditional>\n+    <conditional name="cond_BQSR">\n+      <param name="cond_BQSR_enabled" type="boolean" label="Select covariates for on-the-fly recalibration?"/>\n+      <when '..b'"nct" type="integer" value="1" label="Number of CPU threads to allocate per data thread" help="make sure, the option is available for the chosen tool"/>\n+        <param name="mem" type="integer" value="0" label="Overwrite Memory in MB (0 = don\'t overwrite)" help="Overwrites all other defaults and might lead to crash the run. States mem per data thread"/>\n+      </when>\n+      <when value="false"/>\n+    </conditional>\n+    <conditional name="analysis_type">\n+      <param name="analysis_type_selector" type="select" label="Analysis Type">\n+        <option value="RealignerTargetCreator">RealignerTargetCreator</option>\n+        <option value="IndelRealigner">IndelRealigner</option>\n+        <option value="BaseRecalibrator">BaseRecalibrator</option>\n+        <option value="AnalyzeCovariates">AnalyzeCovariates</option>\n+        <option value="PrintReads">PrintReads</option>\n+        <option value="HaplotypeCaller">HaplotypeCaller</option>\n+        <option value="GenotypeGVCFs">GenotypeGVCFs</option>\n+        <option value="CombineGVCFs">CombineGVCFs</option>\n+        <option value="CombineVariants">CombineVariants</option>\n+      </param>\n+      <when value="RealignerTargetCreator">\n+        <expand macro="RealignerTargetCreatorParameters" tag="rtc"/>\n+      </when>\n+      <when value="IndelRealigner">\n+        <expand macro="IndelRealignerParameters" tag="ir"/>\n+      </when>\n+      <when value="BaseRecalibrator">\n+        <expand macro="BaseRecalibratorParameters" tag="br"/>\n+      </when>\n+      <when value="AnalyzeCovariates">\n+        <expand macro="AnalyzeCovariatesParameters" tag="ac"/>\n+      </when>\n+      <when value="PrintReads">\n+        <expand macro="PrintReadsParameters" tag="pr"/>\n+      </when>\n+      <when value="HaplotypeCaller">\n+        <expand macro="HaplotypeCallerParameters" tag="hc"/>\n+      </when>\n+      <when value="GenotypeGVCFs">\n+        <expand macro="GenotypeGVCFsParameters" tag="gg"/>\n+      </when>\n+      <when value="CombineGVCFs">\n+        <expand macro="CombineGVCFsParameters" tag="cg"/>\n+      </when>\n+      <when value="CombineVariants">\n+        <expand macro="CombineVariantsParameters" tag="cv"/>\n+      </when>\n+    </conditional>\n+  </inputs>\n+  <outputs>\n+    <expand macro="RealignerTargetCreatorOutput" tag="rtc">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'RealignerTargetCreator\'</filter>\n+    </expand>\n+    <expand macro="IndelRealignerOutput" tag="ir">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'IndelRealigner\'</filter>\n+    </expand>\n+    <expand macro="BaseRecalibratorOutput" tag="br">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'BaseRecalibrator\'</filter>\n+    </expand>\n+    <expand macro="AnalyzeCovariatesOutput" tag="ac">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'AnalyzeCovariates\'</filter>\n+    </expand>\n+    <expand macro="PrintReadsOutput" tag="pr">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'PrintReads\'</filter>\n+    </expand>\n+    <expand macro="HaplotypeCallerOutput" tag="hc">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'HaplotypeCaller\'</filter>\n+    </expand>\n+    <expand macro="GenotypeGVCFsOutput" tag="gg">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'GenotypeGVCFs\'</filter>\n+    </expand>\n+    <expand macro="CombineGVCFsOutput" tag="cg">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'CombineGVCFs\'</filter>\n+    </expand>\n+    <expand macro="CombineVariantsOutput" tag="cv">\n+      <filter>analysis_type[\'analysis_type_selector\'] == \'CombineVariants\'</filter>\n+    </expand>\n+    <data format="txt" name="output_log" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (log)"/>\n+  </outputs>\n+  <expand macro="macro_tests"/>\n+  <citations>\n+    <citation type="doi">10.1101/gr.107524.110</citation>\n+    <citation type="doi">10.1038/ng.806</citation>\n+    <citation type="doi">10.1002/0471250953.bi1110s43</citation>\n+  </citations>\n+</tool>\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/gatk_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/gatk_macros.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,166 @@
+<macros>
+
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package">gatk</requirement>
+            <requirement type="set_environment">GATK_PATH</requirement>
+            <requirement type="set_environment">GATK_SITE_OPTIONS</requirement>
+            <requirement type="package" version="3.1.2.1">package_r_for_gatk_3_4_0</requirement>
+        </requirements>
+    </xml>
+
+    <xml name="version_command">
+        <version_command><![CDATA[ @GATK_EXEC@ --help|grep '^The Genome' ]]></version_command>
+    </xml>
+
+    <token name="@VERSION@">3.4-0</token>
+    <token name="@OUTPUT_NAME_PREFIX@">${tool.name} - ${analysis_type.analysis_type_selector}</token>
+    <token name="@GATK_EXEC@">
+<![CDATA[
+        #if $cond_threads.cond_threads_enabled:
+            #if int($cond_threads.nct) > 1:
+                THREAD_STRING="-nct $cond_threads.nct" &&
+            #end if
+            #if int($cond_threads.nt) > 1:
+                THREAD_STRING=$THREAD_STRING" -nt $cond_threads.nt" &&
+            #end if
+            #if int($cond_threads.mem) > 0:
+                GATK_MEM=$cond_threads.mem &&
+            #end if
+        #end if
+        java -Xmx\${GATK_MEM:-\${SLURM_MEM_PER_NODE:-4096}}M -jar "\$GATK_PATH/GenomeAnalysisTK.jar" \${THREAD_STRING:-}
+]]>
+    </token>
+
+    <xml name="macro_vcf_input" tokens="tag">
+        <param name="input" type="data" format="vcf" multiple="true" label="Variant files (VCF format)" help="-V, &#8209;&#8209;variant">
+            <validator type="unspecified_build" />
+            <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build." /> 
+        </param>
+    </xml>
+    <token name="@token_vcf_input_pre@" tokens="tag">
+<![CDATA[
+        ############################
+        ## create links to gVCF input files with correct extensions
+        ############################
+        #for $i, $variant in enumerate($analysis_type.input):
+            ln -s -f ${variant} variant_${i}.vcf &&
+        #end for
+]]>
+    </token>
+    <token name="@token_vcf_input@">
+<![CDATA[
+        #for $i, $variant in enumerate($analysis_type.input):
+            --variant variant_${i}.vcf
+        #end for
+        @token_reference_input@
+]]>
+    </token>
+
+
+    <xml name="macro_gvcf_input" tokens="tag">
+        <param name="input" type="data" format="vcf" multiple="true" label="Variant files (gVCF format)" help="-V, &#8209;&#8209;variant">
+            <validator type="unspecified_build" />
+            <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build." /> 
+        </param>
+    </xml>
+    <token name="@token_gvcf_input_pre@" tokens="tag">
+<![CDATA[
+        ############################
+        ## create links to gVCF input files with correct extensions
+        ############################
+        #for $i, $variant in enumerate($analysis_type.input):
+            ln -s -f ${variant} variant_${i}.g.vcf &&
+        #end for
+]]>
+    </token>
+    <token name="@token_gvcf_input@">
+<![CDATA[
+        #for $i, $variant in enumerate($analysis_type.input):
+            --variant variant_${i}.g.vcf
+        #end for
+        @token_reference_input@
+]]>
+    </token>
+
+    <xml name="macro_bam_input">
+        <conditional name="cond_bam_input">
+            <param name="all_in_one" type="boolean" value="false" label="Input all BAM files in a single command" />
+            <when value="true">
+                <param name="input" type="data" format="bam" multiple="true" label="Input file containing sequence data (BAM)" help="-I, ‑‑input_file">
+                    <validator type="unspecified_build"/>
+                    <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build."/>
+                </param>
+            </when>
+            <when value="false">
+                <param name="input" type="data" format="bam" label="Input file containing sequence data (BAM)" help="-I, ‑‑input_file">
+                    <validator type="unspecified_build"/>
+                    <validator type="dataset_metadata_in_data_table" table_name="picard_indexes" metadata_name="dbkey" metadata_column="dbkey" message="Sequences are not currently available for the specified build."/>
+                </param>
+            </when>
+        </conditional>
+    </xml>
+    <token name="@token_bam_input_pre@">
+<![CDATA[
+        ############################
+        ## create links to bam input files with correct extensions
+        ############################
+        #if $analysis_type.cond_bam_input.all_in_one
+            #for $i, $bam in enumerate($analysis_type.cond_bam_input.input):
+                ln -s -f ${bam} input_${i}.bam &&
+                ln -s -f ${bam.metadata.bam_index} input_${i}.bam.bai &&
+            #end for
+        #else
+            ln -s -f ${analysis_type.cond_bam_input.input} input.bam &&
+            ln -s -f ${analysis_type.cond_bam_input.input.metadata.bam_index} input.bam.bai &&
+        #end if
+]]>
+    </token>
+    <token name="@token_bam_input@">
+<![CDATA[
+        #if $analysis_type.cond_bam_input.all_in_one
+            #for $i, $bam in enumerate($analysis_type.cond_bam_input.input):
+                --input_file input_${i}.bam
+            #end for
+        #else
+            --input_file            input.bam
+        #end if
+        @token_reference_input@
+]]>
+    </token>
+
+    <token name="@token_reference_input@">
+<![CDATA[
+]]>
+    </token>
+    <xml name="macro_input" tokens="tag">
+        <yield />
+    </xml>
+
+    <xml name="macro_optional_parameters">
+        <conditional name="optional_parameters">
+            <param name="optional_parameters_enabled" type="boolean" label="Configure Optional Parameters" />
+            <when value="true">
+                <yield />
+            </when>
+            <when value="false" />
+        </conditional>
+    </xml>
+
+    <xml name="macro_advanced_parameters">
+        <conditional name="advanced_parameters">
+            <param name="advanced_parameters_enabled" type="boolean" label="Configure Advanced Parameters" />
+            <when value="true">
+                <yield />
+            </when>
+            <when value="false" />
+        </conditional>
+    </xml>
+
+    <xml name="macro_tests">
+        <tests>
+            
+        </tests>
+    </xml>
+
+</macros>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/generation/gatk.xsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/generation/gatk.xsl Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output
+    method="xml"
+    encoding="utf-8"
+    indent="yes"
+    cdata-section-elements="script style" />
+
+<xsl:template match="/">
+
+<tool id="gatk" name="GATK" version="@VERSION@.d9">
+    <description>tool collection Version @VERSION@</description>
+
+    <macros>
+        <import>gatk_macros.xml</import>
+        <xsl:for-each select="analyses/analysis">
+        <import><xsl:value-of select="macro_file" /></import>
+        </xsl:for-each>
+    </macros>
+
+    <expand macro="requirements" />
+
+    <stdio>
+        <regex match="^INFO" level="log" />
+        <regex match="^WARN" level="warning" />
+        <regex match="Using .* implementation of PairHMM" level="warning" />
+        <regex match="There is insufficient memory for the Java Runtime Environment to continue" level="fatal" />
+        <regex match="^##### ERROR" level="fatal" />
+        <exit_code range="1:" level="fatal"/>
+    </stdio>
+
+    <command>
+<xsl:text disable-output-escaping="yes">&lt;![CDATA[
+        ############################
+        ## import analysis specific preprocessings by using cheetahs internal searchList
+        ## if not defined, ignore
+        ############################
+        #if $analysis_type.analysis_type_selector + "Preprocessing" in vars()['SL'][2]
+            #set $analysisPreprocessing = vars()['SL'][2][$analysis_type.analysis_type_selector + "Preprocessing"]
+            #include source=$analysisPreprocessing
+        #end if
+        
+        ############################
+        ## GATK tool unspecific options
+        ############################
+        @GATK_EXEC@
+        
+        --analysis_type ${analysis_type.analysis_type_selector}
+        --reference_sequence    ${ref_file.fields.path}
+
+        --log_to_file           ${output_log}
+
+        #if $cond_intervals.cond_intervals_enabled
+            #for $interval in $cond_intervals.intervals:
+                --intervals ${interval.L}
+            #end for
+        #end if
+
+        #if $cond_BQSR.cond_BQSR_enabled
+          --BQSR $cond_BQSR.BQSR
+        #end if
+
+        ############################
+        ## import analysis specific options by using cheetahs internal searchList
+        ## if not defined throw raw python error until better idea
+        ############################
+        #if $analysis_type.analysis_type_selector + "Options" in vars()['SL'][2]
+            #set $analysisOptions = vars()['SL'][2][$analysis_type.analysis_type_selector + "Options"]
+            #include source=$analysisOptions
+        #else
+            #set $analysisOptions = vars()['SL'][2][$analysis_type.analysis_type_selector + "Options"]
+        #end if
+        
+        ############################
+        ## only put ERROR or FATAL log messages into stderr
+        ## but keep full log for printing into log file
+        ############################
+        2>&amp;1 | awk '\$1 != "INFO" &amp;&amp; \$1 != "WARN"' >&amp;2
+]]&gt;</xsl:text>
+    </command>
+
+    <inputs>
+
+        <param name="ref_file" type="select" label="Using reference genome" help="-R,&#8209;&#8209;reference_sequence &amp;lt;reference_sequence&amp;gt;" >
+            <options from_data_table="picard_indexes">
+                <!--filter type="data_meta" key="dbkey" ref="@TAG@_input" column="dbkey" /-->
+            </options>
+            <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
+        </param>
+
+        <conditional name="cond_intervals">
+            <param name="cond_intervals_enabled" type="boolean" label="Select interval subset to operate on?" />
+            <when value="true">
+                <repeat name="intervals" title="genomic interval over which to operate" help="-L,&#8209;&#8209;intervals &amp;lt;intervals&amp;gt;">
+                    <param name="L" type="text" value="" />
+                </repeat>
+            </when>
+            <when value="false" />
+        </conditional>
+
+        <conditional name="cond_BQSR">
+            <param name="cond_BQSR_enabled" type="boolean" label="Select covariates for on-the-fly recalibration?" />
+            <when value="true">
+                <param name="BQSR" type="data" format="tabular" label="Input covariates table file for on-the-fly base quality score recalibration" help="-BQSR,&#8209;&#8209;BQSR &amp;lt;BQSR&amp;gt; intended primarily for use with BaseRecalibrator and PrintReads" />
+            </when>
+            <when value="false" />
+        </conditional>
+
+        <conditional name="cond_threads">
+            <param name="cond_threads_enabled" type="boolean" label="Set computational options (cpu, mem)?" />
+            <when value="true">
+                <param name="nt" type="integer" value="1" label="Number of data threads to allocate to this analysis" help="make sure, the option is available for the chosen tool" />
+                <param name="nct" type="integer" value="1" label="Number of CPU threads to allocate per data thread" help="make sure, the option is available for the chosen tool" />
+                <param name="mem" type="integer" value="0" label="Overwrite Memory in MB (0 = don't overwrite)" help="Overwrites all other defaults and might lead to crash the run. States mem per data thread" />
+            </when>
+            <when value="false" />
+        </conditional>
+
+        <conditional name="analysis_type">
+            <param name="analysis_type_selector" type="select" label="Analysis Type">
+                <xsl:for-each select="analyses/analysis">
+                <option value="{name}"><xsl:value-of select="name" /></option>
+                </xsl:for-each>
+            </param>
+            <xsl:for-each select="analyses/analysis">
+            <when value="{name}">
+                <!--xsl:choose>
+                    <xsl:when test="input_type = 'bam'">
+                        <expand macro="macro_bam_input" tag="{tag}" />
+                    </xsl:when>
+                    <xsl:when test="input_type = 'gvcf'">
+                        <expand macro="macro_gvcf_input" tag="{tag}" />
+                    </xsl:when>
+                </xsl:choose-->
+                <expand macro="{name}Parameters" tag="{tag}" />
+            </when>
+            </xsl:for-each>
+        </conditional>
+    </inputs>
+
+    <outputs>
+        <xsl:for-each select="analyses/analysis">
+        <expand macro="{name}Output" tag="{tag}">
+            <filter>analysis_type['analysis_type_selector'] == '<xsl:value-of select="name" />'</filter>
+        </expand>
+        </xsl:for-each>
+        <data format="txt" name="output_log" label="${{tool.name}} - ${{analysis_type.analysis_type_selector}} on ${{on_string}} (log)" />
+    </outputs>
+
+    <expand macro="macro_tests" />
+
+    <citations>
+        <citation type="doi">10.1101/gr.107524.110</citation>
+        <citation type="doi">10.1038/ng.806</citation>
+        <citation type="doi">10.1002/0471250953.bi1110s43</citation>
+    </citations>
+</tool>
+
+</xsl:template>
+</xsl:stylesheet>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/generation/gatk.xsldb.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/generation/gatk.xsldb.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<analyses>
+    <analysis>
+     <name>RealignerTargetCreator</name>
+     <input_type>bam</input_type>
+     <tag>rtc</tag>
+     <macro_file>realigner_target_creator.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>IndelRealigner</name>
+     <input_type>bam</input_type>
+     <tag>ir</tag>
+     <macro_file>indel_realigner.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>BaseRecalibrator</name>
+     <input_type>bam</input_type>
+     <tag>br</tag>
+     <macro_file>base_recalibrator.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>AnalyzeCovariates</name>
+     <input_type>bam</input_type>
+     <tag>ac</tag>
+     <macro_file>analyze_covariates.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>PrintReads</name>
+     <input_type>bam</input_type>
+     <tag>pr</tag>
+     <macro_file>print_reads.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>HaplotypeCaller</name>
+     <input_type>bam</input_type>
+     <tag>hc</tag>
+     <macro_file>haplotype_caller.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>GenotypeGVCFs</name>
+     <input_type>gvcf</input_type>
+     <tag>gg</tag>
+     <macro_file>genotype_gvcfs.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>CombineGVCFs</name>
+     <input_type>gvcf</input_type>
+     <tag>cg</tag>
+     <macro_file>combine_gvcfs.xml</macro_file>
+    </analysis>
+    <analysis>
+     <name>CombineVariants</name>
+     <input_type>vcf</input_type>
+     <tag>cv</tag>
+     <macro_file>combine_variants.xml</macro_file>
+    </analysis>
+</analyses>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/genotype_gvcfs.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/genotype_gvcfs.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,43 @@
+<macros>
+    <xml name="GenotypeGVCFsParameters" tokens="tag">
+        
+        <expand macro="macro_gvcf_input" tag="@TAG@" />
+
+        <expand macro="macro_optional_parameters">
+
+
+            <param name="sample_ploidy" type="integer" value="2" label="Ploidy (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy)" help="-ploidy,&#8209;&#8209;sample_ploidy &amp;lt;sample_ploidy&amp;gt;" />
+
+        </expand>
+
+    </xml>
+
+    <xml name="GenotypeGVCFsOutput">
+        <data format="vcf" name="gg_output_gvcf" from_work_dir="output.g.vcf" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (gVCF)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="GenotypeGVCFsPreprocessing">
+<![CDATA[
+        @token_gvcf_input_pre@
+]]>
+    </template>
+
+    <template name="GenotypeGVCFsOptions">
+<![CDATA[
+        --out output.g.vcf
+
+        @token_gvcf_input@
+
+        #set $optionals = $analysis_type.optional_parameters
+        #if $optionals.optional_parameters_enabled
+            --sample_ploidy $optionals.sample_ploidy
+        #end if
+]]>
+    </template>
+
+
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/haplotype_caller.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/haplotype_caller.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,65 @@
+<macros>
+    <xml name="HaplotypeCallerParameters" tokens="tag">
+        
+        <expand macro="macro_bam_input" tag="@TAG@" />
+
+        <conditional name="cond_usage">
+            <param name="cond_usage_selector" type="select" label="Select usage">
+                <option value="GVCF">Single-sample all-sites calling on DNAseq (GVCF mode)</option>
+            </param>
+            <when value="GVCF">
+                <expand macro="HaplotypeCallerGVCF" />
+            </when>
+        </conditional>
+
+        <expand macro="macro_optional_parameters">
+
+            <param name="sample_ploidy" type="integer" value="2" label="Ploidy (number of chromosomes) per sample. For pooled data, set to (Number of samples in each pool * Sample Ploidy)" help="-ploidy,&#8209;&#8209;sample_ploidy &amp;lt;sample_ploidy&amp;gt;" />
+
+        </expand>
+
+    </xml>
+
+    <xml name="HaplotypeCallerOutput">
+        <data format="vcf" name="hc_output_gvcf" from_work_dir="output.g.vcf" label="${tool.name} on ${on_string} (gVCF)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="HaplotypeCallerPreprocessing">
+<![CDATA[
+        @token_bam_input_pre@
+]]>
+    </template>
+
+    <template name="HaplotypeCallerOptions">
+<![CDATA[
+        --out output.g.vcf
+
+        @token_bam_input@
+
+        #set $optionals = $analysis_type.optional_parameters
+        #if $optionals.optional_parameters_enabled
+            --sample_ploidy $optionals.sample_ploidy
+        #end if
+
+        #set $usage_selector = $analysis_type.cond_usage.cond_usage_selector
+        #set $usage = $analysis_type.cond_usage
+
+        #if str($usage_selector) == 'GVCF'
+            --emitRefConfidence "GVCF"
+        #end if
+]]>
+    </template>
+
+
+
+    <xml name="HaplotypeCallerGVCF">
+        <param name="emitRefConfidence" type="select" optional="true" label="Mode for emitting reference confidence scores" help="-ERC,‑‑emitRefConfidence &amp;lt;emitRefConfidence&amp;gt;">
+              <option value="GVCF">GVCF (Reference model emitted with condensed non-variant blocks)</option>
+        </param>
+    </xml>
+
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/indel_realigner.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/indel_realigner.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,90 @@
+<macros>
+    <xml name="IndelRealignerParameters" tokens="tag">
+        
+        <expand macro="macro_bam_input" tag="@TAG@" />
+
+        <param name="targetIntervals" type="data" format="gatk_interval" label="Intervals file output from RealignerTargetCreator" help="-targetIntervals,--targetIntervals &amp;lt;targetIntervals&amp;gt;" />
+
+        <expand macro="macro_optional_parameters">
+            <repeat name="knownAlleles" title="Input VCF file(s) with known indels" help="-known,&#8209;&#8209;knownAlleles &amp;lt;knownAlleles&amp;gt;">
+                <param name="knownAllele" type="data" format="vcf" label="Variant file (VCF format)" />
+            </repeat>
+            
+            <param name="consensusDeterminationModel" type="select" label="minimum reads at a locus to enable using the entropy calculation" help="-model,&#8209;&#8209;consensusDeterminationModel &amp;lt;consensusDeterminationModel&amp;gt;">
+                <option value="USE_READS">USE_READS - Additionally uses indels already present in the original alignments of the reads</option>
+                <option value="KNOWNS_ONLY">KNOWNS_ONLYS - Uses only indels from a provided ROD of known indels</option>
+                <option value="USE_SW">USE_SW - Additionally uses 'Smith-Waterman' to generate alternate consenses</option>
+            </param>
+            <param name="LODThresholdForCleaning" type="float" value="5.0" label="LOD threshold above which the cleaner will clean" help="-LOD,&#8209;&#8209;LODThresholdForCleaning &amp;lt;LODThresholdForCleaning&amp;gt;" />
+            <!--param name="nWayOut" type="float" value="5.0" label="Generate one output file for each input (-I) bam file (not compatible with -output)" help="-nWayOut,&#45;&#45;nWayOut &amp;lt;nWayOut&amp;gt;" /-->
+        </expand>
+
+
+        <expand macro="macro_advanced_parameters">
+            <param name="entropyThreshold" type="float" value="0.15" label="Percentage of mismatches at a locus to be considered having high entropy (0.0 &lt; entropy &lt;= 1.0)" help="-entropy,&#8209;&#8209;entropyThreshold &amp;lt;entropyThreshold&amp;gt;" />
+
+            <param name="maxConsensuses" type="integer" value="30" label="Max alternate consensuses to try (necessary to improve performance in deep coverage)" help="-maxConsensuses,&#8209;&#8209;maxConsensuses &amp;lt;maxConsensuses&amp;gt;" />
+
+            <param name="maxIsizeForMovement" type="integer" value="3000" label="maximum insert size of read pairs that we attempt to realign" help="-maxIsize,&#8209;&#8209;maxIsizeForMovement &amp;lt;maxIsizeForMovement&amp;gt;" />
+
+            <param name="maxPositionalMoveAllowed" type="integer" value="200" label="Maximum positional move in basepairs that a read can be adjusted during realignment" help="-maxPosMove,&#8209;&#8209;maxPositionalMoveAllowed &amp;lt;maxPositionalMoveAllowed&amp;gt;" />
+
+            <param name="maxReadsForConsensuses" type="integer" value="120" label="Max reads used for finding the alternate consensuses (necessary to improve performance in deep coverage)" help="-greedy,&#8209;&#8209;maxReadsForConsensuses &amp;lt;maxReadsForConsensuses&amp;gt;" />
+
+            <param name="maxReadsForRealignment" type="integer" value="20000" label="Max reads allowed at an interval for realignment" help="-maxReads,&#8209;&#8209;maxReadsForRealignment &amp;lt;maxReadsForRealignment&amp;gt;" />
+
+            <param name="maxReadsInMemory" type="integer" value="150000" label="max reads allowed to be kept in memory at a time by the SAMFileWriter" help="-maxInMemory,&#8209;&#8209;maxReadsInMemory &amp;lt;maxReadsInMemory&amp;gt;" />
+
+            <param name="noOriginalAlignmentTags" type="boolean" truevalue="--noOriginalAlignmentTags" falsevalue="" label="Don't output the original cigar or alignment start tags for each realigned read in the output bam" help="-noTags,&#8209;&#8209;noOriginalAlignmentTags" />
+        </expand>
+
+    </xml>
+
+    <xml name="IndelRealignerOutput">
+        <data format="bam" name="ir_output_bam" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (BAM)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="IndelRealignerPreprocessing">
+<![CDATA[
+        @token_bam_input_pre@
+
+        ln -s -f ${analysis_type.targetIntervals} target.intervals &&
+
+        #if $analysis_type.optional_parameters.optional_parameters_enabled
+            #for $i, $knownAllele in enumerate($analysis_type.optional_parameters.knownAlleles):
+                ln -s -f ${knownAllele.knownAllele} knownAllele_${i}.vcf &&
+            #end for
+        #end if
+]]>
+    </template>
+
+    <template name="IndelRealignerOptions">
+<![CDATA[
+        --out                   ${ir_output_bam}
+
+        @token_bam_input@
+        --targetIntervals       target.intervals
+
+        #if $analysis_type.optional_parameters.optional_parameters_enabled
+            #for $i, $knownAllele in enumerate($analysis_type.optional_parameters.knownAlleles):
+                --knownAlleles knownAllele_${i}.vcf
+            #end for
+            --consensusDeterminationModel       ${analysis_type.consensusDeterminationModel}
+            --LODThresholdForCleaning           ${analysis_type.LODThresholdForCleaning}
+        #end if
+
+        #if $analysis_type.advanced_parameters.advanced_parameters_enabled
+            --entropyThreshold          ${analysis_type.advanced_parameters.entropyThreshold}
+            --maxConsensuses            ${analysis_type.advanced_parameters.maxConsensuses}
+            --maxIsizeForMovement       ${analysis_type.advanced_parameters.maxIsizeForMovement}
+            --maxPositionalMoveAllowed  ${analysis_type.advanced_parameters.maxPositionalMoveAllowed}
+            --maxReadsForConsensuses    ${analysis_type.advanced_parameters.maxReadsForConsensuses}
+            --maxReadsForRealignment    ${analysis_type.advanced_parameters.maxReadsForRealignment}
+            --maxReadsInMemory          ${analysis_type.advanced_parameters.maxReadsInMemory}
+            ${analysis_type.advanced_parameters.noOriginalAlignmentTags}
+        #end if
+]]>
+    </template>
+</macros>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/print_reads.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/print_reads.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,71 @@
+<macros>
+    <xml name="PrintReadsParameters" tokens="tag">
+        
+        <expand macro="macro_bam_input" tag="@TAG@" />
+
+        <!-- BQSR in main config -->
+
+        <expand macro="macro_optional_parameters">
+
+            <param name="number" type="integer" value="" optional="true" label="Print the first n reads from the file, discarding the rest" help="-n,&#8209;&#8209;number &amp;lt;number&amp;gt;" />
+
+            <param name="platform" type="text" value="" optional="true" label="Exclude all reads with this platform from the output" help="-platform,&#8209;&#8209;platform &amp;lt;platform&amp;gt;" />
+
+            <param name="readGroup" type="text" value="" optional="true" label="Exclude all reads with this read group from the output" help="-readGroup,&#8209;&#8209;readGroup &amp;lt;readGroup&amp;gt;" />
+
+            <param name="sample_file" type="data" format="txt" optional="true" label="File containing a list of samples (one per line). Can be specified multiple times" help="-sf,&#8209;&#8209;sample_file &amp;lt;sample_file&amp;gt;" />
+
+            <repeat name="sample_names" title="Sample names to be included in the analysis" help="-sn,‑‑sample_name &amp;lt;sample_name&amp;gt;">
+                <param name="sample_name" type="text" value="" title="Sample name to be included in the analysis" />
+            </repeat>
+            
+            <param name="simplify" type="text" truevalue="-s" falsevalue="" label="Erase all extra attributes in the read but keep the read group information" help="-s,&#8209;&#8209;simplify" />
+
+        </expand>
+
+    </xml>
+
+    <xml name="PrintReadsOutput">
+        <data format="bam" name="pr_output_bam" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (BAM)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="PrintReadsPreprocessing">
+<![CDATA[
+        @token_bam_input_pre@
+]]>
+    </template>
+
+    <template name="PrintReadsOptions">
+<![CDATA[
+        --out                   ${pr_output_bam}
+
+        @token_bam_input@
+
+        #set $optionals = $analysis_type.optional_parameters
+        #if $optionals.optional_parameters_enabled
+            #if int($optionals.number) > 0
+                --number $optionals.number
+            #end if
+            #if str($optionals.platform)
+                --platform $optionals.platform
+            #end if
+            #if str($optionals.readGroup)
+                --readGroup $optionals.readGroup
+            #end if
+            #if $optionals.sample_file
+                --sample_file $optionals.sample_file
+            #end if
+            #if $optionals.sample_names
+                #for $sample in $optionals.sample_names:
+                    --intervals ${sample.sample_name}
+                #end for
+            #end if
+            $optionals.simplify
+        #end if
+]]>
+    </template>
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/realigner_target_creator.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/realigner_target_creator.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,57 @@
+<macros>
+    <xml name="RealignerTargetCreatorParameters" tokens="tag">
+        
+        <expand macro="macro_bam_input" tag="@TAG@" />
+
+        <expand macro="macro_optional_parameters">
+            <param name="maxIntervalSize" type="integer" value="500" label="maximum interval size; any intervals larger than this value will be dropped" help="-maxInterval,&#8209;&#8209;maxIntervalSize &amp;lt;maxIntervalSize&amp;gt;" />
+            <param name="minReadsAtLocus" type="integer" value="4" label="minimum reads at a locus to enable using the entropy calculation" help="-minReads,&#8209;&#8209;minReadsAtLocus &amp;lt;minReadsAtLocus&amp;gt;" />
+            <param name="windowSize" type="integer" value="10" label="window size for calculating entropy or SNP clusters" help="-window,&#8209;&#8209;windowSize &amp;lt;windowSize&amp;gt;" />
+
+            <param name="mismatchFraction" type="float" value="0.0" label="fraction of base qualities needing to mismatch for a position to have high entropy" help="-mismatch,&#8209;&#8209;mismatchFraction &amp;lt;mismatchFraction&amp;gt;" />
+            <repeat name="rod_bindings" title="Input VCF files with known indels" help="-known,&#8209;&#8209;known &amp;lt;known&amp;gt;">
+                <param name="input_rod" type="data" format="vcf" label="Variant file (VCF format)" />
+            </repeat>
+        </expand>
+        
+    </xml>
+
+    <xml name="RealignerTargetCreatorOutput">
+        <data format="gatk_interval" name="rtc_output_intervals" label="${tool.name} - ${analysis_type.analysis_type_selector} on ${on_string} (GATK intervals)">
+            <yield />
+        </data>
+    </xml>
+
+    <template name="RealignerTargetCreatorPreprocessing">
+<![CDATA[
+        @token_bam_input_pre@
+
+        #if $analysis_type.optional_parameters.optional_parameters_enabled
+            #for $i, $rod_binding in enumerate($analysis_type.optional_parameters.rod_bindings):
+                ln -s -f ${rod_binding.input_rod} rod_binding_${i}.vcf &&
+            #end for
+        #end if
+]]>
+    </template>
+
+    <template name="RealignerTargetCreatorOptions">
+<![CDATA[
+        --out                   ${rtc_output_intervals}
+
+        @token_bam_input@
+
+        #if $analysis_type.optional_parameters.optional_parameters_enabled
+            --maxIntervalSize       ${analysis_type.optional_parameters.maxIntervalSize}
+            --minReadsAtLocus       ${analysis_type.optional_parameters.minReadsAtLocus}
+            --windowSize            ${analysis_type.optional_parameters.windowSize}
+            --mismatchFraction      ${analysis_type.optional_parameters.mismatchFraction}
+
+            #for $i, $rod_binding in enumerate($analysis_type.optional_parameters.rod_bindings):
+                --known rod_binding_${i}.vcf
+            #end for
+        #end if
+]]>
+    </template>
+</macros>
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/tool-data/destinations.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/tool-data/destinations.py Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,62 @@
+from galaxy.jobs import JobDestination
+import os
+import sys
+import json
+import cStringIO
+import logging
+
+log = logging.getLogger( __name__ )
+
+
+def dump(obj, nested_level=0, output=sys.stdout):
+    spacing = '   '
+    if type(obj) == dict:
+        print >> output, '%s{' % ((nested_level) * spacing)
+        for k, v in obj.items():
+            if hasattr(v, '__iter__'):
+                print >> output, '%s%s:' % ((nested_level + 1) * spacing, k)
+                dump(v, nested_level + 1, output)
+            else:
+                print >> output, '%s%s: %s' % ((nested_level + 1) * spacing, k, v)
+        print >> output, '%s}' % (nested_level * spacing)
+    elif type(obj) == list:
+        print >> output, '%s[' % ((nested_level) * spacing)
+        for v in obj:
+            if hasattr(v, '__iter__'):
+                dump(v, nested_level + 1, output)
+            else:
+                print >> output, '%s%s' % ((nested_level + 1) * spacing, v)
+        print >> output, '%s]' % ((nested_level) * spacing)
+    else:
+        print >> output, '%s%s' % (nested_level * spacing, obj)
+
+
+def dynamic_slurm_cluster_gatk(job, tool_id):
+    # Allocate extra time
+    inp_data = dict( [ ( da.name, da.dataset ) for da in job.input_datasets ] )
+    inp_data.update( [ ( da.name, da.dataset ) for da in job.input_library_datasets ] )
+    inp_data.update( [ ( da.name, json.loads(da.value) ) for da in job.parameters ] )
+    out = cStringIO.StringIO()
+    dump(inp_data, 1, out)
+    log.debug(out.getvalue())
+    
+    nativeSpecs = '--nodes=1 --ntasks=1'
+    
+    # runner doesn't allow to specify --cpus-per-task
+    # thus the mem calculation gets messy with more than 1 node
+    # --> translate nt ==> nodes, nct ==> ntasks
+    
+    if 'cond_threads' not in inp_data:
+        return JobDestination(runner="slurm")
+    
+    if inp_data['cond_threads']['cond_threads_enabled'] == "True":
+        nNodes = int(inp_data['cond_threads']['nt'])
+        nCPU   = int(inp_data['cond_threads']['nct'])
+        nMEM   = int(inp_data['cond_threads']['mem'])
+        if nMEM > 0:
+            nativeSpecs = '--nodes=%d --ntasks=%d --mem=%d' % (nNodes, nCPU*nNodes, nMEM)
+        else:
+            nativeSpecs = '--nodes=%d --ntasks=%d' % (nNodes, nCPU*nNodes)
+        
+    return JobDestination(runner="slurm", params={"nativeSpecification": nativeSpecs})
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/tool-data/picard_index.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/tool-data/picard_index.loc.sample Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,26 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of Picard dict and associated files. You will need
+#to create these data files and then create a picard_index.loc file 
+#similar to this one (store it in this directory) that points to 
+#the directories in which those files are stored. The picard_index.loc 
+#file has this format (longer white space is the TAB character):
+#
+#<unique_build_id> <dbkey> <display_name> <fasta_file_path>
+#
+#So, for example, if you had hg18 indexed and stored in 
+#/depot/data2/galaxy/srma/hg18/,
+#then the srma_index.loc entry would look like this:
+#
+#hg18 hg18 hg18 Pretty /depot/data2/galaxy/picard/hg18/hg18.fa
+#
+#and your /depot/data2/galaxy/srma/hg18/ directory
+#would contain the following three files:
+#hg18.fa
+#hg18.dict
+#hg18.fa.fai
+#
+#The dictionary file for each reference (ex. hg18.dict) must be 
+#created via Picard (http://picard.sourceforge.net). Note that
+#the dict file does not have the .fa extension although the
+#path list in the loc file does include it.
+#
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/tool_data_table_conf.xml.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/tool_data_table_conf.xml.sample Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,7 @@
+<tables>
+    <!-- Location of Picard dict files valid for GATK -->
+    <table name="picard_indexes" comment_char="#">
+        <columns>value, dbkey, name, path</columns>
+        <file path="tool-data/picard_index.loc" />
+    </table>
+</tables>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/gatk/tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/gatk/tool_dependencies.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <set_environment version="1.0">
+        <environment_variable action="set_to" name="GATK_PATH">/mnt/galaxy/tools/GATK/3.4-0</environment_variable>
+    </set_environment>
+    <!--
+    Use GATK_SITE_OPTIONS to set additional parameters that should be inserted in every GATK call.
+    The intended use case was to prohibit GATK to collect and send data.
+    For example:
+
+    -et "NO_ET" -K "/data/gatk_key_file" ##ET no phone home
+    -->
+    <set_environment version="1.0">
+        <environment_variable action="set_to" name="GATK_SITE_OPTIONS"> </environment_variable>
+    </set_environment>
+    <package name="package_r_for_gatk_3_4_0" version="3.1.2.1">
+        <repository changeset_revision="49c62e9b71ad" name="package_r_for_gatk_3_4_0" owner="avowinkel" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/package_r_for_gatk_3_4_0/tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/package_r_for_gatk_3_4_0/tool_dependencies.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="R" version="3.1.2">
+        <repository changeset_revision="9f2fddb9d6e2" name="package_r_3_1_2" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="package_r_for_gatk_3_4_0" version="3.1.2.1">
+        <install version="1.0">
+            <actions>
+                <action type="setup_r_environment">
+
+                    <repository changeset_revision="9f2fddb9d6e2" name="package_r_3_1_2" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu">
+                        <package name="R" version="3.1.2" />
+                    </repository>
+                    <package>https://github.com/cran/stringi/archive/0.5-5.tar.gz</package>
+                    <package>https://github.com/cran/magrittr/archive/1.5.tar.gz</package>
+                    <package>https://github.com/cran/stringr/archive/1.0.0.tar.gz</package>
+                    <package>https://github.com/cran/RColorBrewer/archive/1.1-2.tar.gz</package>
+                    <package>https://github.com/cran/dichromat/archive/2.0-0.tar.gz</package>
+                    <package>https://github.com/cran/colorspace/archive/1.2-6.tar.gz</package>
+                    <package>https://github.com/cran/munsell/archive/0.4.2.tar.gz</package>
+                    <package>https://github.com/cran/labeling/archive/0.3.tar.gz</package>
+                    <package>https://github.com/cran/Rcpp/archive/0.11.6.tar.gz</package>
+                    <package>https://github.com/cran/digest/archive/0.6.8.tar.gz</package>
+                    <package>https://github.com/cran/gtable/archive/0.1.2.tar.gz</package>
+                    <package>https://github.com/cran/bitops/archive/1.0-6.tar.gz</package>
+                    <package>https://github.com/cran/caTools/archive/1.17.1.tar.gz</package>
+                    <package>https://github.com/cran/gtools/archive/3.5.0.tar.gz</package>
+                    <package>https://github.com/cran/gdata/archive/2.17.0.tar.gz</package>
+                    <package>https://github.com/cran/gsalib/archive/2.1.tar.gz</package>
+                    <package>https://github.com/cran/gplots/archive/2.17.0.tar.gz</package>
+                    <package>https://github.com/cran/plyr/archive/1.8.3.tar.gz</package>
+                    <package>https://github.com/cran/reshape/archive/0.8.5.tar.gz</package>
+                    <package>https://github.com/cran/reshape2/archive/1.4.1.tar.gz</package>
+                    <package>https://github.com/cran/scales/archive/0.2.5.tar.gz</package>
+                    <package>https://github.com/cran/proto/archive/0.3-10.tar.gz</package>
+                    <package>https://github.com/cran/MASS/archive/7.3-43.tar.gz</package>
+                    <package>https://github.com/cran/ggplot2/archive/1.0.1.tar.gz</package>
+                </action>
+            </actions>
+        </install>
+        <readme>
+            ggplot2 is a plotting system for R, based on the grammar of graphics, which tries to take the good parts of base and lattice graphics and none of the bad parts.
+            It takes care of many of the fiddly details that make plotting a hassle (like drawing legends) as well as providing a powerful model of graphics that makes it easy to produce complex multi-layered graphics.
+
+            http://ggplot2.org/
+        </readme>
+    </package>
+</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/suite_samtools_1_2/repository_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/suite_samtools_1_2/repository_dependencies.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<repositories description="A suite of Galaxy tools designed to work with version 1.2 of the SAMtools package.">
+    <repository changeset_revision="cf875cbe2df4" name="data_manager_sam_fasta_index_builder" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="af7c50162f0b" name="bam_to_sam" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="d04d9f1c6791" name="sam_to_bam" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="8c3472790020" name="samtools_bedcov" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="1ebb4ecdc1ef" name="samtools_calmd" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="0072bf593791" name="samtools_flagstat" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="87398ae795c7" name="samtools_idxstats" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="c6fdfe3331d6" name="samtools_mpileup" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="020e144b5f78" name="samtools_reheader" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="3735f950b2f5" name="samtools_rmdup" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="2b474ebbfc7d" name="samtools_slice_bam" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="a430da4f04cd" name="samtools_sort" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="57f3e32f809d" name="samtools_split" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <repository changeset_revision="0d71d9467847" name="samtools_stats" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
+</repositories>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/BAM_preprocessingPairs.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/BAM_preprocessingPairs.pl Thu Oct 03 10:42:15 2019 -0400
[
b'@@ -0,0 +1,340 @@\n+#!/usr/bin/perl -w\n+\n+use strict;\n+use warnings;\n+use Getopt::Std;\n+my $version = \'0.5_galaxy\';\n+\n+my $SAMTOOLS_BIN_DIR="/bioinfo/local/samtools";\n+\n+my %opts = ( t=>1, p=>1, n=>1000000, f=>3, s=>0, S=>10000, o=>"." );\n+\n+getopts(\'dt:p:n:f:s:S:o:b:l:x:N:\', \\%opts); #GALAXY \n+\n+my $working_dir=($opts{o} ne ".")? $opts{o}:"working directory";\n+\n+my $pt_bad_mates_file=$opts{b};  #GALAXY \n+my $pt_log_file=$opts{l}; #GALAXY \n+my $pt_good_mates_file=$opts{x} if($opts{d}); #GALAXY \n+\n+\n+die(qq/\n+    \n+Description:\n+    \n+    Preprocessing of mates to get anomalously mapped mate-pair\\/paired-end reads as input\n+    for SVDetect.\n+\n+    From all pairs mapped onto the reference genome, this script outputs abnormal pairs:\n+        - mapped on two different chromosomes\n+        - with an incorrect strand orientation and\\/or pair order\n+        - with an insert size distance +- sigma threshold\n+    into a file <prefix.ab.bam\\/sam>\n+    \n+    -BAM\\/SAM File input format only, sorted by read names\n+\n+    Version : $version\n+    SAMtools required for BAM files\n+    \n+    \n+Usage:   BAM_preprocessingPairs.pl [options] <all_mate_file.sorted.bam\\/sam>\n+\n+Options: -t BOOLEAN   read type: =1 (Illumina), =0 (SOLiD) [$opts{t}]\n+         -p BOOLEAN   pair type: =1 (paired-end), =0 (mate-pair)  [$opts{p}]\n+         -n INTEGER   number of pairs for calculating mu and sigma lengths [$opts{n}]\n+\t -s INTEGER   minimum value of ISIZE for calculating mu and sigma lengths [$opts{s}]\n+\t -S INTEGER   maximum value of ISIZE for calculating mu and sigma lengths [$opts{S}]\n+         -f REAL      minimal number of sigma fold for filtering pairs [$opts{f}]\n+         -d           dump normal pairs into a file [<prefix.norm.bam\\/sam>] (optional)\n+\t -o STRING    output directory [$working_dir]\n+\n+\\n/) if (@ARGV == 0 && -t STDIN);\n+\n+unless (-d $opts{o}){\n+\tmkdir $opts{o} or die;\n+}\n+$opts{o}.="/" if($opts{o}!~/\\/$/);\n+\n+my $mates_file=shift(@ARGV);\n+\n+$mates_file=readlink($mates_file);\n+\n+my $bad_mates_file=(split(/\\//,$mates_file))[$#_];\n+\n+if($bad_mates_file=~/.(s|b)am$/){\n+    $bad_mates_file=~s/.(b|s)am$/.ab.sam/;\n+    $bad_mates_file=$opts{o}.$bad_mates_file;\n+}\n+\n+else{\n+    die "Error: mate_file with the extension <.bam> or <.sam> needed !\\n";\n+}\n+\n+my $good_mates_file;\n+if($opts{d}){\n+    $good_mates_file=(split(/\\//,$mates_file))[$#_];\n+    $good_mates_file=~s/.(b|s)am$/.norm.sam/;\n+    $good_mates_file=$opts{o}.$good_mates_file;\n+}\n+\n+my $log_file=$opts{o}.$opts{N}.".svdetect_preprocessing.log"; #GALAXY \n+\n+#------------------------------------------------------------------------------#\n+#Calculate mu and sigma\n+\n+open LOG,">$log_file" or die "$0: can\'t open ".$log_file.":$!\\n";\n+\n+print LOG "\\# Calculating mu and sigma lengths...\\n";\n+print LOG "-- file=$mates_file\\n";\n+print LOG "-- n=$opts{n}\\n";\n+print LOG "-- ISIZE min=$opts{s}, max=$opts{S}\\n";\n+\n+my ($record, $sumX,$sumX2) = (0,0,0);\n+my $warn=$opts{n}/10;\n+my $prev_pair="FIRST";\n+\n+my $bam=($mates_file =~ /.bam$/)? 1:0;\n+\n+if($bam){\n+    open(MATES, "${SAMTOOLS_BIN_DIR}/samtools view $mates_file |") or die "$0: can\'t open ".$mates_file.":$!\\n";\n+}else{\n+    open MATES, "<".$mates_file or die "$0: can\'t open ".$mates_file.":$!\\n";\n+}\n+\n+while(<MATES>){\n+    \n+    my @t=split;\n+    \n+    next if ($t[0]=~/^@/);\n+    \n+    my $current_pair=$t[0];\n+    next if($current_pair eq $prev_pair);\n+    $prev_pair=$current_pair;                                                   \n+    \n+    my ($chr1,$chr2,$length)=($t[2],$t[6],abs($t[8]));\n+    \n+    next if (($t[1]&0x0004) || ($t[1]&0x0008));\n+    next if ($length<$opts{s} || $length>$opts{S}) ;\n+    \n+    if($chr2 eq "="){\n+\n+        $sumX += $length;\t\t\t\t\t\t\t#add to sum and sum^2 for mean and variance calculation\n+\t$sumX2 += $length*$length;\n+        $record++;\n+    }\n+\n+    if($record>$warn){\n+\tprint LOG "-- $warn pairs analysed\\n";\n+        $warn+=$warn;\n+    }\n+    \n+    last if ($record>$opts{n});\n+    \n+}\n+close (MATES);\n+\n+$record--;\n+my'..b'ad=-1;\n+        $count{unmap}++;\n+        $record++;\n+        next;\n+        \n+    }\n+    \n+    my $strand1 = (($t[1]&0x0010))? \'R\':\'F\';\n+    my $strand2 = (($t[1]&0x0020))? \'R\':\'F\';\n+    my $order1  = (($t[1]&0x0040))? \'1\':\'2\';\n+    my $order2  = (($t[1]&0x0080))? \'1\':\'2\';\n+    \n+    if($order1 == 2){\n+        ($strand1,$strand2)=($strand2,$strand1);\n+        ($chr1,$chr2)=($chr2,$chr1);\n+        ($pos1,$pos2)=($pos2,$pos1);\n+        ($order1,$order2)=($order2,$order1);\n+    }\n+    \n+    my $sense=$strand1.$strand2;\n+    \n+    if($chr1 ne "=" && $chr2 ne "="){\n+        $bad=1;\n+        $count{chr}++;\n+    }\n+    \n+    if($opts{p}){ #paired-end\n+        if(!(($sense eq "FR" && $pos1<$pos2) || ($sense eq "RF" && $pos2<$pos1))){\n+            $bad=1;\n+            $count{sense}++;\n+        }\n+    }else{ #mate-pair\n+        if($opts{t}){ #Illumina\n+            if(!(($sense eq "FR" && $pos2<$pos1) || ($sense eq "RF" && $pos1<$pos2))){\n+            $bad=1;\n+            $count{sense}++;\n+            }\n+        }else{ #SOLiD\n+            if(!(($sense eq "FF" && $pos2<$pos1) || ($sense eq "RR" && $pos1<$pos2))){\n+            $bad=1;\n+            $count{sense}++;\n+            }\n+        }\n+    }\n+    \n+    if(($chr1 eq "=" || $chr2 eq "=") && ($length <$mu - $opts{f}*$sigma || $length>$mu + $opts{f}*$sigma)){\n+        $bad=1;\n+        $count{dist}++;\n+    }\n+    \n+    if($bad){\n+        print AB;\n+        $count{ab}++;\n+        $prev_bad=$bad;\n+    }else{\n+        print NORM if ($opts{d});\n+        $count{norm}++;\n+        $prev_bad=$bad;\n+    }\n+    \n+    $record++;\n+    \n+    if($record>$warn){\n+        print LOG "-- $warn pairs analysed\\n";\n+        $warn+=100000;\n+    }\n+}\n+\n+close AB;\n+close NORM if($opts{d});\n+\n+print LOG "-- Total : $record pairs analysed\\n";\n+print LOG "-- $count{unmap} pairs whose one or both reads are unmapped\\n";\n+print LOG "-- ".($count{ab}+$count{norm})." mapped pairs\\n";\n+print LOG "---- $count{ab} abnormal mapped pairs\\n";\n+print LOG "------ $count{chr} pairs mapped on two different chromosomes\\n";\n+print LOG "------ $count{sense} pairs with incorrect strand orientation and\\/or pair order\\n";\n+print LOG "------ $count{dist} pairs with incorrect insert size distance\\n";\n+print LOG "--- $count{norm} correct mapped pairs\\n";\n+\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+#OUTPUT\n+\n+if($bam){\n+    \n+    my $bam_file=$bad_mates_file;\n+    $bam_file=~s/.sam$/.bam/;\n+    print LOG "\\# Converting sam to bam for abnormal mapped pairs\\n";\n+    system("${SAMTOOLS_BIN_DIR}/samtools view -bS $bad_mates_file > $bam_file 2>".$opts{o}."samtools.log");\n+    unlink($bad_mates_file);\n+    print LOG "-- output created: $bam_file\\n";\n+\n+    system "rm $pt_bad_mates_file ; ln -s $bam_file $pt_bad_mates_file"; #GALAXY\n+    \n+    if($opts{d}){\n+        $bam_file=$good_mates_file;\n+        $bam_file=~s/.sam$/.bam/;\n+        print LOG "\\# Converting sam to bam for correct mapped pairs\\n";\n+        system("${SAMTOOLS_BIN_DIR}/samtools view -bS $good_mates_file > $bam_file 2>".$opts{o}."samtools.log");\n+        unlink($good_mates_file);\n+        print LOG "-- output created: $bam_file\\n";\n+\n+\tsystem "rm $pt_good_mates_file ; ln -s $bam_file $pt_good_mates_file"; #GALAXY\n+\n+    }\n+\n+}\n+\n+else{\n+    print LOG "-- output created: $bad_mates_file\\n";\n+    print LOG "-- output created: $good_mates_file\\n" if($opts{d});\n+}\n+\n+close LOG;\n+\n+system "rm $pt_log_file ; ln -s $log_file $pt_log_file"; #GALAXY\n+\n+\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+sub decimal{\n+    \n+  my $num=shift;\n+  my $digs_to_cut=shift;\n+\n+  $num=sprintf("%.".($digs_to_cut-1)."f", $num) if ($num=~/\\d+\\.(\\d){$digs_to_cut,}/);\n+\n+  return $num;\n+}\n+#------------------------------------------------------------------------------#\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/BAM_preprocessingPairs.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/BAM_preprocessingPairs.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,77 @@
+<tool id="svdetect_preprocessing" name="BAM preprocessing">
+
+  <description>to get abnormal pairs</description>
+
+  <command interpreter="perl"> BAM_preprocessingPairs.pl -t '$readType' -p '$pairType' -n '$nbrePair' -s '$isizeMin' -S '$isizeMax' -f '$foldPair' -o $__new_file_path__/svdetect -b '$abBAM' -l '$log' -N $sample_name
+ #if $newBam.pairNormal=="yes" 
+ -d -x '$normBAM'
+ #end if
+ '$inputBam'
+  </command>
+
+  <inputs>
+    <param name="sample_name" type="text" value="sample" label="Sample Name"/>
+    <param name="inputBam" type="data" format="bam" label="BAM input file"/>
+    <param name="readType" type="select" label="Read type">
+ <option value="1">Illumina</option>
+ <option value="0">SOLiD</option>
+   </param>
+   <param name="pairType" type="select" label="Library type">
+ <option value="1">Paired-end</option>
+ <option value="0">Mate-Pair</option>
+   </param>
+   <conditional name="newBam">
+   <param name="pairNormal" type="select" label="Do you want an additional bam file listing concordant mapped pairs?" help="Dump normal pairs into a file sample_name.norm.bam/sam">
+ <option value="no">No</option>
+ <option value="yes">Yes</option>
+   </param>
+    <when value="yes">
+   <!-- do nothing here -->
+    </when>
+    <when value="no">
+  <!-- do nothing here -->
+    </when>
+   </conditional>
+   <param name="nbrePair" value="1000000" type="integer" size="30" label="Number of pairs for calculating mu (µ) and sigma (σ) lengths"/>
+   <param name="isizeMin" value="0" type="integer" size="30" label="Minimum value of ISIZE for calculating mu (µ) and sigma (σ) lengths"/>
+   <param name="isizeMax" value="10000" type="integer" size="30" label="Maximum value of ISIZE for calculating mu (µ)and sigma( σ) lengths"/>
+   <param name="foldPair" value="3" type="float" size="30" label="Minimal number of sigma (σ) fold for filtering pairs"/>
+  </inputs>
+
+  <outputs>
+    <data format="bam" name="abBAM" label="${$sample_name}.ab.bam"/> 
+    <data format="txt" name="log" label="${$sample_name}.svdetect_preprocessing.log"/>
+    <data format="bam" name="normBAM" label="${$sample_name}.norm.bam">
+    <filter>newBam['pairNormal'] == 'yes'</filter>
+    </data> 
+  </outputs>
+
+  <help>
+
+**What it does**
+
+Bam_preprocessingPairs - Version 0.5
+
+Preprocessing of mates to get anomalously mapped mate-pair/paired-end reads as input for SVDetect.
+
+From all pairs mapped onto the reference genome, this script outputs abnormal pairs:
+
+ * mapped on two different chromosomes
+ * with an incorrect strand orientation and/or pair order
+ * with an insert size distance +- sigma threshold
+
+into a file prefix.ab.bam/sam sorted by read names
+    
+-BAM/SAM File input format only.
+  
+SAMtools required for BAM files
+
+-----
+
+.. class:: infomark
+
+Contact Bruno Zeitouni (svdetect@curie.fr) for any questions or concerns about the Galaxy implementation of SVDetect.
+
+  </help>
+
+</tool>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_compare.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_compare.pl Thu Oct 03 10:42:15 2019 -0400
[
b'@@ -0,0 +1,716 @@\n+#!/usr/bin/perl -w\n+\n+=pod\n+\n+=head1 NAME\n+\n+SVDetect Compare for Galaxy\n+\n+Version: 0.8b for Galaxy\n+\n+=head1 SYNOPSIS\n+\n+SVDetect_compare.pl links2compare -conf <configuration_file> [-help] [-man]\n+\n+=cut\n+\n+# -------------------------------------------------------------------\n+\n+use strict;\n+use warnings;\n+\n+use Pod::Usage;\n+use Getopt::Long;\n+\n+use Config::General;\n+use Tie::IxHash;\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#PARSE THE COMMAND LINE\n+my %OPT;\n+GetOptions(\\%OPT,\n+\t   \'conf=s\',\n+\t   \'out1=s\', #GALAXY\n+\t   \'out2=s\', #GALAXY\n+\t   \'out3=s\', #GALAXY\n+\t   \'out4=s\', #GALAXY\n+\t   \'out5=s\', #GALAXY\n+\t   \'out6=s\', #GALAXY\n+\t   \'out7=s\', #GALAXY\n+\t   \'out8=s\', #GALAXY\n+\t   \'out9=s\', #GALAXY\n+\t   \'l=s\', #GALAXY\n+\t   \'N=s\', #GALAXY\n+\t   \'help\',\n+           \'man\'\n+\t  );\n+\n+pod2usage() if $OPT{help};\n+pod2usage(-verbose=>2) if $OPT{man};\n+pod2usage(-message=> "$!", -exitval => 2) if (!defined $OPT{conf});\n+\n+\n+pod2usage() if(@ARGV<1);\n+\n+tie (my %func, \'Tie::IxHash\',links2compare=>\\&links2compare);\n+\n+foreach my $command (@ARGV){\n+    pod2usage(-message=> "Unknown command \\"$command\\"", -exitval => 2) if (!defined($func{$command}));\n+}\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#READ THE CONFIGURATION FILE\n+my $conf=Config::General->new(    -ConfigFile        => $OPT{conf},\n+                                  -Tie => "Tie::IxHash",\n+                                  -AllowMultiOptions => 1,\n+\t\t\t\t  -LowerCaseNames    => 1,\n+\t\t\t\t  -AutoTrue => 1);\n+my %CONF= $conf->getall;\n+validateconfiguration(\\%CONF);\t\t\t\t\t\t\t#validation of the configuration parameters\n+\n+\n+my $SAMTOOLS_BIN_DIR="/bioinfo/local/samtools"; #GALAXY\n+my $BEDTOOLS_BIN_DIR="/bioinfo/local/BEDTools/bin"; #GALAXY\n+\n+my $pt_log_file=$OPT{l}; #GALAXY\n+my $log_file=$CONF{general}{output_dir}.$OPT{N}.".svdetect_compare.log"; #GALAXY\n+open LOG,">$log_file" or die "$0: can\'t open ".$log_file.":$!\\n";#GALAXY\n+\n+my @pt_sv_file=($OPT{out1},$OPT{out2},$OPT{out3}) if($OPT{out1}); #GALAXY common,sample,reference\n+my @pt_circos_file=($OPT{out4},$OPT{out5},$OPT{out6}) if($OPT{out4}); #GALAXY common,sample,reference\n+my @pt_bed_file=($OPT{out7},$OPT{out8},$OPT{out9}) if($OPT{out7}); #GALAXY common,sample,reference\n+\n+$CONF{compare}{sample_link_file}=readlink($CONF{compare}{sample_link_file});#GALAXY\n+$CONF{compare}{sample_link_file}=~s/.sv.txt//; #GALAXY\n+\n+$CONF{compare}{reference_link_file}=readlink($CONF{compare}{reference_link_file});#GALAXY\n+$CONF{compare}{reference_link_file}=~s/.sv.txt//; #GALAXY\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#COMMAND EXECUTION\n+foreach my $command (@ARGV){\n+    &{$func{$command}}();\n+}\n+print LOG "-- end\\n";\n+\n+close LOG;#GALAXY\n+system "rm $pt_log_file ; ln -s $log_file $pt_log_file"; #GALAXY\n+\n+exit(0);\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#FUNCTIONS\n+\n+# -----------------------------------------------------------------------------#\n+#MAIN FUNCTION number 5:Comparison between samples, common or specific links\n+sub links2compare{\n+    \n+    my @compare_files;\n+    \n+    compareSamples($CONF{general}{output_dir},\n+\t\t   $CONF{compare}{list_samples},\n+\t\t   $CONF{compare}{sample_link_file},\n+\t\t   $CONF{compare}{reference_link_file},\n+\t\t   $CONF{compare}{min_overlap},\n+\t\t   $CONF{compare}{same_sv_type},\n+\t\t   \\@compare_files);\n+\n+    my $pt_ind=0;\n+ \n+    for my $input_file (@comp'..b'->[$i] eq \'F\'){\n+\t    $starts->[$i]=$positions->[$i];\n+\t    $ends->[$i]=$positions->[$i]+$tag_length->{$end_order->[$i]}-1;\n+\t}else{\n+\t    $starts->[$i]=$positions->[$i]-$tag_length->{$end_order->[$i]}+1;\n+\t    $ends->[$i]=$positions->[$i];\n+\t}\n+    }    \n+}\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+sub floor {\n+    my $nb = $_[0];\n+    $nb=~ s/\\..*//;\n+    return $nb;\n+}\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+sub decimal{\n+    \n+  my $num=shift;\n+  my $digs_to_cut=shift;\n+\n+  $num=sprintf("%.".($digs_to_cut-1)."f", $num) if ($num=~/\\d+\\.(\\d){$digs_to_cut,}/);\n+\n+  return $num;\n+}\n+\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+#Sort links according the concerned chromosomes and their coordinates\n+sub sortLinks{\n+    \n+    my ($links_file,$sortedlinks_file,$unique)=@_;\n+    \n+    print LOG "# Sorting links...\\n";\n+    \n+    my $pipe=($unique)? "| sort -u":"";\n+    system "sort -k 1,1 -k 4,4 -k 2,2n -k 5,5n -k 8,8n $links_file $pipe > $sortedlinks_file";\n+\n+}\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+sub getColor{\n+\n+    my($count,$hcolor,$format)=@_;\n+    for my $col ( keys % { $hcolor} ) {\n+       return $col if($count>=$hcolor->{$col}->[0] && $count<=$hcolor->{$col}->[1]);\n+    }\n+    return "white" if($format eq "circos");\n+    return "255,255,255" if($format eq "bed");\n+}\n+#------------------------------------------------------------------------------#\n+#------------------------------------------------------------------------------#\n+#check if the configuration file is correct\n+sub validateconfiguration{\n+    \n+    my %conf=%{$_[0]};\n+    my $list_prgs="@ARGV";\n+    \n+    my @circos_params=qw(organism_id colorcode);\n+    my @bed_params=qw(colorcode);\n+    my @compare_params=qw(list_samples list_read_lengths sample_link_file reference_link_file);\n+    \n+    unless (defined($conf{general}{output_dir})) {\n+\t$conf{general}{output_dir} = ".";\n+    }\n+    unless (-d $conf{general}{output_dir}){\n+\tmkdir $conf{general}{output_dir} or die;\n+    }\n+    $conf{general}{output_dir}.="/" if($conf{general}{output_dir}!~/\\/$/);\n+\n+    \n+    if($list_prgs=~/links2compare/){\n+\tforeach my $p (@compare_params) {\n+\t    die("Error Config : The compare parameter \\"$p\\" is not defined\\n") if (!defined $conf{compare}{$p});\n+\t}\n+\t\n+\tunless (defined($conf{compare}{same_sv_type})) {\n+\t    $conf{compare}{same_sv_type} = 0;\n+\t}\n+\t\n+\tunless (defined($conf{compare}{min_overlap})) {\n+\t    $conf{compare}{min_overlap} = 1E-9;\n+\t}\n+\t\n+\tif($conf{compare}{circos_output}){\n+\t    foreach my $p (@circos_params) {\n+\t\tnext if($list_prgs=~/^ratio/ && $p eq "colorcode");\n+\t\tdie("Error Config : The circos parameter \\"$p\\" is not defined\\n") if (!defined $conf{circos}{$p});\n+\t    }\n+\t}\n+\tif($conf{compare}{bed_output}){\n+\t    foreach my $p (@bed_params) {\n+\t\tdie("Error Config : The bed parameter \\"$p\\" is not defined\\n") if (!defined $conf{bed}{$p});\n+\t    }\n+\t    die("Error Config : The compare parameter \\"list_read_lengths\\" is not defined\\n") if (!defined $conf{compare}{list_read_lengths});\n+\n+\t    my @samples=split(",",$conf{compare}{list_samples});\n+\t    my @read_lengths=split(",",$conf{compare}{list_read_lengths});\n+\t    for my $i (0..$#samples){\n+\t\tmy @l=split("-",$read_lengths[$i]);\n+\t\t$conf{compare}{read_lengths}{$samples[$i]}={ 1=> $l[0], 2=> $l[1]};\n+\t    }\n+\t}\n+    }\n+   \n+    \n+}\n+#------------------------------------------------------------------------------#\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_compare.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_compare.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,218 @@
+<tool id="svdetect_compare" name="Compare">
+
+<description>structural variants between two samples</description>
+
+<command interpreter="perl">SVDetect_compare.pl links2compare -conf '$config_file' -l '$log_file' -N '$sample_name.$reference_name'
+
+#if $links2SV
+-out1 '$common_sv_file'
+-out2 '$sample_sv_file'
+-out3 '$reference_sv_file'
+#end if
+
+#if $file_conversion.file_conversion_select=="convert" and $file_conversion.links2circos
+-out4 '$common_circos_file'
+-out5 '$sample_circos_file'
+-out6 '$reference_circos_file'
+#end if
+
+#if $file_conversion.file_conversion_select=="convert" and $file_conversion.links2bed
+-out7 '$common_bed_file'
+-out8 '$sample_bed_file'
+-out9 '$reference_bed_file'
+#end if
+
+</command>
+
+<inputs>
+ <param name="sample_name" type="text" size="20" value="sample" label="Sample Name"/>
+ <param name="sample_read1_length" type="integer" size="10" value="50" label="Sample read 1 length (bp)"/>
+ <param name="sample_read2_length" type="integer" size="10" value="50" label="Sample read 2 length (bp)"/>
+    <param name="sample_mates_file" type="data" format="sv" label="Sample input file" help=".sv file"/>
+
+ <param name="reference_name" type="text" size="20" value="reference" label="Reference Name"/>
+ <param name="reference_read1_length" type="integer" size="10" value="50" label="Reference read 1 length (bp)"/>
+ <param name="reference_read2_length" type="integer" size="10" value="50" label="Reference read 2 length (bp)"/>
+    <param name="reference_mates_file" type="data" format="sv" label="Reference input file" help=".sv file"/>
+
+ <param name="min_overlap" type="float" size="10"  value="0.05" label="Minimum overlap of links required as a fraction"/>
+ <param name="same_sv_type" label="Comparison of SVs with the same type only ?" type="boolean" truevalue="1" falsevalue="0" checked="True"/>
+
+ <param name="links2SV" label="Do you want to have filtered links in a tabulated file format showing significant SVs?" type="boolean" truevalue="1" falsevalue="0" checked="True"/>
+
+ <conditional name="file_conversion">
+ <param name="file_conversion_select" type="select" label="Output file conversion" help="Converts filtered links to Circos/BED files format for graphical view of SVs">
+ <option value="do_not_convert">No</option>
+ <option value="convert">Yes</option>
+ </param>
+ <when value="do_not_convert">
+ <!-- do nothing here -->
+ </when>
+ <when value="convert">
+ <param name="links2circos" label="Converts the link list to the Circos link format" type="boolean" truevalue="1" falsevalue="0" checked="True"/>
+ <param name="links2bed" label="Converts the link list to the UCSC BED format" type="boolean" truevalue="1" falsevalue="0" checked="False"/>
+ <param name="organism_id" type="text" size="10" value="hs" label="Organism ID"/>
+ <repeat name="color_code" title="Color-code" min="1" max="7">
+ <param name="color" type="select" label="Color">
+ <option value="grey">grey</option>
+ <option value="black">black</option>
+ <option value="blue">blue</option>
+ <option value="green">green</option>
+ <option value="purple">purple</option>
+ <option value="orange">orange</option>
+ <option value="red">red</option>
+ </param>
+ <param name="interval" type="text" value="1,3" label="Interval"/>
+ </repeat>
+ </when>
+ </conditional>
+</inputs>
+
+
+
+<outputs>
+ <data format="sv" name="common_sv_file" label="common.compared.sv">
+ <filter>links2SV is True</filter>
+ </data>
+ <data format="sv" name="sample_sv_file" label="${sample_name}.compared.sv">
+ <filter>links2SV is True</filter>
+ </data>
+ <data format="sv" name="reference_sv_file" label="${reference_name}.compared.sv">
+ <filter>links2SV is True</filter>
+ </data>
+
+ <data format="segdup" name="common_circos_file" label="common.compared.segdup">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2circos'] is True
+ )
+ </filter>
+ </data>
+ <data format="segdup" name="sample_circos_file" label="${sample_name}.compared.segdup">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2circos'] is True
+ )
+ </filter>
+ </data>
+ <data format="segdup" name="reference_circos_file" label="${reference_name}.compared.segdup">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2circos'] is True
+ )
+ </filter>
+ </data>
+
+ <data format="bed" name="common_bed_file" label="common.compared.bed">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2bed'] is True
+ )
+ </filter>
+ </data>
+ <data format="bed" name="sample_bed_file" label="${sample_name}.compared.bed">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2bed'] is True
+ )
+ </filter>
+ </data>
+ <data format="bed" name="reference_bed_file" label="${reference_name}.compared.bed">
+ <filter>(
+ file_conversion['file_conversion_select']=="convert" and
+ file_conversion['links2bed'] is True
+ )
+ </filter>
+ </data>
+
+ <data format="txt" name="log_file" label="${sample_name}.${reference_name}.svdetect_compare.log"/>
+</outputs>
+
+
+
+<configfiles>
+ <configfile name="config_file">
+&lt;general&gt;
+output_dir=$__new_file_path__/svdetect
+&lt;/general&gt; 
+
+#if $file_conversion.file_conversion_select == "convert"
+#if $file_conversion.links2circos
+&lt;circos&gt;
+organism_id=${file_conversion.organism_id}
+&lt;colorcode&gt;
+#for $color_repeat in $file_conversion.color_code
+${color_repeat.color}=${color_repeat.interval}
+#end for
+&lt;/colorcode&gt;
+&lt;/circos&gt;
+#end if
+#if $file_conversion.links2bed
+&lt;bed&gt;
+&lt;colorcode&gt;
+#for $color_repeat in $file_conversion.color_code
+#if str($color_repeat.color)== "grey"
+190,190,190=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "black"
+0,0,0=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "blue"
+0,0,255=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "green"
+0,255,0=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "purple"
+153,50,205=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "orange"
+255,140,0=${color_repeat.interval}
+#end if
+#if str($color_repeat.color)== "red"
+255,0,0=${color_repeat.interval}
+#end if
+#end for
+&lt;/colorcode&gt;
+&lt;/bed&gt;
+#end if
+#end if
+
+&lt;compare&gt;
+list_samples=${sample_name},${reference_name}
+list_read_lengths=${sample_read1_length}-${sample_read2_length},${reference_read1_length}-${reference_read2_length}
+sample_link_file=${sample_mates_file}
+reference_link_file=${reference_mates_file}
+min_overlap=${min_overlap}
+same_sv_type=${same_sv_type}
+sv_output=${links2SV}
+#if $file_conversion.file_conversion_select == "convert"
+circos_output=${$file_conversion.links2circos}
+bed_output=${$file_conversion.links2bed}
+#end if
+&lt;/compare&gt; 
+
+ </configfile>
+</configfiles>
+
+  <help>
+**What it does**
+
+SVDetect - Version : 0.8b
+
+Comparison of clusters between two samples to get common or sample-specific SVs
+
+This program is designed to compare filtered links between two anomalously mapped mate-pair/paired-end datasets
+and to identify common and sample-specific SVs (like the usual sample/reference design).
+Overlaps between coordinates of clusters and types of SVs are used as parameters of comparison.
+
+Manual documentation available at the http://svdetect.sourceforge.net/Site/Manual.html
+
+-----
+
+.. class:: infomark
+
+Contact Bruno Zeitouni (svdetect@curie.fr) for any questions or concerns about the Galaxy implementation of SVDetect.
+  </help>
+
+</tool>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_import.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_import.sh Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+
+while getopts "i:o:" optionName; do
+case "$optionName" in
+
+i) INPUT="$OPTARG";;
+o) OUTPUT="$OPTARG";;
+
+esac
+done
+
+rm $OUTPUT
+
+ln -s $INPUT $OUTPUT
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_import.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_import.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,85 @@
+<tool id="svdetect_import" name="Import data">
+  <description>BAM, chromosome info or sv files</description>
+  <command interpreter="bash">SVDetect_import.sh -i $file_path
+  #if str($type.file_type)=="bam"
+  -o $outbamfile
+  #elif str($type.file_type)=="len"
+  -o $outlenfile
+  #elif str($type.file_type)=="sv"
+  -o $outsvfile
+  #end if
+  </command>
+  <inputs>
+    <param name="file_name" type="text" value="file1" label="File Name"/>
+    <conditional name="type">
+      <param name="file_type" type="select" label="Select the file type to import" help="BAM file (BAM) or text file (SAM, chromosome list or a SV tabulated text file)">
+          <option value="bam">BAM file (.bam)</option>
+          <option value="len">Chromosome info file (.len)</option>
+          <option value="sv">SVDetect output file (.sv)</option>
+      </param>
+    <when value="bam">
+      <!-- do nothing here -->
+    </when>
+    <when value="len">
+      <!-- do nothing here -->
+    </when>
+     <when value="sv">
+      <!-- do nothing here -->
+    </when>
+    </conditional>
+     <param name="file_path" type="text" size="150" label="Path to file"/>
+  </inputs>
+  <outputs>
+    <data format="bam" name="outbamfile" label="${file_name}.bam">
+      <filter>type['file_type']=="bam"</filter>
+    </data>
+    <data format="len" name="outlenfile" label="${file_name}.len">
+      <filter>type['file_type']=="len"</filter>
+    </data>
+    <data format="sv" name="outsvfile" label="${file_name}.sv">
+      <filter>type['file_type']=="sv"</filter>
+    </data>
+  </outputs>
+  <help>
+**What it does**
+
+This tool allows you to import quickly a BAM file, a chromosome info file or a SVDetect output file from you computer as inputs for SVDetect.
+
+
+**Example of chromosome file**
+
+Input len file::
+
+    1  chr1  247249719
+    2  chr2  242951149
+    3  chr3  199501827
+    4  chr4  191273063
+    5  chr5  180857866
+    6  chr6  170899992
+    7  chr7  158821424
+    8  chr8  146274826
+    9  chr9  140273252
+    10  chr10  135374737
+    11  chr11  134452384
+    12  chr12  132349534
+    13  chr13  114142980
+    14  chr14  106368585
+    15  chr15  100338915
+    16  chr16  88827254
+    17  chr17  78774742
+    18  chr18  76117153
+    19  chr19  63811651
+    20  chr20  62435964
+    21  chr21  46944323
+    22  chr22  49691432
+    23  chrX  154913754
+    24  chrY  57772954
+
+-----
+
+.. class:: infomark
+
+Contact Bruno Zeitouni (svdetect@curie.fr) for any questions or concerns about the Galaxy implementation of SVDetect.
+  </help>
+
+</tool>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_run_parallel.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_run_parallel.pl Thu Oct 03 10:42:15 2019 -0400
[
b'@@ -0,0 +1,3537 @@\n+#!/usr/bin/perl -w\n+\n+=pod\n+\n+=head1 NAME\n+\n+SVDetect - Program designed to the detection of structural variations\n+from paired-end/mate-pair sequencing data, compatible with SOLiD and Illumina (>=1.3) reads\n+\n+Version: 0.8b for Galaxy\n+\n+=head1 SYNOPSIS\n+\n+SVDetect <command> -conf <configuration_file> [-help] [-man]\n+    \n+    Command:\n+\n+    \tlinking\t\tdetection and isolation of links\n+        filtering\tfiltering of links according different parameters\n+        links2circos\tlinks conversion to circos format\n+\tlinks2bed \tpaired-ends of links converted to bed format (UCSC)\n+\tlinks2SV\tformatted output to show most significant SVs\n+\tcnv\t\tcalculate copy-number profiles\n+\tratio2circos\tratio conversion to circos density format\n+\tratio2bedgraph\tratio conversion to bedGraph density format (UCSC)\n+    \n+=head1 DESCRIPTION\n+\n+This is a command-line interface to SVDetect.\n+\n+\n+=head1 AUTHORS\n+\n+Bruno Zeitouni E<lt>bruno.zeitouni@curie.frE<gt>,\n+Valentina Boeva E<lt>valentina.boeva@curie.frE<gt>\n+\n+=cut\n+\n+# -------------------------------------------------------------------\n+\n+use strict;\n+use warnings;\n+\n+use Pod::Usage;\n+use Getopt::Long;\n+\n+use Config::General;\n+use Tie::IxHash;\n+use FileHandle;\n+use Parallel::ForkManager;\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#PARSE THE COMMAND LINE\n+my %OPT;\n+GetOptions(\\%OPT,\n+\t   \'conf=s\',\n+\t   \'out1=s\', #GALAXY\n+\t   \'out2=s\', #GALAXY\n+\t   \'out3=s\', #GALAXY\n+\t   \'out4=s\', #GALAXY\n+\t   \'out5=s\', #GALAXY\n+\t   \'l=s\', #GALAXY\n+\t   \'N=s\',#GALAXY\n+\t   \'help\',#GALAXY\n+           \'man\'\n+\t  );\n+\n+pod2usage() if $OPT{help};\n+pod2usage(-verbose=>2) if $OPT{man};\n+pod2usage(-message=> "$!", -exitval => 2) if (!defined $OPT{conf});\n+\n+pod2usage() if(@ARGV<1);\n+\n+tie (my %func, \'Tie::IxHash\',linking=>\\&createlinks,\n+\t\t\t     filtering=>\\&filterlinks,\n+\t\t\t     links2circos=>\\&links2circos,\n+\t\t\t     links2bed=>\\&links2bed,\n+\t\t\t     links2compare=>\\&links2compare,\n+\t\t\t     links2SV=>\\&links2SV,\n+\t\t\t     cnv=>\\&cnv,\n+\t\t\t     ratio2circos=>\\&ratio2circos,\n+\t\t\t     ratio2bedgraph=>\\&ratio2bedgraph);\n+\n+foreach my $command (@ARGV){\n+    pod2usage(-message=> "Unknown command \\"$command\\"", -exitval => 2) if (!defined($func{$command}));\n+}\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#READ THE CONFIGURATION FILE\n+my $conf=Config::General->new(    -ConfigFile        => $OPT{conf},\n+                                  -Tie => "Tie::IxHash",\n+                                  -AllowMultiOptions => 1,\n+\t\t\t\t  -LowerCaseNames    => 1,\n+\t\t\t\t  -AutoTrue => 1);\n+my %CONF= $conf->getall;\n+validateconfiguration(\\%CONF);\t\t\t\t\t\t\t#validation of the configuration parameters\n+\n+my $SAMTOOLS_BIN_DIR="/bioinfo/local/samtools"; #GALAXY\n+\n+my $pt_log_file=$OPT{l}; #GALAXY\n+my $pt_links_file=$OPT{out1} if($OPT{out1}); #GALAXY\n+my $pt_flinks_file=$OPT{out2} if($OPT{out2}); #GALAXY\n+my $pt_sv_file=$OPT{out3} if($OPT{out3}); #GALAXY\n+my $pt_circos_file=$OPT{out4} if($OPT{out4}); #GALAXY\n+my $pt_bed_file=$OPT{out5} if($OPT{out5}); #GALAXY\n+\n+$CONF{general}{mates_file}=readlink($CONF{general}{mates_file});#GALAXY\n+$CONF{general}{cmap_file}=readlink($CONF{general}{cmap_file});#GALAXY\n+\n+my $log_file=$CONF{general}{output_dir}.$OPT{N}.".svdetect_run.log"; #GALAXY\n+open LOG,">$log_file" or die "$0: can\'t open ".$log_file.":$!\\n";#GALAXY\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n+#COMMAND EXECUTION\n+foreach my $command (@ARGV){\n+    &{$func{$command}}();\n+}\n+print LOG "-- end\\n";#GALAXY\n+\n+close LOG;#GALAXY\n+system "rm $pt_log_file ; ln -s $log_file $pt_log_file"; #GALAXY\n+exi'..b'y $chrName (@chrs){\n+\t      \n+\t\tdie("Error Config : The filtering parameter \\"chromosomes\\" is not valid\\n")\n+\t\tif(($chrName!~/^\\-/ && $exclude) || ($chrName=~/^\\-/ && !$exclude));\n+\t\t\n+\t    }\n+\t}\n+\t\n+\tif (( $conf{filtering}{order_filtering} )&& !$conf{filtering}{strand_filtering}) {\n+\t    die("Error Config : The parameter strand_filtering is set to \\"0\\" while order_filtering is selected".\n+\t\t"\\nChange strand_filtering to \\"1\\" if you want to use the order filtering\\n");\n+\t}\n+\tif (( !defined($conf{filtering}{mu_length}) || !defined($conf{filtering}{sigma_length}) )&& $conf{filtering}{order_filtering}) {\n+\t    die("Error Config : You should set parameters \\"mu_length\\" and \\"sigma_length\\" to use order filtering\\n");\n+\t}\n+\tif (( $conf{filtering}{insert_size_filtering} )&& !$conf{filtering}{strand_filtering}) {\n+\t    die("Error Config : The parameter strand_filtering is set to \\"0\\" while insert_size_filtering is selected".\n+\t\t"\\nChange strand_filtering to \\"1\\" if you want to use the insert size filtering\\n");\n+\t}\n+\tif (( !defined($conf{filtering}{mu_length}) || !defined($conf{filtering}{sigma_length}) )&& $conf{filtering}{insert_size_filtering}) {\n+\t    die("Error Config : You should set parameters \\"mu_length\\" and \\"sigma_length\\" to use discriminate insertions from deletions\\n");\n+\t}\n+\t\n+\tif (!defined($conf{filtering}{indel_sigma_threshold})) {\n+\t    $conf{filtering}{indel_sigma_threshold} = 2;\n+\t}\n+\tif (!defined($conf{filtering}{dup_sigma_threshold})) {\n+\t    $conf{filtering}{dup_sigma_threshold} = 2;\n+\t}\n+\tif (!defined($conf{filtering}{singleton_sigma_threshold})) {\n+\t    $conf{filtering}{singleton_sigma_threshold} = 4;\n+\t}\n+\t\n+\tif (!defined($conf{filtering}{nb_pairs_order_threshold})) {\n+\t    $conf{filtering}{nb_pairs_order_threshold} = 1;\n+\t}\n+\t\n+\tif (!defined($conf{filtering}{final_score_threshold})) {\n+\t    $conf{filtering}{final_score_threshold} = 0.8;\n+\t}\n+\t\n+\tif ($conf{filtering}{nb_pairs_order_threshold}>$conf{filtering}{nb_pairs_threshold}) {\n+\t    die("Error Config : Parameter \\"nb_pairs_order_threshold\\" should not exceed \\"nb_pairs_threshold\\"\\n");\n+\t}\n+\t\n+    }\n+    \n+    if($list_prgs=~/2circos$/){\n+\tforeach my $p (@circos_params) {\n+\t    next if($list_prgs=~/^ratio/ && $p eq "colorcode");\n+\t    die("Error Config : The circos parameter \\"$p\\" is not defined\\n") if (!defined $conf{circos}{$p});\n+\t}\n+    }\n+    \n+    if($list_prgs=~/2bed$/){\n+\tforeach my $p (@bed_params) {\n+\t    die("Error Config : The bed parameter \\"$p\\" is not defined\\n") if (!defined $conf{bed}{$p});\n+\t}\n+    }\n+    \n+    if($list_prgs=~/links2compare/){\n+\tforeach my $p (@compare_params) {\n+\t    die("Error Config : The compare parameter \\"$p\\" is not defined\\n") if (!defined $conf{compare}{$p});\n+\t}\n+\t\n+\tunless (defined($conf{compare}{same_sv_type})) {\n+\t    $conf{compare}{same_sv_type} = 0;\n+\t}\n+\t\n+\tunless (defined($conf{compare}{min_overlap})) {\n+\t    $conf{compare}{min_overlap} = 1E-9;\n+\t}\n+\t\n+\tif($conf{compare}{circos_output}){\n+\t    foreach my $p (@circos_params) {\n+\t\tnext if($list_prgs=~/^ratio/ && $p eq "colorcode");\n+\t\tdie("Error Config : The circos parameter \\"$p\\" is not defined\\n") if (!defined $conf{circos}{$p});\n+\t    }\n+\t}\n+\tif($conf{compare}{bed_output}){\n+\t    foreach my $p (@bed_params) {\n+\t\tdie("Error Config : The bed parameter \\"$p\\" is not defined\\n") if (!defined $conf{bed}{$p});\n+\t    }\n+\t    die("Error Config : The compare parameter \\"list_read_lengths\\" is not defined\\n") if (!defined $conf{compare}{list_read_lengths});\n+\n+\t    my @samples=split(",",$conf{compare}{list_samples});\n+\t    my @read_lengths=split(",",$conf{compare}{list_read_lengths});\n+\t    for my $i (0..$#samples){\n+\t\tmy @l=split("-",$read_lengths[$i]);\n+\t\t$conf{compare}{read_lengths}{$samples[$i]}={ 1=> $l[0], 2=> $l[1]};\n+\t    }\n+\t}\n+    }\n+   \n+    \n+}\n+#------------------------------------------------------------------------------#\n+#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/SVDetect_run_parallel.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/SVDetect_run_parallel.xml Thu Oct 03 10:42:15 2019 -0400
b
b'@@ -0,0 +1,324 @@\n+<tool id="svdetect_run_parallel" name="Detect clusters of anomalously mapped pairs">\n+\n+<description>and identify structural variants</description>\n+\n+<command interpreter="perl">SVDetect_run_parallel.pl\n+\n+#if $getLinks.linking == "linking"\n+linking\n+<!-- -out1 \'$links_file\' -->\n+#end if\n+#if $getFilteredLinks.filtering == "filtering"\n+filtering\n+<!--- out2 \'$flinks_file\' -->\n+#if str($getFilteredLinks.links2SV) == "create"\n+links2SV\n+-out3 \'$sv_file\'\n+#end if\n+#if  $getFilteredLinks.file_conversion.file_conversion_select=="convert" and str($getFilteredLinks.file_conversion.links2circos) == "create"\n+links2circos\n+-out4 \'$circos_file\'\n+#end if\n+#if  $getFilteredLinks.file_conversion.file_conversion_select=="convert" and str($getFilteredLinks.file_conversion.links2bed) == "create"\n+links2bed\n+-out5 \'$bed_file\'\n+#end if\n+#end if\n+-conf \'$config_file\'\n+-l \'$log_file\'\n+-N \'$sample_name\'\n+\n+</command>\n+\n+<inputs>\n+\t<param name="sample_name" type="text" value="sample" label="Sample Name"/>\n+\t<param name="mates_file" format="bam" type="data" label="Input BAM file (.ab.bam)"/>\n+   \t<param name="cmap_file" format="len" type="data" label="Chromosomes list file (.len)" help="Tabulated file format with Chromosome ID (integer from 1), name and length"/>\n+  \t<param name="mates_orientation" type="select" format="txt" label="Type of sequencing technology and libraries">\n+\t\t<option value="FR">Illumina paired-ends</option>\n+\t\t<option value="RF">Illumina mate-pairs</option>\n+\t\t<option value="FR">SOLiD paired-ends</option>\n+\t\t<option value="RR">SOLiD mate-pairs</option>\n+   \t</param>\n+\t<param name="read1_length" type="integer" size="10" value="50" label="Read 1 length (bp)" help="Length of the first read in a pair (left read)"/>\n+\t<param name="read2_length" type="integer" size="10" value="50" label="Read 2 length (bp)" help="Length of the second read in a pair (right read)"/>\n+\t<param name="sv_type" type="select" format="txt" label="Type of SV to detect">\n+\t\t<option value="all">all types of SVs</option>\n+\t\t<option value="intra">intrachromosomal SVs only</option>\n+\t\t<option value="inter">interchromosomal SVs only</option>\n+  \t</param>\n+   \t\n+   \t<conditional name="getLinks">\n+   \t\t<param name="linking" type="select" label="Linking procedure" help="Detection and isolation of links">\n+\t\t\t<option value="linking">Yes</option>\n+\t\t\t<option value="">No, already done</option>\n+  \t\t</param>\n+\t\t<when value="">\n+    \t\t\t<!-- do nothing here -->\n+   \t\t</when>\n+    \t\t<when value="linking">\n+\t\t\t<param name="splitmate" label="Do you want to split the original mate file per chromosome for parallel computing?" type="boolean" truevalue="split" falsevalue="do_not_split" checked="True" help="Untick it if already done"/>\n+    \t\t\t<param name="window_size" type="integer" size="20" value="3000" label="Window size (bp)" help="Equal to at least \xe2\x80\x9c2\xc2\xb5+2\xe2\x88\x9a2\xcf\x83"/>\n+\t\t\t<param name="step_length" type="integer" size="20" value="250" label="Step length size (bp)" help="Equal to 1/2 or 1/4 of the window size"/>\n+    \t\t</when>\n+   \t</conditional>\n+\n+   \t<conditional name="getFilteredLinks">\n+\t   \t<param name="filtering" type="select" label="Filtering procedure" help="Filtering of links according different parameters and thresholds">\n+\t\t\t<option value="filtering">Yes</option>\n+                        <option value="">No</option>\n+\t  \t</param>\n+\t\t<when value="">\n+\t    \t\t<!-- do nothing here -->\n+\t   \t</when>\n+\t    \t<when value="filtering">\n+\t\t\t\n+\t\t\t<param name="splitlink" label="Do you want to split the original link file per chromosome for parallel computing?" type="boolean" truevalue="split" falsevalue="do_not_split" checked="False" help="Untick it if (the linking is) already done"/>\n+\t\t\t<param name="chromosomes" type="text" size="20" label="List of chromosome names to keep or exclude"/>\n+\t\t\t<param name="nb_pairs_threshold" type="integer" size="20" value="5" label="Minimum number of pairs in a cluster"/>\n+\t\t\n+\t\t\t<conditional name="filter1">\n+\t   \t\t\t<param name='..b'">\n+&lt;general&gt;\n+input_format = bam\n+sv_type = ${sv_type}\n+mates_orientation=${mates_orientation}\n+read1_length=${read1_length}\n+read2_length=${read2_length}\n+mates_file=${mates_file}\n+cmap_file=${cmap_file}\n+tmp_dir=$__new_file_path__/svdetect/tmp\n+output_dir=$__new_file_path__/svdetect\n+num_threads=8\n+&lt;/general&gt; \n+\n+#if $getLinks.linking == "linking"\n+&lt;detection&gt;\n+#if str($getLinks.splitmate) == "split"\n+split_mate_file=1\n+#else\n+split_mate_file=0\n+#end if\n+window_size=${getLinks.window_size}\n+step_length=${getLinks.step_length}\n+&lt;/detection&gt; \n+#end if\n+\n+#if $getFilteredLinks.filtering == "filtering"\n+&lt;filtering&gt;\n+#if str($getFilteredLinks.splitlink) == "split"\n+split_link_file=1\n+#else\n+split_link_file=0\n+#end if\n+#if str($getFilteredLinks.chromosomes) != ""\n+chromosomes=${getFilteredLinks.chromosomes}\n+#end if\n+nb_pairs_threshold=${getFilteredLinks.nb_pairs_threshold}\n+#if $getFilteredLinks.filter1.strand_filtering == "strand"\n+strand_filtering=1\n+final_score_threshold=${getFilteredLinks.filter1.final_score_threshold}\n+#if $getFilteredLinks.filter1.filter2.order_filtering == "order"\n+order_filtering=1\n+mu_length=${getFilteredLinks.filter1.filter2.mu_length}\n+sigma_length=${getFilteredLinks.filter1.filter2.sigma_length}\n+nb_pairs_order_threshold=${getFilteredLinks.filter1.filter2.nb_pairs_order_threshold}\n+#if $getFilteredLinks.filter1.filter2.filter3.insert_size_filtering == "insert"\n+insert_size_filtering=1\n+indel_sigma_threshold=${getFilteredLinks.filter1.filter2.filter3.indel_sigma_threshold}\n+dup_sigma_threshold=${getFilteredLinks.filter1.filter2.filter3.dup_sigma_threshold}\n+singleton_sigma_threshold=${getFilteredLinks.filter1.filter2.filter3.singleton_sigma_threshold}\n+#else\n+insert_size_filtering=0\n+#end if\n+#else\n+order_filtering=0\n+#end if\n+#else\n+strand_filtering=0\n+#end if\n+&lt;/filtering&gt; \n+#end if\n+\n+#if $getFilteredLinks.filtering == "filtering"\n+#if $getFilteredLinks.file_conversion.file_conversion_select == "convert"\n+#if str($getFilteredLinks.file_conversion.links2circos) == "create"\n+&lt;circos&gt;\n+organism_id=${getFilteredLinks.file_conversion.organism_id}\n+&lt;colorcode&gt;\n+#for $color_repeat in $getFilteredLinks.file_conversion.color_code\n+${color_repeat.color}=${color_repeat.interval}\n+#end for\n+&lt;/colorcode&gt;\n+&lt;/circos&gt;\n+#end if\n+#if str($getFilteredLinks.file_conversion.links2bed) == "create"\n+&lt;bed&gt;\n+&lt;colorcode&gt;\n+#for $color_repeat in $getFilteredLinks.file_conversion.color_code\n+#if str($color_repeat.color)== "grey"\n+190,190,190=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "black"\n+0,0,0=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "blue"\n+0,0,255=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "green"\n+0,255,0=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "purple"\n+153,50,205=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "orange"\n+255,140,0=${color_repeat.interval}\n+#end if\n+#if str($color_repeat.color)== "red"\n+255,0,0=${color_repeat.interval}\n+#end if\n+#end for\n+&lt;/colorcode&gt;\n+&lt;/bed&gt;\n+#end if\n+#end if\n+#end if\t\n+\t</configfile>\n+</configfiles>\n+\n+  <help>\n+**What it does**\n+\n+SVDetect - Version : 0.8b\n+\n+Parallel version (nCPU=8)\n+\n+SVDetect is a application for the isolation and the type prediction of intra- and inter-chromosomal rearrangements from paired-end/mate-pair sequencing data provided by the high-throughput sequencing technologies\n+\n+This tool aims to identifying structural variations (SVs) with both clustering and sliding-window strategies, and helping in their visualization at the genome scale.\n+SVDetect is compatible with SOLiD and Illumina (>=1.3) reads.\n+\n+Manual documentation available at the http://svdetect.sourceforge.net/Site/Manual.html\n+\n+-----\n+\n+.. class:: infomark\n+\n+Contact Bruno Zeitouni (svdetect@curie.fr) for any questions or concerns about the Galaxy implementation of SVDetect.\n+\n+  </help>\n+\n+</tool>\n'
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/svdetect/circos_graph.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/svdetect/circos_graph.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,290 @@
+<tool id="circos_graph" name="Circos" version="1.1.0">
+
+<description>plots</description>
+
+<command interpreter="perl">circos/bin/circos
+
+-conf '$circos_config_file'
+-outputfile '${outputfile}.dat'
+-png 
+
+> '$log_file'
+
+;
+
+rm '$outputfile'; ln -s '${outputfile}.png' '$outputfile' 
+
+</command>
+
+
+<inputs>
+ <param name="graph_name" type="text" size="20" value="graph1" label="Graph name"/>
+
+ <param name="karyotype" type="select" format="txt" label="Type of model organism">
+ <option value="data/karyotype.human_hg19.txt">Human (homo sapiens, hs) -hg19-</option>
+ <option value="data/karyotype.human.txt">Human (homo sapiens, hs) -hg18-</option>
+ <option value="data/2/karyotype.mouse.txt">Mouse (Mus Musculus, mm)</option>
+ <option value="data/2/karyotype.dog.txt">Dog (Canis familiaris, cf)</option>
+ <option value="data/2/karyotype.rt.txt">Rat (Rattus norvegicus, rn)</option>
+ <option value="data/karyotype.yeast.txt">Yeast (Saccharomyces Cerevisiae, sc) -SGD-</option>
+
+   </param>
+ <param name="chromosomes_units" type="integer" size="50" value="1000000" label="Chromosomes units"/>
+ <param name="chromosomes" type="text" size="100" value="" label="List of chromosome names to keep or exclude" help="ex: hs2;hs3 or -hsX;-hsY">
+ <sanitizer>
+ <valid initial="string.printable">
+ <add value=";"/>
+ </valid>
+ </sanitizer>
+ </param>
+ <param name="link_file" format="segdup" type="data" label="Input link file (.segdup)"/>
+</inputs>
+
+<outputs>
+ <data format="txt" name="log_file" label="${graph_name}.circos.log"/>
+ <data format="png" name="outputfile" label="${graph_name}.png"/>
+</outputs>
+
+
+
+<configfiles>
+ <configfile name="ideogram_config_file">
+
+&lt;ideogram&gt;
+
+&lt;spacing&gt;
+
+default = 5u
+break   = 1u
+
+axis_break_at_edge = yes
+axis_break         = yes
+axis_break_style   = 2
+
+&lt;break_style 1&gt;
+stroke_color = black
+fill_color   = blue
+thickness    = 0.25r
+stroke_thickness = 2
+&lt;/break&gt;
+
+&lt;break_style 2&gt;
+stroke_color     = black
+stroke_thickness = 3p
+thickness        = 1.5r
+&lt;/break&gt;
+
+&lt;/spacing&gt;
+
+## thickness (px) of chromosome ideogram
+thickness        = 100p
+stroke_thickness = 2
+## ideogram border color
+stroke_color     = black
+fill             = yes
+## the default chromosome color is set here and any value
+## defined in the karyotype file overrides it
+fill_color       = black
+
+## fractional radius position of chromosome ideogram within image
+radius         = 0.85r
+show_label     = yes
+label_with_tag = yes
+label_font     = condensedbold
+label_radius   = dims(ideogram,radius) + 0.075r
+label_size     = 60p
+
+## cytogenetic bands
+band_stroke_thickness = 2
+
+## show_bands determines whether the outline of cytogenetic bands
+## will be seen
+show_bands            = yes
+## in order to fill the bands with the color defined in the karyotype
+## file you must set fill_bands
+fill_bands            = yes
+
+&lt;/ideogram&gt;
+
+ </configfile>
+
+ <configfile name="ticks_config_file">
+
+show_ticks          = yes
+show_tick_labels    = yes
+
+&lt;ticks&gt;
+radius               = dims(ideogram,radius_outer)
+multiplier           = 1e-6
+
+&lt;tick&gt;
+spacing        = 0.5u
+size           = 2p
+thickness      = 2p
+color          = grey
+show_label     = no
+label_size     = 12p
+label_offset   = 0p
+format         = %.2f
+&lt;/tick&gt;
+
+&lt;tick&gt;
+spacing        = 1u
+size           = 3p
+thickness      = 2p
+color          = dgrey
+show_label     = no
+label_size     = 12p
+label_offset   = 0p
+format         = %.2f
+&lt;/tick&gt;
+
+&lt;tick&gt;
+spacing        = 5u
+size           = 5p
+thickness      = 2p
+color          = black
+show_label     = yes
+label_size     = 16p
+label_offset   = 0p
+format         = %d
+&lt;/tick&gt;
+
+&lt;tick&gt;
+spacing        = 10u
+size           = 8p
+thickness      = 2p
+color          = black
+show_label     = yes
+label_size     = 20p
+label_offset   = 5p
+format         = %d
+&lt;/tick&gt;
+&lt;/ticks&gt;
+ </configfile>
+
+
+ <configfile name="circos_config_file">
+&lt;colors&gt;
+&lt;&lt;include etc/colors.conf&gt;&gt;
+&lt;/colors&gt;
+
+&lt;fonts&gt;
+&lt;&lt;include etc/fonts.conf&gt;&gt;
+&lt;/fonts&gt;
+
+&lt;&lt;include $ideogram_config_file&gt;&gt;
+&lt;&lt;include $ticks_config_file&gt;&gt;
+
+karyotype = $karyotype
+
+&lt;image&gt;
+24bit = yes
+##png = yes
+##svg = no
+## radius of inscribed circle in image
+radius         = 1500p
+background     = white
+## by default angle=0 is at 3 o'clock position
+angle_offset   = -90
+#angle_orientation = counterclockwise
+
+auto_alpha_colors = yes
+auto_alpha_steps  = 5
+&lt;/image&gt;
+
+chromosomes_units= $chromosomes_units
+
+#if str($chromosomes)==""
+chromosomes_display_default = yes
+#else
+chromosomes_display_default = no
+chromosomes = $chromosomes
+#end if
+
+&lt;links&gt;
+
+z      = 0
+radius = 0.95r
+bezier_radius = 0.2r
+
+&lt;link segdup&gt;
+show         = yes
+color        = dgrey_a5
+thickness    = 2
+file         = $link_file
+record_limit = 1000
+&lt;/link&gt;
+
+&lt;/links&gt;
+
+
+anglestep       = 0.5
+minslicestep    = 10
+beziersamples   = 40
+debug           = no
+warnings        = no
+imagemap        = no
+
+units_ok = bupr
+units_nounit = n
+ </configfile>
+</configfiles>
+
+  <help>
+**What it does**
+
+Circos
+
+Manual documentation available at the http://circos.ca/
+
+
+**Example of link segdup file**
+
+segdup file::
+
+    1 hs1 1077096 1078746 color=red
+    1 hs1 1080923 1082805 color=red
+    2 hs1 1137684 1137961 color=red
+    2 hs3 1138138 1138423 color=red
+    3 hs11 1169417 1170000 color=red
+    3 hs11 1170025 1170975 color=red
+    4 hs11 1222480 1224271 color=green
+    4 hs11 1223328 1225675 color=green
+    5 hs12 1223336 1225812 color=grey
+    5 hs13 1224709 1227633 color=grey
+    6 hs11 1223621 1226460 color=red
+    6 hs11 1224918 1227633 color=red
+    7 hs11 1399510 1401513 color=white
+    7 hs11 1401628 1403697 color=white
+    8 hs15 1652045 1653746 color=red
+    8 hs15 1657167 1658940 color=red
+    9 hs11 165333 165887 color=white
+    9 hs11 165981 168016 color=white
+    10 hs11 1702700 1702841 color=red
+    10 hs11 1702903 1703057 color=red
+    11 hs11 1912272 1915186 color=white
+    11 hs11 1937111 1939824 color=white
+    12 hs11 1983211 1983355 color=red
+    12 hs11 1983591 1983748 color=red
+    13 hs11 2913657 2913898 color=white
+    13 hs11 2914048 2914341 color=white
+    14 hs11 3090593 3090749 color=purple
+    14 hs11 3090709 3090864 color=purple
+    15 hs21 3466365 3466434 color=red
+    15 hs21 3466554 3466620 color=red
+    16 hsX 3603073 3603321 color=white
+    16 hsX 3603295 3603520 color=white
+
+
+    
+-----
+
+.. class:: infomark
+
+Contact Bruno Zeitouni (svdetect@curie.fr) for any questions or concerns about the Galaxy implementation of Circos.
+    
+    
+  </help>
+
+</tool>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/varscan/tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/varscan/tool_dependencies.xml Thu Oct 03 10:42:15 2019 -0400
b
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<tool_dependency>
+    <package name="VarScan" version="2.3.5">
+        <install version="1.0">
+            <actions>
+                <action type="download_by_url">http://downloads.sourceforge.net/project/varscan/VarScan.v2.3.5.jar</action>
+                <action type="move_file">
+                    <source>VarScan.v2.3.5.jar</source>
+                    <destination>$INSTALL_DIR/jars</destination>
+                </action>
+                <action type="set_environment">
+                    <environment_variable name="JAVA_JAR_PATH" action="set_to">$INSTALL_DIR/jars</environment_variable>
+                </action>
+            </actions>
+        </install>
+        <readme>
+        </readme>
+    </package>
+</tool_dependency>
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/varscan/varscan_mpileup.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/varscan/varscan_mpileup.pl Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,116 @@
+#!/usr/bin/perl
+
+use strict;
+use Cwd;
+
+die qq(
+Bad numbr of inputs
+
+) if(!@ARGV);
+
+my $options ="";
+my $file="";
+my $command="";
+my $output="";
+my $working_dir = cwd();
+my $temp_vcf = "$working_dir/temp";
+my $log="";
+
+foreach my $input (@ARGV) 
+{
+ my @tmp = split "::", $input;
+ if($tmp[0] eq "COMMAND") 
+ {
+ $command = $tmp[1];
+ } 
+ elsif($tmp[0] eq "INPUT") 
+ {
+ $file = $tmp[1];
+ }
+ elsif($tmp[0] eq "OPTION") 
+ {
+ $options = "$options ${tmp[1]}";
+ }
+ elsif($tmp[0] eq "OUTPUT") 
+ {
+ $output = $tmp[1];
+ }
+ elsif($tmp[0] eq "LOG") 
+ {
+ $log = $tmp[1];
+ }
+ else 
+ {
+ die("Unknown Input: $input\n");
+ }
+}
+
+system ("$command $file $options 1>$temp_vcf 2>$log");
+
+vs2vcf($temp_vcf, $output);
+
+
+sub vs2vcf 
+{
+
+ #
+ # G l o b a l     v a r i a b l e s 
+ #
+ my $version = '0.1';
+
+ #
+ # Read in file
+ #
+ my $input = shift;
+ my $output = shift;
+ my $chr_ord = shift;
+ open(IN, $input) or die "Can't open $input': $!\n";
+ open(OUT, ">$output") or die "Can't create $output': $!\n";
+ my %output;
+
+ while ( <IN> )
+ {
+ if ( /^#/ )
+ {
+ print OUT;
+ next;
+ }
+ chomp;
+ my $line = $_;
+
+ my @flds = split ( "\t", $line );
+ my $ref = $flds[3];
+ my $alt = $flds[4];
+ #
+ # Deletion of bases
+ #
+ if ( $alt =~ /^\-/ )
+ {
+ ($flds[3], $flds[4]) = ($ref.substr($alt,1), $ref);
+ }
+
+ #
+ # Insertion of bases
+ #
+ if ( $alt =~ /^\+/ )
+ {
+ $flds[4] = $ref.substr($alt,1);
+ }
+ print OUT join( "\t", @flds),"\n" unless defined $chr_ord;
+ $output{$flds[0]}{$flds[1]} = join( "\t", @flds)."\n" if defined $chr_ord;
+ }
+ close(IN);
+ # if chromosome order given return in sorted order
+ if(defined $chr_ord) 
+ {
+ for my $chrom (@{ $chr_ord }) 
+ {
+ for my $pos (sort {$a<=>$b} keys %{ $output{$chrom} }) 
+ {
+ print OUT $output{$chrom}{$pos};
+ }
+ }
+ }
+ close(OUT);
+}
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/varscan/varscan_mpileup.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/varscan/varscan_mpileup.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,124 @@
+<tool id="varscan_mpileup" name="VarScan mpileup" version="2.3.5">
+  <description>
+        mutation caller for targeted, exome, and whole-genome resequencing
+  </description>
+  <requirements>
+   <requirement type="package" version="2.3.5">VarScan</requirement>
+  </requirements>
+  <command interpreter="perl">
+  
+ varscan_mpileup.pl 
+ "COMMAND::java -jar \$JAVA_JAR_PATH/VarScan.v2.3.5.jar $exe_command" 
+   "INPUT::$in_file"
+   "OUTPUT::$output"
+   "LOG::$log"
+ "OPTION::--min-coverage $min_coverage"
+ "OPTION::--min-reads2 $min_reads2"
+ "OPTION::--min-avg-qual $min_avg_qual"
+ "OPTION::--min-var-freq $min_var_freq"
+ "OPTION::--min-freq-for-hom $min_freq_for_hom"
+ "OPTION::--p-value $p_value"
+ "OPTION::--strand-filter $strand_filter"
+ "OPTION::--output-vcf 1"
+
+ #if ($vcf_sample_list):
+ "OPTION::--vcf-sample-list $vcf_sample_list"
+ #end if
+ "OPTION::--variants $variants"
+
+
+  
+  </command>
+
+  <inputs>
+  
+ <param name="exe_command" type="select" label="Command" help="" optional="false">
+ <option value="mpileup2snp" >mpileup2snp</option>
+ <option value="mpileup2indel">mpileup2indel</option>
+ <option value="mpileup2cns">mpileup2cns</option>
+ </param>
+ <param name="in_file" type="data" format="pileup" label="mpileup file" help="The SAMtools mpileup file" />
+ <param name="min_coverage" type="integer" label="min-coverage" help="" optional="true" value="8"/>
+ <param name="min_reads2" type="integer" label="min-reads2" help="" optional="true" value="2"/>
+ <param name="min_avg_qual" type="integer" label="min-avg-qual" help="" optional="true" value="15"/>
+ <param name="min_var_freq" type="float" label="min-var-freq" help="" optional="true" value="0.01"/>
+ <param name="min_freq_for_hom" type="float" label="min-freq-for-hom" help="" optional="true" value="0.75"/>
+ <param name="p_value" type="text" label="p-value" help="" optional="true" value="0.99"/>
+ <param name="strand_filter" type="integer" label="strand-filter" help="" optional="true" value="1"/>
+ <param name="vcf_sample_list" type="data" label="vcf-sample-list" format="txt" help="" optional="true" />
+ <param name="variants" type="integer" label="variants" help="Set to 1 to report only variants" optional="true" value="1"/>
+
+
+  </inputs>
+  <outputs>
+   <data type="data" format="vcf" name="output" label="${tool.name} result on ${on_string}"/>
+   <data type="data" format="txt" name="log" label="${tool.name} result on ${on_string} (log) "/>
+  </outputs>
+  
+  <help> 
+
+.. class:: infomark
+
+**What it does**
+
+::
+
+ VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most  operating systems. It can be used to detect different types of variation:
+
+    Germline variants (SNPs an dindels) in individual samples or pools of samples.
+    Multi-sample variants (shared or private) in multi-sample datasets (with mpileup).
+    Somatic mutations, LOH events, and germline variants in tumor-normal pairs.
+    Somatic copy number alterations (CNAs) in tumor-normal exome data.
+
+
+**Input**
+
+::
+
+  mpileup file - The SAMtools mpileup file

+
+**Parameters**
+
+::
+
+  commands
+ mpileup2snp Identify SNPs from an mpileup file
+ mpileup2indel Identify indels an mpileup file
+ mpileup2cns Call consensus and variants from an mpileup file
+
+  min-coverage
+   Minimum read depth at a position to make a call [8]
+
+  min-reads2
+   Minimum supporting reads at a position to call variants [2]
+
+  min-avg-qual
+   Minimum base quality at a position to count a read [15]
+
+  min-var-freq
+        Minimum variant allele frequency threshold [0.01]
+
+  min-freq-for-hom
+   Minimum frequency to call homozygote [0.75]
+  
+  p-value
+   Default p-value threshold for calling variants [99e-02]
+  
+  strand-filter
+   Ignore variants with >90% support on one strand [1]
+  
+  output-vcf
+   If set to 1, outputs in VCF format
+  
+  vcf-sample-list
+   For VCF output, a list of sample names in order, one per line
+  
+  variants
+   Report only variant (SNP/indel) positions [0]
+
+
+  
+  </help>
+</tool>
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/varscan/varscan_somatic.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/varscan/varscan_somatic.pl Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,138 @@
+#!/usr/bin/perl
+
+
+use strict;
+use Cwd;
+
+die qq(
+Bad numbr of inputs
+
+) if(!@ARGV);
+
+my $options ="";
+my $normal="";
+my $command="";
+my $tumor="";
+my $output="";
+my $working_dir = cwd();
+my $snp = "$working_dir/output.snp.vcf";
+my $indels = "$working_dir/output.indel.vcf";
+
+foreach my $input (@ARGV) 
+{
+ my @tmp = split "::", $input;
+ if($tmp[0] eq "COMMAND") 
+ {
+ $command = $tmp[1];
+ } 
+ if($tmp[0] eq "NORMAL") 
+ {
+ $normal = $tmp[1];
+ } 
+ elsif($tmp[0] eq "TUMOR") 
+ {
+ $tumor = $tmp[1];
+ }
+ elsif($tmp[0] eq "OPTION") 
+ {
+ $options = "$options ${tmp[1]}";
+ }
+ elsif($tmp[0] eq "OUTPUT") 
+ {
+ $output = $tmp[1];
+ }
+
+ else 
+ {
+ die("Unknown Input: $input\n");
+ }
+}
+
+system ("$command $normal $tumor $options ");
+system("grep -v '^\#' $indels | grep -v '^chrom position' >> $snp");
+
+my @chr_ord = chromosome_order($tumor);
+
+vs2vcf($snp, $output,\@chr_ord);
+
+
+sub vs2vcf 
+{
+
+ #
+ # G l o b a l     v a r i a b l e s 
+ #
+ my $version = '0.1';
+
+ #
+ # Read in file
+ #
+ my $input = shift;
+ my $output = shift;
+ my $chr_ord = shift;
+ open(IN, $input) or die "Can't open $input': $!\n";
+ open(OUT, ">$output") or die "Can't create $output': $!\n";
+ my %output;
+
+ while ( <IN> )
+ {
+ if ( /^#/ )
+ {
+ print OUT;
+ next;
+ }
+ chomp;
+ my $line = $_;
+
+ my @flds = split ( "\t", $line );
+ my $ref = $flds[3];
+ my $alt = $flds[4];
+ #
+ # Deletion of bases
+ #
+ if ( $alt =~ /^\-/ )
+ {
+ ($flds[3], $flds[4]) = ($ref.substr($alt,1), $ref);
+ }
+
+ #
+ # Insertion of bases
+ #
+ if ( $alt =~ /^\+/ )
+ {
+ $flds[4] = $ref.substr($alt,1);
+ }
+ print OUT join( "\t", @flds),"\n" unless defined $chr_ord;
+ $output{$flds[0]}{$flds[1]} = join( "\t", @flds)."\n" if defined $chr_ord;
+ }
+ close(IN);
+ # if chromosome order given return in sorted order
+ if(defined $chr_ord) 
+ {
+ for my $chrom (@{ $chr_ord }) 
+ {
+ for my $pos (sort {$a<=>$b} keys %{ $output{$chrom} }) 
+ {
+ print OUT $output{$chrom}{$pos};
+ }
+ }
+ }
+ close(OUT);
+}
+
+
+sub chromosome_order 
+{
+ my $input = shift;
+ # calculate flagstats
+ my $COMM = "samtools view -H $input | grep '^\@SQ'";
+ my @SQ = `$COMM`;
+ chomp @SQ;
+ for(my $i = 0; $i <= $#SQ; $i++) 
+ {
+ $SQ[$i] =~ s/^\@SQ\tSN:(.*?)\tLN:\d+$/$1/;
+ } 
+ return(@SQ);
+}
+
+
b
diff -r 2c7824a8d764 -r 0d10255b5434 ngsap-vc/varscan/varscan_somatic.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ngsap-vc/varscan/varscan_somatic.xml Thu Oct 03 10:42:15 2019 -0400
[
@@ -0,0 +1,131 @@
+<tool id="varscan_somatic" name="VarScan Somatic" version="2.3.5">
+  <description>
+        somatic mutation caller for cancer genomics
+  </description>
+  <requirements>
+   <requirement type="package" version="2.3.5">VarScan</requirement>
+  </requirements>
+  <command interpreter="perl">
+   varscan_somatic.pl 
+   "COMMAND::java -jar \$JAVA_JAR_PATH/VarScan.v2.3.5.jar somatic" 
+   "NORMAL::$normal" 
+   "TUMOR::$tumor"
+   "OUTPUT::$output"
+  
+ "OPTION::--min-coverage $min_coverage"
+ "OPTION::--min-coverage-normal $min_coverage_normal"
+ "OPTION::--min-coverage-tumor $min_coverage_tumor"
+
+ "OPTION::--min-var-freq $min_var_freq"
+ "OPTION::--min-freq-for-hom $min_freq_for_hom"
+
+ "OPTION::--normal-purity $normal_purity"
+ "OPTION::--tumor-purity $tumor_purity"
+
+ "OPTION::--p-value $p_value"
+ "OPTION::--somatic-p-value $somatic_p_value"
+
+ "OPTION::--strand-filter $strand_filter"
+ "OPTION::--validation $validation"
+ "OPTION::--output-vcf 1"
+
+
+  
+  </command>
+
+  <inputs>
+
+ <param name="normal" type="data" format="pileup" label="normal mpileup file" help="The SAMtools mpileup file for normal sample" />
+ <param name="tumor" type="data" format="pileup" label="tumor mpileup file" help="The SAMtools mpileup file for tumor sample" />
+
+ <param name="min_coverage" type="integer" label="min-coverage" help="" optional="true" value="8"/>
+ <param name="min_coverage_normal" type="integer" label="min-coverage-normal" help="" optional="true" value="8"/>
+ <param name="min_coverage_tumor" type="integer" label="min-coverage-tumor" help="" optional="true" value="6"/>
+
+ <param name="min_var_freq" type="float" label="min-var-freq" help="" optional="true" value="0.10"/>
+ <param name="min_freq_for_hom" type="float" label="min-freq-for-hom" help="" optional="true" value="0.75"/>
+
+ <param name="normal_purity" type="float" label="normal-purity" help="" optional="true" value="1.00"/>
+ <param name="tumor_purity" type="float" label="tumor-purity" help="" optional="true" value="1.00"/>
+
+
+ <param name="p_value" type="text" label="p-value" help="" optional="true" value="0.99"/>
+ <param name="somatic_p_value" type="text" label="somatic-p-value" help="" optional="true" value="0.05"/>
+
+ <param name="strand_filter" type="integer" label="strand-filter" help="" optional="true" value="1"/>
+ <param name="validation" type="integer" label="validation" help="" optional="true" value="0"/>
+
+  </inputs>
+  <outputs>
+   <data type="data" format="vcf" name="output" label="${tool.name} result on ${on_string}"/>
+  </outputs>
+  
+  <help> 
+
+.. class:: infomark
+
+**What it does**
+
+::
+
+ VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most  operating systems. It can be used to detect different types of variation:
+
+    Germline variants (SNPs an dindels) in individual samples or pools of samples.
+    Multi-sample variants (shared or private) in multi-sample datasets (with mpileup).
+    Somatic mutations, LOH events, and germline variants in tumor-normal pairs.
+    Somatic copy number alterations (CNAs) in tumor-normal exome data.
+
+
+**Input**
+
+::
+
+  mpileup normal file - The SAMtools mpileup file for normal
+  mpileup tumor file - The SAMtools mpileup file for tumor

+
+**Parameters**
+
+::
+
+  min-coverage
+   Minimum read depth at a position to make a call [8]
+
+  min-coverage-normal
+   Minimum coverage in normal to call somatic [8]
+  
+  min-coverage-tumor
+   Minimum coverage in tumor to call somatic [6]
+  
+  min-var-freq 
+   Minimum variant frequency to call a heterozygote [0.10]     
+
+  min-freq-for-hom
+   Minimum frequency to call homozygote [0.75]
+  
+  normal-purity 
+   Estimated purity (non-tumor content) of normal sample [1.00]
+  
+  tumor-purity
+   Estimated purity (tumor content) of tumor sample [1.00]
+  
+  p-value
+   Default p-value threshold for calling variants [0.99]
+  
+  somatic-p-value
+   P-value threshold to call a somatic site [0.05]  
+  
+  strand-filter
+   If set to 1, removes variants with >90% strand bias
+  
+  validation 
+   If set to 1, outputs all compared positions even if non-variant
+  
+  output-vcf
+   If set to 1, outputs in VCF format [Default]
+
+
+  
+  </help>
+</tool>
+