diff multiqc.xml @ 8:e0f4a651c6b9 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/multiqc commit 13875b17a3a5259b9705529a3597bea12828cb20
author iuc
date Fri, 20 Apr 2018 01:06:25 -0400
parents 467486f1c568
children df99138d2776
line wrap: on
line diff
--- a/multiqc.xml	Sun Jan 14 09:55:46 2018 -0500
+++ b/multiqc.xml	Fri Apr 20 01:06:25 2018 -0400
@@ -1,26 +1,49 @@
-<tool id="multiqc" name="MultiQC" version="@WRAPPER_VERSION@.1">
+<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.3</token>
+        <token name="@WRAPPER_VERSION@">1.5</token>
+        <token name="@ESCAPE_IDENTIFIER@">
+<![CDATA[
+#set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+        ]]></token>
+        <token name="@CHECK_LN_FILE@">
+<![CDATA[
+grep -q "$pattern" $file || die "Module '${repeat.software_cond.software}: '$pattern' not found in the file '$identifier'" &&
+ln -s '$file' '$file_path'  &&
+        ]]></token>
+        <token name="@CREATE_REPEAT_DIR_1@">
+<![CDATA[
+#set repeat_dir = os.path.join($software_dir, str($repeat2.type) + '_' + str($j))
+mkdir '$repeat_dir' &&
+        ]]></token>
+        <token name="@CREATE_REPEAT_DIR_2@">
+<![CDATA[
+#set repeat_dir = os.path.join($software_dir, str($repeat2.type.type) + '_' + str($j))
+mkdir '$repeat_dir' &&
+        ]]></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}' &&
+    @ESCAPE_IDENTIFIER@
+    #set file_path = os.path.join($software_dir, str($identifier))
+    @CHECK_LN_FILE@
 #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}' &&
+@CREATE_REPEAT_DIR_1@
+#for $file in $repeat2.input
+    #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+    #set file_path = os.path.join($repeat_dir, str($identifier))
+    @CHECK_LN_FILE@
 #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}' &&
+#for $file in $repeat2.type.input
+    #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
+    #set file_path = os.path.join($repeat_dir, str($identifier))
+    @CHECK_LN_FILE@
 #end for
         ]]></token>
     </macros>
@@ -30,6 +53,9 @@
     <version_command>multiqc --version</version_command>
     <command detect_errors="aggressive">
 <![CDATA[
+#import re
+#import os
+
 die() { echo "$@" 1>&2 ; exit 1; } &&
 
 mkdir multiqc_WDir &&
@@ -37,7 +63,7 @@
 #set $configfile="F"
 
 #for $i, $repeat in enumerate( $results )
-    #set software_dir = 'multiqc_WDir/' + str($repeat.software_cond.software) + '_' + str($i)
+    #set software_dir = os.path.join('multiqc_WDir', str($repeat.software_cond.software) + '_' + str($i))
     mkdir $software_dir &&
 
     #if str($repeat.software_cond.software) == "bamtools"
@@ -48,26 +74,36 @@
         @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)
+            @CREATE_REPEAT_DIR_1@
             #if str($repeat2.type) == "align"
                 #for $file in $repeat2.input
-                    ln -s '$file' '${file_prefix}_${file.element_identifier}_SE_report.txt' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_SE_report.txt')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "dedup"
                 #for $file in $repeat2.input
-                    ln -s '$file' '${file_prefix}_${file.element_identifier}_deduplication_report.txt' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_deduplication_report.txt')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "meth_extract"
                 #for $file in $repeat2.input
-                    ln -s '$file' '${file_prefix}_${file.element_identifier}_splitting_report.txt' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_splitting_report.txt')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "m_bias"
                 #for $file in $repeat2.input
-                    ln -s '$file' '${file_prefix}_${file.element_identifier}_M-bias.txt' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_M-bias.txt')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "bam2nuc"
                 #for $file in $repeat2.input
-                    ln -s '$file' '${file_prefix}_${file.element_identifier}.nucleotide_stats.txt' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.nucleotide_stats.txt')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #end if
         #end for
@@ -77,40 +113,68 @@
     #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}' &&
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, 'short_summary_' + str($identifier))
+            ln -s '$file' '$file_path' &&
         #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'
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, str($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) == "deeptools"
+        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
+            #if str($repeat2.type) == "bamPEFragmentSize"
+                #set $pattern = "Frag."
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "estimateReadFiltering"
+                #set $pattern = "Internally-determined Duplicate"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotCoverageStdout"
+                #set $pattern = "sample"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotCoverageOutRawCounts"
+                #set $pattern = "#plotCoverage --outRawCounts"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotEnrichment"
+                #set $pattern = "featureReadCount"
+                @LN_2_FILES@
+            #elif str($repeat2.type) == "plotFingerprintOutRawCounts"
+                #set $pattern = "#plotFingerprint --outRawCounts"
+                @LN_2_FILES@
+            #end if
+        #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' &&
+            @CREATE_REPEAT_DIR_1@
             #if str($repeat2.type) == "data"
                 #for $k, $file in enumerate($repeat2.input)
