diff multiqc.xml @ 0:3bad335ccea9 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/multiqc commit 264fd61d39f252ebb81731bf6cd3349fdb39b306
author iuc
date Tue, 24 Oct 2017 06:29:59 -0400
parents
children 6999173dc0c2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multiqc.xml	Tue Oct 24 06:29:59 2017 -0400
@@ -0,0 +1,994 @@
+<tool id="multiqc" name="MultiQC" version="@WRAPPER_VERSION@.0">
+    <description>aggregate results from bioinformatics analyses into a single report</description>
+    <macros>
+        <token name="@WRAPPER_VERSION@">1.2</token>
+        <token name="@LN_FILES@">
+<![CDATA[
+#for $file in $repeat.software_cond.input
+    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
+    ln -s '$file' '$software_dir/${file.element_identifier}' &&
+#end for
+        ]]></token>
+        <token name="@LN_2_FILES@">
+<![CDATA[
+#for $file in $repeat2.input:
+    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
+    ln -s '$file' '$software_dir/${repeat2.type}_${j}_${file.element_identifier}' &&
+#end for
+        ]]></token>
+        <token name="@LN_3_FILES@">
+<![CDATA[
+#for $file in $repeat2.type.input:
+    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
+    ln -s '$file' '$repeat_dir/${file.element_identifier}' &&
+#end for
+        ]]></token>
+    </macros>
+    <requirements>
+       <requirement type="package" version="@WRAPPER_VERSION@">multiqc</requirement>
+    </requirements>
+    <version_command>mulitqc --version</version_command>
+    <command detect_errors="aggressive">
+<![CDATA[
+die() { echo "$@" 1>&2 ; exit 1; } &&
+
+mkdir multiqc_WDir &&
+
+#set $configfile="F"
+
+#for $i, $repeat in enumerate( $results )
+    #set software_dir = 'multiqc_WDir/' + str($repeat.software_cond.software) + '_' + str($i)
+    mkdir $software_dir &&
+
+    #if str($repeat.software_cond.software) == "bamtools"
+        #set $pattern = "Stats for BAM file(s)"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "bcftools"
+        #set $pattern = "This file was produced by bcftools stats"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "bismark"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set file_prefix = $software_dir + '/' + str($repeat2.type) + '_' + str($j)
+            #if str($repeat2.type) == "align"
+                #for $file in $repeat2.input
+                    ln -s '$file' '${file_prefix}_${file.element_identifier}_SE_report.txt' &&
+                #end for
+            #elif str($repeat2.type) == "dedup"
+                #for $file in $repeat2.input
+                    ln -s '$file' '${file_prefix}_${file.element_identifier}_deduplication_report.txt' &&
+                #end for
+            #elif str($repeat2.type) == "meth_extract"
+                #for $file in $repeat2.input
+                    ln -s '$file' '${file_prefix}_${file.element_identifier}_splitting_report.txt' &&
+                #end for
+            #elif str($repeat2.type) == "m_bias"
+                #for $file in $repeat2.input
+                    ln -s '$file' '${file_prefix}_${file.element_identifier}_M-bias.txt' &&
+                #end for
+            #elif str($repeat2.type) == "bam2nuc"
+                #for $file in $repeat2.input
+                    ln -s '$file' '${file_prefix}_${file.element_identifier}.nucleotide_stats.txt' &&
+                #end for
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "bowtie2"
+        #set $pattern = "reads; of these:"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "busco"
+        ## Searches for files "short_summary_[samplename].txt"
+        #for $file in $repeat.software_cond.input
+            ln -s '$file' '$software_dir/short_summary_${file.element_identifier}' &&
+        #end for
+    #elif str($repeat.software_cond.software) == "cutadapt"
+        #set $pattern = "This is cutadapt"
+        #for $file in $repeat.software_cond.input
+            #set file_path = $software_dir + '/' + str($file.element_identifier) + '.txt'
+            ln -s '$file' '$file_path' &&
+            ## replace header for old cutadapt release
+            sed -i.old 's/You are running/This is/' '$file_path' &&
+            grep -q "$pattern" '$file_path' || die "'$pattern' or 'You are running cutadapt' not found in the file" &&
+        #end for
+    #elif str($repeat.software_cond.software) == "fastqc"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set repeat_dir = $software_dir + '/' + str($repeat2.type) + '_' + str($j)
+            mkdir '$repeat_dir' &&
+            #if str($repeat2.type) == "data"
+                #for $k, $file in enumerate($repeat2.input)
+                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_dir/fastqc_data.txt' &&
+                #end for
+            #elif str($repeat2.type) == "theoretical_gc"
+                #for $file in $repeat2.input
+                    ln -s '$file' '$repeat_dir/${file.element_identifier}_fastqc_theoretical_gc' &&
+                #end for
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "featureCounts"
+        #for $file in $repeat.software_cond.input
+            #set file_prefix = $software_dir + '/' + str($file.element_identifier)
+            #if $file.metadata.column_names and $file.metadata.column_names.find(',') != -1
+                echo '$file.metadata.column_names.replace(',','\t').replace('__ob__u','').replace('u__sq__','').replace('__sq__','').replace('__cb__','')' >> '$file_prefix.summary' &&
+                cat '$file' >> '${file_prefix}.summary' &&
+            #else
+                ln -s '$file' '${file_prefix}.summary' &&
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "flexbar"
+        #set $pattern = "flexible barcode and adapter removal"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "gatk"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #if str($repeat2.type) == "varianteval"
+                #set $pattern = "#:GATKTable:TiTvVariantEvaluator"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "base_recalibrator"
+                #set $pattern = "#:GATKTable:Arguments:Recalibration"
+                @LN_2_FILES@
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "hicup"
+        #for $file in $repeat.software_cond.input
+            ln -s '${file}' '$software_dir/HiCUP_summary_report_${file.element_identifier}' &&
+        #end for
+    #elif str($repeat.software_cond.software) == "hisat2"
+        #set $pattern = "HISAT2 summary stats:"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "htseq"
+        #set $pattern = "__too_low_aQual"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "kallisto"
+        #set $pattern = "finding pseudoalignments for the reads"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "picard"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #if str($repeat2.type) == "alignment_metrics"
+                #set $pattern = "picard.analysis.AlignmentSummaryMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "basedistributionbycycle"
+                #set $pattern = "picard.analysis.BaseDistributionByCycleMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "gcbias"
+                #set $pattern = "picard.analysis.GcBias"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "hsmetrics"
+                #set $pattern = "picard.analysis.directed.HsMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "insertsize"
+                #set $pattern = "picard.analysis.InsertSizeMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "markdups"
+                #set $pattern = "picard.sam.DuplicationMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "oxogmetrics"
+                #set $pattern = "picard.analysis.CollectOxoGMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "pcr_metrics"
+                #set $pattern = "picard.analysis.directed.TargetedPcrMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "rnaseqmetrics"
+                #set $pattern = "Collect"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "rrbs_metrics"
+                #set $pattern = "picard.analysis.RrbsSummaryMetrics"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "wgs_metrics"
+                #set $pattern = "picard.analysis.CollectWgsMetrics$WgsMetrics"
+                @LN_2_FILES@
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "prokka"
+        #set $pattern = "contigs:"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "quast"
+        #for $k, $file in enumerate($repeat.software_cond.input)
+            #set file_dir = $software_dir + '/file_' + str($k)
+            mkdir '$file_dir' &&
+            ln -s '$file' '$file_dir/report.tsv' &&
+        #end for
+    #elif str($repeat.software_cond.software) == "rsem"
+        #for $file in $repeat.software_cond.input
+            ln -s '$file' '$software_dir/${file.element_identifier}.cnt' &&
+        #end for
+    #elif str($repeat.software_cond.software) == "rseqc"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
+            mkdir '$repeat_dir' &&
+            #if str($repeat2.type.type) == "bam_stat"
+                #set $pattern = "Proper-paired reads map to different chrom:"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "gene_body_coverage"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    ln -s '$file' '$repeat_dir/file_${k}.geneBodyCoverage.txt' &&
+                #end for
+            #elif str($repeat2.type.type) == "inner_distance"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    ln -s '${file}' '$repeat_dir/file_${k}.inner_distance_freq.txt' &&
+                #end for
+            #elif str($repeat2.type.type) == "junction_annotation"
+                #set $pattern = "Partial Novel Splicing Junctions:"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "read_gc"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    ln -s '$file' '$repeat_dir/file_${k}.GC.xls' &&
+                #end for
+            #elif str($repeat2.type.type) == "junction_annotation"
+                #set $pattern = "Group               Total_bases         Tag_count           Tags/Kb"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "read_duplication_pos"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    ln -s '$file' '$repeat_dir/file_${k}.pos.DupRate.xls' &&
+                #end for
+            #elif str($repeat2.type.type) == "infer_experiment"
+                #set $pattern = "Fraction of reads explained by"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
+                    ln -s '$file' '$repeat_dir/$file_${k}_infer_experiment.txt' &&
+                #end for
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "salmon"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
+            mkdir '$repeat_dir' &&
+            #if str($repeat2.type.type) == "meta"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_dir/meta_info.json' &&
+                #end for
+            #elif str($repeat2.type.type) == "fld"
+                #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    mkdir '$file_dir' &&
+                    ln -s '$file' '$file_dir/flenDist.txt' &&
+                #end for
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "samblaster"
+        #set $pattern = "samblaster: Version"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "samtools"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
+            mkdir '$repeat_dir' &&
+            #if str($repeat2.type.type) == "stats"
+                #set $pattern = "This file was produced by samtools stats"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "flagstat"
+                #set $pattern = "in total (QC-passed reads + QC-failed reads)"
+                @LN_3_FILES@
+            #elif str($repeat2.type.type) == "idxstats"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '$repeat_dir/${file.element_identifier}_idxstat' &&
+                #end for
+            #elif str($repeat2.type.type) == "rmdup"
+                #set $pattern = "[bam_rmdup"
+                @LN_3_FILES@
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "snpeff"
+        #set $pattern = "SnpEff_version"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "sortmerna"
+        #set $pattern = "Minimal SW score based on E-value"
+        @LN_FILES@
+    #else if str($repeat.software_cond.software) == "star":
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set repeat_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
+            mkdir $repeat_dir &&
+            #if str($repeat2.type.type) == "log"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}_Log.final.out' &&
+                #end for
+            #elif str($repeat2.type.type) == "genecounts"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}_ReadsPerGene.out.tab' &&
+                #end for
+            #end if
+        #end for
+    #elif str($repeat.software_cond.software) == "tophat"
+        #for $file in $repeat.software_cond.input
+            ln -s '$file' '$software_dir/${file.element_identifier}align_summary.txt' &&
+        #end for
+    #elif str($repeat.software_cond.software) == "trimmomatic"
+        #set $pattern = "Trimmomatic"
+        @LN_FILES@
+    #elif str($repeat.software_cond.software) == "vcftools"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #set file_dir = $software_dir + '/' + str($repeat2.type.type) + '_' + str($j)
+            mkdir $file_dir &&
+            #if str($repeat2.type.type) == "relatedness2"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}.relatedness2' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_by_count"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.count' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_by_qual"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.qual' &&
+                #end for
+            #elif str($repeat2.type) == "tstv_summary"
+                #for $file in $repeat2.type.input
+                    ln -s '$file' '${repeat_dir}/{$file.element_identifier}.TsTv.summary' &&
+                #end for
+            #end if
+        #end for
+    #else if str($repeat.software_cond.software) == "custom_content":
+        #set $configfile = "T"
+        #for $j, $file in enumerate( $repeat.software_cond.input )
+            ln -s '$file' '${software_dir}/file_${i}_${j}' &&
+            more $file &&
+        #end for
+    #end if        
+#end for
+
+multiqc multiqc_WDir
+
+#if $configfile == "T"
+    -c '$multiqc_config'
+#end if
+    ]]></command>
+    <configfiles>
+        <configfile name="multiqc_config">
+<![CDATA[
+custom_data:
+#for $i, $repeat in enumerate( $results )
+    #if str($repeat.software_cond.software) == "custom_content"
+    section_$i:
+        file_format: 'tsv'
+        section_name: '$repeat.software_cond.section_name'
+        title: '$repeat.software_cond.title'
+        description: '$repeat.software_cond.description'
+        plot_type: '$repeat.software_cond.plot_type'
+        pconfig:
+            id: 'section_${i}_${repeat.software_cond.plot_type}'
+            ylab: '$repeat.software_cond.ylab'
+            xlab: '$repeat.software_cond.xlab'
+    #end if
+#end for
+sp:
+#for $i, $repeat in enumerate( $results )
+    #if str($repeat.software_cond.software) == "custom_content"
+    section_$i:
+        fn: 'file_${i}_*'
+    #end if
+#end for
+        ]]></configfile>
+    </configfiles>
+    <inputs>
+        <repeat name="results" title="Results" min="1">
+            <conditional name="software_cond">
+                <param name="software" type="select" label="Which tool was used generate logs?" help="Software name">
+                    <!--<option value="adapterRemoval">Adapter Removal</option>-->
+                    <!--<option value="afterqc">AfterQC</option>-->
+                    <option value="bamtools">Bamtools</option>
+                    <option value="bcftools">Bcftools</option>
+                    <!--<option value="bcl2fastq">bcl2fastq</option>-->
+                    <!--<option value="biobloomtools">BioBloom Tools</option>-->
+                    <option value="bismark">Bismark</option>
+                    <!--<option value="bowtie1">Bowtie 1</option>-->
+                    <option value="bowtie2">Bowtie 2</option>
+                    <option value="busco">BUSCO</option>
+                    <!--<option value="clusterflow">Cluster Flow</option>-->
+                    <option value="cutadapt">Cutadapt/Trim Galore!</option>
+                    <!--<option value="conpair">Conpair</option>-->
+                    <!--<option value="disambiguate">Disambiguate</option>-->
+                    <!--<option value="fastq_screen">FastQ Screen</option>-->
+                    <option value="fastqc">FastQC</option>
+                    <option value="featureCounts">featureCounts</option>
+                    <option value="flexbar">Flexbar</option>
+                    <option value="gatk">GATK (BaseRecalibrator or VariantEval output)</option>
+                    <!--<option value="goleft_indexcov">goleft indexcov</option>-->
+                    <!--<option value="hicup">HiCUP</option>-->
+                    <option value="hisat2">HISAT2</option>
+                    <!--<option value="homer">HOMER</option>-->
+                    <option value="htseq">HTSeq</option>
+                    <!--<option value="jellyfish">Jellyfish</option>-->
+                    <option value="kallisto">Kallisto</option>
+                    <!--<option value="leehom">leeHom</option>-->
+                    <!--<option value="macs2">MACS2</option>-->
+                    <!--<option value="methylQA">methylQA</option>-->
+                    <!--<option value="peddy">Peddy</option>-->
+                    <option value="picard">Picard</option>
+                    <!--<option value="preseq">Preseq</option>-->
+                    <option value="prokka">Prokka</option>
+                    <!--<option value="qorts">QoRTs</option>-->
+                    <!--<option value="qualimap">Qualimap (BamQC or RNASeq output)</option>-->
+                    <option value="quast">QUAST</option>
+                    <!--<option value="rna_seqc">RNA-SeQC</option>-->
+                    <!--<option value="rsem">RSEM (rsem-calculate-regex output)</option>-->
+                    <option value="rseqc">RSeQC (bam_stat, gene_body_coverage, infer_experiment, ...)</option>
+                    <!--<option value="salmon">Salmon</option>-->
+                    <option value="samblaster">Samblaster</option>
+                    <option value="samtools">Samtools</option>
+                    <!--<option value="skewer">Skewer</option>-->
+                    <option value="sortmerna">SortMeRNA</option>
+                    <!--<option value="slamdunk">Slamdunk</option>-->
+                    <!--<option value="snpeff">SnpEff</option>-->
+                    <option value="star">STAR</option>
+                    <!--<option value="theta2">THeTA2</option>-->
+                    <option value="tophat">TopHat2</option>
+                    <option value="trimmomatic">Trimmomatic</option>
+                    <option value="vcftools">VCFTools</option>
+                    <!--Custom-->
+                    <option value="custom_content">Custom Content</option>
+                </param>
+                <when value="bamtools">
+                    <param name="input" type="data" format="txt" multiple="true" label="Output of BAMtools" help="It should contain 'Stats for BAM file(s)'"/>
+                </when>
+                <when value="bcftools">
+                    <param name="input" type="data" format="txt" multiple="true" label="Output of BAMtools" help="It should contain 'This file was produced by bcftools stats'"/>
+                </when>
+                <when value="bismark">
+                    <repeat name="output" title="Bismark output" min="1">
+                        <param name="type" type="select" label="Type of Bismark output?">
+                            <option value="align">Alignment file</option>
+                            <option value="dedup">Deduplication file</option>
+                            <option value="meth_extract">Methylation file</option>
+                            <option value="m_bias">m_bias file</option>
+                            <option value="bam2nuc">bam2nuc file</option>
+                        </param>
+                        <param name="input" type="data" format="txt" multiple="true" label="Bismark output"/>
+                    </repeat>
+                </when>
+                <when value="bowtie2">
+                    <param name="input" type="data" format="txt" multiple="true" label="Output of Bowtie 2" help="It should contain 'reads; of these:'"/>
+                </when>
+                <when value="busco">
+                    <param name="input" type="data" format="txt" multiple="true" label="Output of BUSCO"/>
+                </when>
+                <when value="cutadapt">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Cutadapt" help="It should contain 'This is cutadapt' or 'You are running cutadapt'"/>
+                </when>
+                <when value="fastqc">
+                    <repeat name="output" title="FastQC output" min="1">
+                        <param name="type" type="select" label="Type of FastQC output?">
+                            <option value="data">Raw data</option>
+                            <option value="theoretical_gc">Theorectical GC</option>
+                        </param>
+                        <param name="input" type="data" format="txt" multiple="true" label="FastQC output"/>
+                    </repeat>
+                </when>
+                <when value="featureCounts">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of FeatureCounts"/>
+                </when>
+                <when value="flexbar">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Flexbar" help="It should contain 'Flexbar - flexible barcode and adapter removal'"/>
+                </when>
+                <when value="gatk">
+                    <repeat name="output" title="GATK output" min="1">
+                        <param name="type" type="select" label="Type of GATK output?">
+                            <option value="varianteval">Variant eval file</option>
+                            <option value="base_recalibrator">Base recalibrator file</option>
+                        </param>
+                        <param name="input" type="data" format="txt" multiple="true" label="GATK output"/>
+                    </repeat>
+                </when>
+                <when value="hisat2">
+                    <param name="input" type="data" format="txt,tabular" multiple="true" label="Output of HISAT2" help="It should contain 'HISAT2 summary stats:'"/>
+                </when>
+                <when value="htseq">
+                    <param name="input" type="data" format="txt,tabular" multiple="true" label="Output of HTSeq" help="It should contain '__too_low_aQual'"/>
+                </when>
+                <when value="kallisto">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Kallisto" help="It should contain '[quant] finding pseudoalignments for the reads'"/>
+                </when>
+                <when value="picard">
+                    <repeat name="output" title="Picard output" min="1">
+                        <param name="type" type="select" label="Type of Picard output?">
+                            <option value="alignment_metrics">Alignment metrics</option>
+                            <option value="basedistributionbycycle">Base distribution by cycle</option>
+                            <option value="gcbias">GC bias</option>
+                            <option value="hsmetrics">HS Metrics</option>
+                            <option value="insertsize">Insert size</option>
+                            <option value="markdups">Markdups</option>
+                            <option value="oxogmetrics">Oxog metrics</option>
+                            <option value="pcr_metrics">PCR metrics</option>
+                            <option value="rnaseqmetrics">RNA Seq metrics</option>
+                            <option value="rrbs_metrics">RRBS metrics</option>
+                            <option value="wgs_metrics">WGS metrics</option>
+                        </param>
+                        <param name="input" type="data" format="txt" multiple="true" label="Picard output"/>
+                    </repeat>
+                </when>
+                <when value="prokka">
+                    <param name="input" type="data" format="txt" multiple="true" label="Output of Prokka" help="It should contain 'contigs:'"/>
+                </when>
+                <when value="quast">
+                    <param name="input" type="data" format="tabular,tsv" multiple="true" label="Output of Quast"/>
+                </when>
+                <when value="rseqc">
+                    <repeat name="output" title="RSeQC output" min="1">
+                        <conditional name="type">
+                            <param name="type" type="select" label="Type of RSeQC output?">
+                                <option value="bam_stat">bam_stat</option>
+                                <option value="gene_body_coverage">gene_body_coverage</option>
+                                <option value="infer_experiment">infer_experiment</option>
+                                <option value="inner_distance">inner_distance</option>
+                                <option value="junction_annotation">junction_annotation</option>
+                                <option value="junction_saturation">junction_saturation</option>
+                                <option value="read_distribution">read_distribution</option>
+                                <option value="read_duplication_pos">read_duplication_pos</option>
+                                <option value="read_gc">read_gc</option>
+                            </param>
+                            <when value="bam_stat">
+                                <param name="input" type="data" format="txt,tabular" multiple="true" label="RSeQC bam_stat output" help="It should contain 'Proper-paired reads map to different chrom:'"/>
+                            </when>
+                            <when value="gene_body_coverage">
+                                <param name="input" type="data" format="txt" multiple="true" label="RSeQC gene_body_coverage output"/>
+                            </when>
+                            <when value="infer_experiment">
+                                <param name="input" type="data" format="txt" multiple="true" label="RSeQC infer_experiment output" help="It should contain 'Fraction of reads explained by'"/>
+                            </when>
+                            <when value="inner_distance">
+                                <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC inner_distance output"/>
+                            </when>
+                            <when value="junction_annotation">
+                                <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC junction_annotation output" help="It should contain 'Partial Novel Splicing Junctions:'"/>
+                            </when>
+                            <when value="junction_saturation">
+                                <param name="input" type="data" format="txt" multiple="true" label="RSeQC junction_saturation output"/>
+                            </when>                            
+                            <when value="read_distribution">
+                                <param name="input" type="data" format="txt,xls,tabular" multiple="true" label="RSeQC read_distribution output" help="It should contain 'Group               Total_bases         Tag_count           Tags/Kb'"/>
+                            </when>
+                            <when value="read_duplication_pos">
+                                <param name="input" type="data" format="csv,xls,tabular" multiple="true" label="RSeQC read_duplication_pos output"/>
+                            </when>
+                            <when value="read_gc">
+                                <param name="input" type="data" format="csv,xls,tabular" multiple="true" label="RSeQC read_gc output"/>
+                            </when>
+                        </conditional>
+                    </repeat>
+                </when>
+                <when value="samblaster">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Samblaster" help="It should contain 'samblaster: Version'"/>
+                </when>
+                <when value="samtools">
+                    <repeat name="output" title="Samtools output" min="1">
+                        <conditional name="type">
+                            <param name="type" type="select" label="Type of Samtools output?">
+                                <option value="stats">stats</option>
+                                <option value="flagstat">flagstat</option>
+                                <option value="idxstats">idxstats</option>
+                                <option value="rmdup">rmdup</option>
+                            </param>
+                            <when value="stats">
+                                <param name="input" type="data" format="txt" multiple="true" label="Samtools stats output" help="It should contain 'This file was produced by samtools stats'"/>
+                            </when>
+                            <when value="flagstat">
+                                <param name="input" type="data" format="txt" multiple="true" label="Samtools flagstat output" help="It should contain 'in total (QC-passed reads + QC-failed reads)'"/>
+                            </when>
+                            <when value="idxstats">
+                                <param name="input" type="data" format="txt" multiple="true" label="Samtools idxstats output"/>
+                            </when>
+                            <when value="rmdup">
+                                <param name="input" type="data" format="txt" multiple="true" label="Samtools rmdup output" help="It should contain '[bam_rmdup'"/>
+                            </when>
+                        </conditional>
+                    </repeat>
+                </when>
+                <when value="sortmerna">
+                    <param name="input" type="data" format="txt" multiple="true" label="Log file of SortMeRNA" help="It should contain 'Minimal SW score based on E-value'"/>
+                </when>
+                <when value="star">
+                    <repeat name="output" title="STAR output" min="1">
+                        <conditional name="type">
+                            <param name="type" type="select" label="Type of STAR output?">
+                                <option value="log">Log</option>
+                                <option value="genecounts">Gene counts</option>
+                            </param>
+                            <when value="log">
+                                <param name="input" type="data" format="txt" multiple="true" label="STAR log output"/>
+                            </when>
+                            <when value="genecounts">
+                                <param name="input" type="data" format="tabular,tsv" multiple="true" label="STAR gene count output"/>
+                            </when>
+                        </conditional>
+                    </repeat>
+                </when>
+                <when value="tophat">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of TopHat2"/>
+                </when>
+                <when value="trimmomatic">
+                    <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of Trimmomatic" help="It should contain 'TTrimmomatic'"/>
+                </when>
+                <when value="vcftools">
+                    <repeat name="output" title="VCFTools output" min="1">
+                        <conditional name="type">
+                            <param name="type" type="select" label="Type of VCFTools output?">
+                                <option value="relatedness2">relatedness2</option>
+                                <option value="tstv_by_count">tstv_by_count</option>
+                                <option value="tstv_by_qual">tstv_by_qual</option>
+                                <option value="tstv_summary">tstv_summary</option>
+                            </param>
+                            <when value="relatedness2">
+                                <param name="input" type="data" format="txt" multiple="true" label="VCFTools relatedness2 output"/>
+                            </when>
+                            <when value="tstv_by_count">
+                                <param name="input" type="data" format="tabular,tsv" multiple="true" label="VCFTools TsTV count output"/>
+                            </when>
+                            <when value="tstv_by_qual">
+                                <param name="input" type="data" format="tabular" multiple="true" label="VCFTools TsTV qual output"/>
+                            </when>
+                            <when value="tstv_summary">
+                                <param name="input" type="data" format="txt" multiple="true" label="VCFTools TsTV summary output"/>
+                            </when>
+                        </conditional>
+                    </repeat>
+                </when>
+                <when value="custom_content">
+                    <param argument="plot_type" label="The plot type to visualise the data with" type="select">
+                        <option value="linegraph">linegraph</option>
+                        <option value="bargraph">bargraph</option>
+                        <option value="scatter">scatter</option>
+                        <option value="generalstats">generalstats</option>
+                        <option value="table">table</option>
+                    </param>
+                    <param argument="section_name" label="Section name" type="text" help="Nice name used for the report section header" />
+                    <param argument="title" label="Title" type="text" help="Plot title" />
+                    <param argument="description" label="Description" type="text" help="Introductory text to be printed under the section header" />
+                    <param argument="xlab" label="X axis label" type="text" />
+                    <param argument="ylab" label="Y axis label" type="text" />
+                    <param name="input" type="data" format="tabular,tsv" multiple="true" label="Data files"/>
+                </when>
+            </conditional>
+        </repeat>
+        <param name="saveLog" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output the multiQC log file?" help="This is mostly useful for debugging purposes"/>
+    </inputs>
+    <outputs>
+        <data name="html_report" format="html" from_work_dir="multiqc_report.html" label="${tool.name} on ${on_string}: Webpage" />
+        <data name="log" format="txt" from_work_dir="multiqc_data/multiqc.log" label="${tool.name} on ${on_string}: Log">
+            <filter>saveLog</filter>
+        </data>
+        <collection name="stats" type="list" label="${tool.name} on ${on_string}: Stats">
+            <discover_datasets pattern="multiqc_(?P&lt;designation&gt;.+)\.txt" format="tabular" directory="multiqc_data" />
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="cutadapt" />
+                    <param name="input" value="cutadapt.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="fastqc" />
+                    <repeat name="output">
+                        <param name="type" value="data"/>
+                        <param name="input" value="fastqc_1.txt,fastqc_2.txt"/>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="flexbar" />
+                    <param name="input" value="flexbar.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="sortmerna" />
+                    <param name="input" value="sortmerna.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="trimmomatic" />
+                    <param name="input" value="trimmomatic.txt" />
+                </conditional>
+            </repeat>
+            <param name="saveLog" value="True"/>
+            <output name="html_report">
+                <assert_contents>
+                    <has_text text="cutadapt_plot" />
+                    <has_text text="fastqc_seq_heatmap_key_t" />
+                    <has_text text="flexbar_plot" />
+                    <has_text text="sortmerna-detailed-plot" />
+                    <has_text text="trimmomatic_plot" />
+                </assert_contents>
+            </output>
+            <output name="log" file="pre_alignment_soft_log.txt" compare="sim_size"/>
+            <output_collection name="stats" type="list">
+                <element name="cutadapt" file="cutadapt_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="fastqc" file="fastqc_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="flexbar" file="flexbar_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="general_stats" file="pre_alignment_soft_stats.tabular" compare="sim_size" delta="30"/>
+                <element name="sortmerna" file="sortmerna_stats.tabular" compare="sim_size" delta="30"/>
+                <element name="trimmomatic" file="trimmomatic_stats.tabular" compare="sim_size" delta="0"/>
+            </output_collection>
+        </test>
+        <test>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="bismark" />
+                    <repeat name="output">
+                        <param name="type" value="align"/>
+                        <param name="input" value="bismark.txt"/>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="bowtie2" />
+                    <param name="input" value="bowtie2_1.txt,bowtie2_2.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="hisat2" />
+                    <param name="input" value="hisat2_1.txt,hisat2_2.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="kallisto" />
+                    <param name="input" value="kallisto_1.txt,kallisto_2.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="star" />
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="log"/>
+                            <param name="input" value="star_log.txt" />
+                        </conditional>
+                    </repeat>
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="genecounts"/>
+                            <param name="input" value="star_counts.txt" />
+                        </conditional>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="tophat" />
+                    <param name="input" value="tophat.txt" />
+                </conditional>
+            </repeat>
+            <param name="saveLog" value="False"/>
+            <output name="html_report">
+                <assert_contents>
+                    <has_text text="bismark-alignment" />
+                    <has_text text="bowtie2_se_plot" />
+                    <has_text text="hisat2_se_plot" />
+                    <has_text text="kallisto_alignment" />
+                    <has_text text="star_alignment_plot" />
+                    <has_text text="tophat_alignment" />
+                </assert_contents>
+            </output>
+            <output_collection name="stats" type="list">
+                <element name="bismark_alignment" file="bismark_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="bowtie2" file="bowtie2_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="general_stats" file="aligner_soft_stats.tabular" compare="sim_size" delta="50"/>
+                <element name="hisat2" file="hisat2_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="kallisto" file="kallisto_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="star" file="star_stats.tabular" compare="sim_size" delta="10"/>
+                <element name="tophat.txt" file="tophat_stats.tabular" compare="sim_size" delta="10"/>
+            </output_collection>
+        </test>
+        <test>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="bamtools" />
+                    <param name="input" value="bamtools.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="bcftools" />
+                    <param name="input" value="bcftools.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="busco" />
+                    <param name="input" value="busco.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="featureCounts" />
+                    <param name="input" value="featureCounts.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="gatk" />
+                    <repeat name="output">
+                        <param name="type" value="base_recalibrator"/>
+                        <param name="input" value="gatk_BaseRecalibrator.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="varianteval"/>
+                        <param name="input" value="gatk_varianteval.txt"/>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="htseq" />
+                    <param name="input" value="htseq.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="picard" />
+                    <repeat name="output">
+                        <param name="type" value="gcbias"/>
+                        <param name="input" value="picard_collectGcBias.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="insertsize"/>
+                        <param name="input" value="picard_CollectInsertSizeMetrics.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="markdups"/>
+                        <param name="input" value="picard_MarkDuplicates.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="basedistributionbycycle"/>
+                        <param name="input" value="picard_CollectBaseDistributionByCycle.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="rnaseqmetrics"/>
+                        <param name="input" value="picard_CollectRnaSeqMetrics.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="alignment_metrics"/>
+                        <param name="input" value="picard_CollectAlignmentSummaryMetrics.txt"/>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="prokka" />
+                    <param name="input" value="prokka_1.txt,prokka_2.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="quast" />
+                    <param name="input" value="quast.tsv" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="rseqc" />
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="read_gc"/>
+                            <param name="input" value="rseqc.txt"/>
+                        </conditional>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="samblaster" />
+                    <param name="input" value="samblaster.txt" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="samtools" />
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="stats"/>
+                            <param name="input" value="samtools_stats.txt"/>
+                        </conditional>
+                    </repeat>
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="flagstat"/>
+                            <param name="input" value="samtools_flagstat.txt"/>
+                        </conditional>
+                    </repeat>
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="idxstats"/>
+                            <param name="input" value="samtools_idxstats.txt"/>
+                        </conditional>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="vcftools" />
+                    <repeat name="output">
+                        <conditional name="type">
+                            <param name="type" value="tstv_by_qual"/>
+                            <param name="input" value="vcftools.txt"/>
+                        </conditional>
+                    </repeat>
+                    <param name="input" value="vcftools.txt" />
+                </conditional>
+            </repeat>
+            <output name="html_report">
+                <assert_contents>
+                    <has_text text="bamtools-stats" />
+                    <has_text text="bcftools_stats_indel-lengths" />
+                    <has_text text="busco-lineage-fungi_odb9" />
+                    <has_text text="featureCounts_assignment_plot" />
+                    <has_text text="gatk_varianteval_variant_plot" />
+                    <has_text text="htseq_assignment_plot" />
+                    <has_text text="picard_aligned_reads" />
+                    <has_text text="picard-rna-assignment" />
+                    <has_text text="picard-markduplicates" />
+                    <has_text text="picard-insertsize" />
+                    <has_text text="picard-gcbias" />
+                    <has_text text="prokka_plot" />
+                    <has_text text="samblaster_duplicates" />
+                    <has_text text="quast-stats" />
+                    <has_text text="samtools-flagstat-dp" />
+                    <has_text text="bamtools-stats" />
+                </assert_contents>
+            </output>
+            <output_collection name="stats" type="list">
+                <element name="bamtools_stats" file="bamtools_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="bcftools_stats" file="bcftools_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="busco" file="busco_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="featureCounts" file="featureCounts_stats.tabular" compare="sim_size" delta="25"/>
+                <element name="gatk_varianteval" file="gatk_varianteval_stats.tabular" compare="sim_size" delta="20"/>
+                <element name="general_stats" file="post_aligner_soft_stats.tabular" compare="sim_size" delta="25"/>
+                <element name="htseq" file="htseq_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="picard_AlignmentSummaryMetrics" file="picard_AlignmentSummaryMetrics_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="picard_RnaSeqMetrics" file="picard_RnaSeqMetrics_stats.tabular" compare="sim_size" delta="40"/>
+                <element name="picard_baseContent" file="picard_baseContent_stats.tabular" compare="sim_size" delta="50"/>
+                <element name="picard_dups" file="picard_dups_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="picard_insertSize" file="picard_insertSize_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="prokka" file="prokka_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="quast" file="quast_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="samblaster" file="samblaster_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="samtools_flagstat">
+                    <assert_contents>
+                        <has_text text="samtools_flagstat" />
+                        <has_text text="mapped_passed" />
+                        <has_text text="20689039" />
+                    </assert_contents>
+                </element>
+                <element name="samtools_stats" file="samtools_stats_stats.tabular" compare="sim_size" delta="15"/>
+            </output_collection>
+        </test>
+        <test>
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="custom_content" />
+                    <param name="cc_select" value="manual" />
+                    <param name="plot_type" value="linegraph" />
+                    <param name="section_name" value="BPC" />
+                    <param name="title" value="Base peak chromatogram" />
+                    <param name="description" value="Sum of intensity (Y) of the most intense peaks at each retention time(X)" />
+                    <param name="xlab" value="Retention Time" />
+                    <param name="ylab" value="Base Peak Intensity" />
+                    <param name="input" value="cc_ko15.bpc.tab,cc_wt15.bpc.tab" />
+                </conditional>
+            </repeat>
+            <output name="html_report" file="report_manual_custom_content.html" compare="sim_size"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+**What it does**
+
+`MultiQC <http://multiqc.info/>`_ aggregates results from bioinformatics analyses across many samples into a single report. It takes results of multiple analyses and creates a report that can be viewed as a single beautiful web-page. It's a general use tool, perfect for summarizing the output from numerous bioinformatics tools.
+
+**Inputs**
+
+MultiQC takes software output summaries/logs and creates a single report from them. You need to tell the tool which software was used to generate the report. This is done using the **Software name** dropdown. At present only the Galaxy tools found in the ToolShed produce logs that can used with MultiQC
+
+----
+
+The first integration of this tool was made by Cyril Monjeaud and Yvan Le Bras (`EnginesOn <http://engineson.fr/>`_ and Rennes GenOuest Bio-informatics Core Facility).
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1093/bioinformatics/btw354</citation>
+    </citations>
+</tool>