-                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir, 'fastqc_data.txt')
                     mkdir '$file_dir' &&
-                    ln -s '$file' '$file_dir/fastqc_data.txt' &&
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "theoretical_gc"
                 #for $file in $repeat2.input
-                    ln -s '$file' '$repeat_dir/${file.element_identifier}_fastqc_theoretical_gc' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_fastqc_theoretical_gc')
+                    ln -s '$file' '$file_path' &&
                 #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)
+            @ESCAPE_IDENTIFIER@
+            #set file_prefix = os.path.join($software_dir, str($identifier))
             if grep -qw Status '$file'; then
                 ln -s '$file' '${file_prefix}.summary';
             else
-                echo -e 'Status\t$file.element_identifier' > '${file_prefix}.summary';
+                echo -e 'Status\t${identifier}' > '${file_prefix}.summary';
                 cat '$file' >> '${file_prefix}.summary';
             fi &&
         #end for
@@ -129,7 +193,9 @@
         #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}' &&
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, 'HiCUP_summary_report_' + str($identifier))
+            ln -s '${file}' '$file_path' &&
         #end for
     #elif str($repeat.software_cond.software) == "hisat2"
         #set $pattern = "HISAT2 summary stats:"
@@ -185,35 +251,40 @@
         @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)
+            #set file_dir = os.path.join($software_dir, 'file_' + str($k))
+            #set file_path = os.path.join($file_dir, 'report.tsv')
             mkdir '$file_dir' &&
-            ln -s '$file' '$file_dir/report.tsv' &&
+            ln -s '$file' '$file_path' &&
         #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' &&
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, str($identifier) + '.cnt')
+            ln -s '$file' '$file_path' &&
         #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' &&
+            @CREATE_REPEAT_DIR_2@
             #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' &&
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.geneBodyCoverage.txt')
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.inner_distance_freq.txt')
+                    ln -s '${file}' '$file_path' &&
                 #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' &&
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.GC.xls')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type.type) == "junction_annotation"
                 #set $pattern = "Group               Total_bases         Tag_count           Tags/Kb"
@@ -223,31 +294,34 @@
                 @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' &&
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.pos.DupRate.xls') 
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type.type) == "infer_experiment"
                 #set $pattern = "Fraction of reads explained by"
                 #for $k, $file in enumerate($repeat2.type.input)
+                    #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '_infer_experiment.txt') 
                     grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
-                    ln -s '$file' '$repeat_dir/$file_${k}_infer_experiment.txt' &&
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+            @CREATE_REPEAT_DIR_2@
             #if str($repeat2.type.type) == "meta"
                 #for $k, $file in enumerate($repeat2.type.input)
-                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir, 'meta_info.json')
                     mkdir '$file_dir' &&
-                    ln -s '$file' '$file_dir/meta_info.json' &&
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type.type) == "fld"
                 #for $k, $file in enumerate($repeat2.type.input)
-                    #set file_dir = $repeat_dir + '/file_' + str($k)
+                    #set file_dir = os.path.join($repeat_dir, 'file_' + str($k))
+                    #set file_path = os.path.join($file_dir,'flenDist.txt')
                     mkdir '$file_dir' &&
-                    ln -s '$file' '$file_dir/flenDist.txt' &&
+                    ln -s '$file' '$file_path' &&
                 #end for
             #end if
         #end for
@@ -256,8 +330,7 @@
         @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' &&
+            @CREATE_REPEAT_DIR_2@
             #if str($repeat2.type.type) == "stats"
                 #set $pattern = "This file was produced by samtools stats"
                 @LN_3_FILES@
@@ -266,7 +339,9 @@
                 @LN_3_FILES@
             #elif str($repeat2.type.type) == "idxstats"
                 #for $file in $repeat2.type.input
-                    ln -s '$file' '$repeat_dir/${file.element_identifier}_idxstat' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_idxstat')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type.type) == "rmdup"
                 #set $pattern = "[bam_rmdup"
@@ -281,60 +356,81 @@
         @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 &&
+            @CREATE_REPEAT_DIR_2@
             #if str($repeat2.type.type) == "log"
                 #for $file in $repeat2.type.input
-                    ln -s '$file' '${repeat_dir}/${file.element_identifier}_Log.final.out' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_Log.final.out')
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '_ReadsPerGene.out.tab')
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, str($identifier) + 'align_summary.txt')
+            ln -s '$file' '$file_path' &&
         #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 &&
+            @CREATE_REPEAT_DIR_2@
             #if str($repeat2.type.type) == "relatedness2"
                 #for $file in $repeat2.type.input
-                    ln -s '$file' '${repeat_dir}/${file.element_identifier}.relatedness2' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.relatedness2')
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.count')
+                    ln -s '$file' '$file_path' &&
                 #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' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.qual')
+                    ln -s '$file' '$file_path' &&
                 #end for
             #elif str($repeat2.type) == "tstv_summary"
                 #for $file in $repeat2.type.input
-                    ln -s '$file' '${repeat_dir}/${file.element_identifier}.TsTv.summary' &&
+                    @ESCAPE_IDENTIFIER@
+                    #set file_path = os.path.join($repeat_dir, str($identifier) + '.TsTv.summary')
+                    ln -s '$file' '$file_path' &&
                 #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}' &&
+            #set file_path = os.path.join($software_dir, 'file_' + str($i) + '_' + str($j))
+            ln -s '$file' '$file_path' &&
             more $file &&
         #end for
     #end if
 #end for
 
 multiqc multiqc_WDir
+--filename "report"
+
+#if str($title)
+    --title "$title"
+#end if
+#if str($comment)
+    --comment "$comment"
+#end if
 
 #if $configfile == "T"
-    -c '$multiqc_config'
+    --config '$multiqc_config'
 #end if
     ]]></command>
     <configfiles>
@@ -371,6 +467,7 @@
                     <!--<option value="adapterRemoval">Adapter Removal</option>-->
                     <!--<option value="afterqc">AfterQC</option>-->
                     <option value="bamtools">Bamtools</option>
+                    <!--<option value="bbmap">BBMap</option>-->
                     <option value="bcftools">Bcftools</option>
                     <!--<option value="bcl2fastq">bcl2fastq</option>-->
                     <!--<option value="biobloomtools">BioBloom Tools</option>-->
@@ -380,19 +477,23 @@
                     <option value="busco">BUSCO</option>
                     <!--<option value="clusterflow">Cluster Flow</option>-->
                     <option value="cutadapt">Cutadapt/Trim Galore!</option>
+                    <!--<option value="clipandmerge">ClipAndMerge</option>-->
                     <!--<option value="conpair">Conpair</option>-->
+                    <!--<option value="dedup">DeDup</option>-->
+                    <option value="deeptools">deepTools</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="gatk">GATK</option>
                     <!--<option value="goleft_indexcov">goleft indexcov</option>-->
                     <option value="hicexplorer">HiCExplorer</option>
                     <!--<option value="hicup">HiCUP</option>-->
                     <option value="hisat2">HISAT2</option>
                     <!--<option value="homer">HOMER</option>-->
                     <option value="htseq">HTSeq</option>
+                    <!--<option value="interop">InterOp</option>-->
                     <!--<option value="jellyfish">Jellyfish</option>-->
                     <option value="kallisto">Kallisto</option>
                     <!--<option value="leehom">leeHom</option>-->
@@ -407,19 +508,22 @@
                     <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="rseqc">RSeQC</option>
                     <!--<option value="salmon">Salmon</option>-->
                     <option value="samblaster">Samblaster</option>
                     <option value="samtools">Samtools</option>
+                    <!--<option value="sargasso">Sargasso</option>-->
                     <!--<option value="skewer">Skewer</option>-->
-                    <option value="sortmerna">SortMeRNA</option>
                     <!--<option value="slamdunk">Slamdunk</option>-->
-                    <!--<option value="snpeff">SnpEff</option>-->
+                    <option value="snpeff">SnpEff</option>
+                    <option value="sortmerna">SortMeRNA</option>
                     <option value="star">STAR</option>
+                    <!--<option value="supernova">Supernova</option>-->
                     <!--<option value="theta2">THeTA2</option>-->
                     <option value="tophat">TopHat2</option>
                     <option value="trimmomatic">Trimmomatic</option>
                     <option value="vcftools">VCFTools</option>
+                    <!--<option value="verifybamid">VerifyBAMID</option>-->
                     <!--Custom-->
                     <option value="custom_content">Custom Content</option>
                 </param>
@@ -450,13 +554,29 @@
                 <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="deeptools">
+                    <repeat name="output" title="deepTools output" min="1">
+                        <param name="type" type="select" label="deepTool used to generate the output?">
+                            <option value="bamPEFragmentSize">bamPEFragmentSize</option>
+                            <option value="estimateReadFiltering">estimateReadFiltering</option>
+                            <option value="plotCoverageStdout">plotCoverageStdout</option>
+                            <option value="plotCoverageOutRawCounts">plotCoverageOutRawCounts</option>
+                            <option value="plotEnrichment">plotEnrichment</option>
+                            <option value="plotFingerprintOutRawCounts">plotFingerprintOutRawCounts</option>
+                            <option value="plotFingerprintOutQualityMetrics">plotFingerprintOutQualityMetrics</option>
+                        </param>
+                        <param name="input" type="data" format="txt" multiple="true" label="Bismark output"/>
+                    </repeat>
+                </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"/>
+                        <param name="input" type="data" format="txt" multiple="true" label="FastQC output">
+                            <validator type="expression" message="MultiQC does not accept the HTML report generated by FastQC, only the Raw Data">value is not None and value.extension != "html"</validator>
+                        </param>
                     </repeat>
                 </when>
                 <when value="featureCounts">
@@ -584,6 +704,9 @@
                 <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="snpeff">
+                    <param name="input" type="data" format="csv" multiple="true" label="Output of SnpEff"/>
+                </when>
                 <when value="star">
                     <repeat name="output" title="STAR output" min="1">
                         <conditional name="type">
@@ -647,15 +770,18 @@
                 </when>
             </conditional>
         </repeat>
+        <param name="title" type="text" value="" optional="true" label="Report title" help="It is printed as page header"/>
+        <param name="comment" type="text" value="" optional="true" label="Custom comment" help="It will be printed at the top of the report"/>
+        <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"/>
         <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">
+        <data name="html_report" format="html" from_work_dir="report.html" label="${tool.name} on ${on_string}: Webpage" />
+        <data name="log" format="txt" from_work_dir="report_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" />
+            <discover_datasets pattern="multiqc_(?P&lt;designation&gt;.+)\.txt" format="tabular" directory="report_data" />
         </collection>
     </outputs>
     <tests>
@@ -693,9 +819,13 @@
                     <param name="input" value="trimmomatic.txt" />
                 </conditional>
             </repeat>
+            <param name="title" value="Title of the report"/>
+            <param name="comment" value="Commment for the report"/>
             <param name="saveLog" value="True"/>
             <output name="html_report">
                 <assert_contents>
+                    <has_text text="Title of the report" />
+                    <has_text text="Commment for the report" />
                     <has_text text="cutadapt_plot" />
                     <has_text text="fastqc_seq_heatmap_key_t" />
                     <has_text text="flexbar_plot" />
@@ -785,9 +915,9 @@
             </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="bowtie2" file="bowtie2_stats.tabular" compare="sim_size" delta="20"/>
                 <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="hisat2" file="hisat2_stats.tabular" compare="sim_size" delta="20"/>
                 <!-- <element name="hicexplorer" file="hicexplorer_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"/>
@@ -815,6 +945,35 @@
             </repeat>
             <repeat name="results">
                 <conditional name="software_cond">
+                    <param name="software" value="deeptools" />
+                    <repeat name="output">
+                        <param name="type" value="bamPEFragmentSize"/>
+                        <param name="input" value="deeptools_bamPEFragmentSize.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="estimateReadFiltering"/>
+                        <param name="input" value="deeptools_estimateReadFiltering.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="plotCoverageStdout"/>
+                        <param name="input" value="deeptools_plotCoverageStdout.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="plotCoverageOutRawCounts"/>
+                        <param name="input" value="deeptools_plotCoverageOutRawCounts.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="plotEnrichment"/>
+                        <param name="input" value="deeptools_plotEnrichment.txt"/>
+                    </repeat>
+                    <repeat name="output">
+                        <param name="type" value="plotFingerprintOutRawCounts"/>
+                        <param name="input" value="deeptools_plotFingerprintOutRawCounts.txt"/>
+                    </repeat>
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
                     <param name="software" value="featureCounts" />
                     <param name="input" value="featureCounts.txt" />
                 </conditional>
@@ -921,6 +1080,12 @@
             </repeat>
             <repeat name="results">
                 <conditional name="software_cond">
+                    <param name="software" value="snpeff" />
+                    <param name="input" value="snpeff.csv" />
+                </conditional>
+            </repeat>
+            <repeat name="results">
+                <conditional name="software_cond">
                     <param name="software" value="vcftools" />
                     <repeat name="output">
                         <conditional name="type">
@@ -936,6 +1101,7 @@
                     <has_text text="bamtools-stats" />
                     <has_text text="bcftools_stats_indel-lengths" />
                     <has_text text="busco-lineage-fungi_odb9" />
+                    <has_text text="deeptools" />
                     <has_text text="featureCounts_assignment_plot" />
                     <has_text text="gatk_varianteval_variant_plot" />
                     <has_text text="htseq_assignment_plot" />
@@ -948,17 +1114,17 @@
                     <has_text text="samblaster_duplicates" />
                     <has_text text="quast-stats" />
                     <has_text text="samtools-flagstat-dp" />
-                    <has_text text="bamtools-stats" />
+                    <has_text text="snpeff" />
                 </assert_contents>
             </output>
             <output_collection name="stats" type="list">
-                <element name="bamtools_stats" file="bamtools_stats.tabular" compare="sim_size" delta="0"/>
+                <element name="bamtools_stats" file="bamtools_stats.tabular" compare="sim_size" delta="10"/>
                 <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="busco" file="busco_stats.tabular" compare="sim_size" delta="10"/>
                 <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="htseq" file="htseq_stats.tabular" compare="sim_size" delta="10"/>
                 <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"/>
@@ -975,6 +1141,7 @@
                     </assert_contents>
                 </element>
                 <element name="samtools_stats" file="samtools_stats_stats.tabular" compare="sim_size" delta="15"/>
+                <element name="snpeff" file="snpeff_stats.tabular" compare="sim_size" delta="10"/>
             </output_collection>
         </test>
         <test>
@@ -1005,7 +1172,7 @@
 
 ----
 
-The first integration of this tool was made by Cyril Monjeaud and Yvan Le Bras (`Enancio <http://enancio.fr/>`_ and Rennes GenOuest Bio-informatics Core Facility).
+The first integration of this tool was made by Cyril Monjeaud and Yvan Le Bras (`Enancio <http://enancio.fr/>`_ and Rennes GenOuest Bio-informatics Core Facility). It is now maintained by the `Intergalactic Utilities Commission <https://galaxyproject.org/iuc>`_.
     ]]></help>
     <citations>
         <citation type="doi">10.1093/bioinformatics/btw354</citation>