diff macros.xml @ 24:f7e2f1eb3a16 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/multiqc commit dffbb5d421a5a5773bcb7f05933b12c45461bb58
author iuc
date Mon, 02 Sep 2024 14:22:54 +0000
parents abfd8a6544d7
children
line wrap: on
line diff
--- a/macros.xml	Sat Dec 10 11:22:18 2022 +0000
+++ b/macros.xml	Mon Sep 02 14:22:54 2024 +0000
@@ -1,6 +1,6 @@
 <macros>
-    <token name="@TOOL_VERSION@">1.11</token>
-    <token name="@VERSION_SUFFIX@">1</token>
+    <token name="@TOOL_VERSION@">1.24.1</token>
+    <token name="@VERSION_SUFFIX@">0</token>
     <xml name="bio_tools">
         <xrefs>
             <xref type="bio.tools">multiqc</xref>
@@ -9,14 +9,46 @@
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@">multiqc</requirement>
-         </requirements>
+        </requirements>
+    </xml>
+    <xml name="citations">
+        <citations>
+            <citation type="doi">10.1101/gr.244293.118</citation>
+        </citations>
     </xml>
-
+    <xml name="configfile">
+        <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>
+    </xml>
     <token name="@ESCAPE_IDENTIFIER@">
         <![CDATA[
         #set identifier = re.sub('[^\s\w\-]', '_', str($file.element_identifier))
     ]]></token>
-
     <token name="@CHECK_LN_FILE@">
         <![CDATA[
         #if $file_path in $file_paths
@@ -26,33 +58,25 @@
         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_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@">
+    <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@">
+    ]]></token>
+    <token name="@LN_FILES@">
         <![CDATA[
         #set file_paths = []
-        #for $file in $repeat.software_cond.input
+        #for $file in $repeat.software_cond.input:
             @ESCAPE_IDENTIFIER@
             #set file_path = os.path.join($software_dir, str($identifier))
             @CHECK_LN_FILE@
         #end for
     ]]></token>
-
     <token name="@LN_2_FILES@">
         <![CDATA[
         #set file_paths = []
@@ -63,7 +87,6 @@
             @CHECK_LN_FILE@
         #end for
     ]]></token>
-
     <token name="@LN_3_FILES@">
         <![CDATA[
         #set file_paths = []
@@ -73,293 +96,7 @@
             @CHECK_LN_FILE@
         #end for
     ]]></token>
-
-    <token name="@BISMARK_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_1@
-            #if str($repeat2.type) == "align"
-                #for $file in $repeat2.input
-                    @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
-                    @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
-                    @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
-                    @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
-                    @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
-    ]]></token>
-
-    <token name="@DEEPTOOLS_INPUT@"><![CDATA[
-        #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
-    ]]></token>
-
-    <token name="@PICCARD_INPUT@"><![CDATA[
-        #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"
-                @   @
-            #elif str($repeat2.type) == "insertsize"
-                #set $pattern = "picard.analysis.InsertSizeMetrics"
-                @LN_2_FILES@
-            #elif str($repeat2.type) == "markdups"
-                #set $pattern = "MarkDuplicates"
-                @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
-    ]]></token>
-
-    <token name="@FASTQC_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_1@
-            #if str($repeat2.type) == "data"
-                #for $k, $file in enumerate($repeat2.input)
-                    #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_path' &&
-                #end for
-            #elif str($repeat2.type) == "theoretical_gc"
-                #for $file in $repeat2.input
-                    @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
-    ]]></token>
-
-    <token name="@RSEQ_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @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)
-                    #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)
-                    #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)
-                    #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_saturation"
-                #for $k, $file in enumerate($repeat2.type.input)
-                #set file_path = os.path.join($repeat_dir, 'file_' + str($k) + '.junctionSaturation_plot.r')
-                    ln -s '${file}' '$file_path' &&
-                #end for
-            #elif str($repeat2.type.type) == "read_distribution"
-                #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)
-                    #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 $file in $repeat2.type.input
-                    @ESCAPE_IDENTIFIER@
-                    #set file_path = os.path.join($repeat_dir, str($identifier))
-                    grep -q "$pattern" $file || die "'$pattern' not found in the file" &&
-                    ln -s '$file' '$file_path' &&
-                #end for
-            #end if
-        #end for
-    ]]></token>
-
-    <token name="@VCFTOOLS_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_2@
-            #if str($repeat2.type.type) == "relatedness2"
-                #for $file in $repeat2.type.input
-                    @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
-                    @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
-                    @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
-                    @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
-    ]]></token>
-    
-    <token name="@QUALIMAP_INPUT@"><![CDATA[
-        #for $file in $repeat.software_cond.input
-            #if re.search("genome_results", str($file.element_identifier))
-                sample="\$(grep 'bam file = ' $file | sed 's/bam file = //g' | sed 's: ::g')" &&
-                dir_name="$software_dir/\${sample}" &&
-                mkdir -p \${dir_name} &&
-                filepath_1="\${dir_name}/genome_results.txt" &&
-                ln -sf '$file' \${filepath_1} &&
-            #elif re.search("coverage_histogram", str($file.element_identifier))
-                nested_dir_name="\${dir_name}/raw_data_qualimapReport/" &&
-                mkdir -p \${nested_dir_name} &&
-                filepath_2="\${nested_dir_name}/coverage_histogram.txt" &&
-                ln -sf '$file' \${filepath_2} &&
-            #elif re.search("gc-content_distribution", str($file.element_identifier))
-                nested_dir_name="\${dir_name}/raw_data_qualimapReport/" &&
-                mkdir -p \${nested_dir_name} &&
-                filepath_3="\${nested_dir_name}/mapped_reads_gc-content_distribution.txt" &&
-                ln -sf '$file' \${filepath_3} &&
-            #else
-                #pass
-            #end if
-        #end for
-    ]]></token>
-
-    <token name="@SALMON_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_2@
-            #if str($repeat2.type.type) == "meta"
-                #for $k, $file in enumerate($repeat2.type.input)
-                    #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_path' &&
-                #end for
-            #elif str($repeat2.type.type) == "fld"
-                #for $k, $file in enumerate($repeat2.type.input)
-                    #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_path' &&
-                #end for
-            #end if
-        #end for
-    ]]></token>
-
-    <token name="@SAMTOOLS_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_2@
-            #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
-                    @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"
-                @LN_3_FILES@
-            #end if
-        #end for
-    ]]></token>
-
-    <token name="@STAR_INPUT@"><![CDATA[
-        #for $j, $repeat2 in enumerate( $repeat.software_cond.output )
-            @CREATE_REPEAT_DIR_2@
-            #if str($repeat2.type.type) == "log"
-                #for $file in $repeat2.type.input
-                    @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
-                    @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
-    ]]></token>
-
+    <!-- is currently not used -->
     <xml name="element_assert" token_name="" token_lines="" token_columns="" token_text="">
         <element name="@NAME@">
             <assert_contents>
@@ -370,10 +107,499 @@
             </assert_contents>
         </element>
     </xml>
-
-    <xml name="citations">
-        <citations>
-            <citation type="doi">10.1101/gr.244293.118</citation>
-        </citations>
+    <xml name="general_tests">
+        <!--Test 01-->
+        <test expect_num_outputs="3">
+            <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="fastp"/>
+                    <param name="input" value="fastp1.json.txt,fastp2.json.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="slamdunk"/>
+                    <param name="input" value="slamdunk_summary.txt,slamdunk_reads1_overallrates.csv,slamdunk_reads2_overallrates.csv"/>
+                </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="title" value="Title of the report"/>
+            <param name="comment" value="Commment for the report"/>
+            <param name="flat" value="true"/>
+            <param name="export" 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_trimmed_sequences_plot"/>
+                    <has_text text="All-in-one FASTQ preprocessor"/>
+                    <has_text text="fastqc_seq_heatmap_key_t"/>
+                    <has_text text="flexbar_plot"/>
+                    <has_text text="Slamdunk"/>
+                    <has_text text="sortmerna-detailed-plot"/>
+                    <has_text text="trimmomatic_plot"/>
+                </assert_contents>
+            </output>
+            <output name="stats">
+                <assert_contents>
+                    <has_text text="dataset_33"/>
+                    <has_text text="R1_fq"/>
+                    <has_text text="poulet5_1"/>
+                    <has_text text="result_right"/>
+                    <has_text text="bwa-mem-fastq1_fq"/>
+                    <has_text text="25839_merged"/>
+                    <has_text text="Slamdunk_mqc_generalstats_slamdunk_retained"/>
+                    <has_text text="C2"/>
+                    <has_n_lines n="11"/>
+                    <has_n_columns n="22"/>
+                </assert_contents>
+            </output>
+            <output_collection name="plots" type="list" count="29"/>
+        </test>
+        <!--Test 02-->
+        <test expect_num_outputs="2">
+            <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="hicexplorer"/>
+                    <param name="input" value="hicexplorer1.log,hicexplorer1.log,hicexplorer2.log"/>
+                </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="macs2"/>
+                    <param name="input" value="macs_1.txt,macs_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>
+            <output name="html_report">
+                <assert_contents>
+                    <has_text text="bismark-alignment"/>
+                    <has_text text="bowtie2_se_plot"/>
+                    <has_text text="mqc-module-section-bowtie2"/>
+                    <has_text text="hisat2_se_plot"/>
+                    <has_text text="MACS2"/>
+                    <has_text text="star_alignment_plot"/>
+                    <has_text text="tophat_alignment"/>
+                    <has_text text="hicexplorer"/>
+                    <has_text text="hicexplorer1_log_1"/>
+                </assert_contents>
+            </output>
+            <output name="stats">
+                <assert_contents>
+                    <has_text text="bismark_txt_SE_report"/>
+                    <has_text text="bowtie2_1_txt"/>
+                    <has_text text="HS002-PE-R00059_BD0U5YACXX.RHM067_CAGATC_L002_R2"/>
+                    <has_text text="treat2"/>
+                    <has_text text="hicexplorer_3_hicexplorer2_log_small_test_rf"/>
+                    <has_text text="hisat2_2_txt"/>
+                    <has_text text="HS002-PE-R00059_BD0U5YACXX.RHM067_CAGATC_L002_R1"/>
+                    <has_text text="treat2"/>
+                    <has_text text="Cutadapt"/>
+                    <has_text text="star_log_txt"/>
+                    <has_text text="tophat_txtalign"/>
+                    <has_n_lines n="17"/>
+                    <has_n_columns n="23"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!--Test 03-->
+        <test expect_num_outputs="2">
+            <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="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>
+            </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="qualimap"/>
+                    <param name="input" value="genome_results.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="snpeff"/>
+                    <param name="input" value="snpeff.csv" ftype="csv"/>
+                </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="deeptools"/>
+                    <has_text text="featureCounts_assignment_plot"/>
+                    <has_text text="gatk_varianteval_variant_plot"/>
+                    <has_text text="htseq_assignment_plot"/>
+                    <has_text text="picard_alignment_readlength"/>
+                    <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="qualimap"/>
+                    <has_text text="samblaster_duplicates"/>
+                    <has_text text="quast-stats"/>
+                    <has_text text="samtools-flagstat-dp"/>
+                    <has_text text="snpeff"/>
+                </assert_contents>
+            </output>
+            <output name="stats">
+                <assert_contents>
+                    <has_text text="bamtools_txt"/>
+                    <has_text text="Test1"/>
+                    <has_text text="Prokka_mqc_generalstats_prokka_contigs"/>
+                    <has_text text="5: TopHat on data 1, data 14, and data 13"/>
+                    <has_text text="gatk_varianteval_txt"/>
+                    <has_text text="x_bam"/>
+                    <has_text text="htseq_txt"/>
+                    <has_text text="picard_CollectRnaSeqMetrics_bam"/>
+                    <has_text text="dataset_114"/>
+                    <has_text text="Helicobacter pylori"/>
+                    <has_text text="Sample2"/>
+                    <has_text text="14892_1#15"/>
+                    <has_text text="samtools_flagstat_txt"/>
+                    <has_text text="mapped_passed"/>
+                    <has_text text="stats_mqc_generalstats_samtools_stats_error_rate"/>
+                    <has_text text="samtools_stats_txt"/>
+                    <has_text text="snpeff_csv"/>
+                    <has_text text="Bamtools"/>
+                    <has_n_lines n="22"/>
+                    <has_n_columns n="46"/>
+                </assert_contents>
+            </output>
+        </test>
+        <!--Test 04-->
+        <test expect_num_outputs="2">
+            <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="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" ftype="html">
+                <assert_contents>
+                    <has_size value="4594258" delta="500"/>
+                </assert_contents>
+            </output>
+            <!--output name="stats" ftype="tabular">
+                Not created anymore. Proper test needed.
+                <assert_contents>
+                    <has_n_lines n="2" />
+                </assert_contents>
+            </output-->
+        </test>
+        <!--Test 05-->
+        <test expect_num_outputs="3">
+            <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>
+            <param name="title" value="Title of the report"/>
+            <param name="comment" value="Commment for the report"/>
+            <param name="flat" value="true"/>
+            <param name="export" 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="fastqc_seq_heatmap_key_t"/>
+                </assert_contents>
+            </output>
+            <output name="stats" ftype="tabular">
+                <assert_contents>
+                    <has_text text="poulet5_2"/>
+                    <has_text text="FastQC"/>
+                    <has_n_lines n="3"/>
+                    <has_n_columns n="7"/>
+                </assert_contents>
+            </output>
+            <output_collection name="plots" type="list" count="7">
+                <element name="fastqc_per_base_sequence_quality_plot" file="mqc_fastqc_per_base_sequence_quality_plot_1.txt">
+                    <assert_contents>
+                        <has_size size="2877" delta="200"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+        <!--Test 06-->
+        <test expect_num_outputs="2">
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="pycoqc"/>
+                    <param name="input" value="pycoqc.json"/>
+                </conditional>
+            </repeat>
+            <param name="title" value="Title of the report"/>
+            <param name="comment" value="Commment for the report"/>
+            <!-- <param name="flat" 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="General Statistics"/>
+                    <has_text text="pycoqc_count_plot"/>
+                    <has_text text="pycoqc_read_len_plot"/>
+                    <has_text text="pycoqc_read_qual_plot"/>
+                </assert_contents>
+            </output>
+            <output name="stats" ftype="tabular">
+                <assert_contents>
+                    <has_text text="pycoQC_mqc_generalstats_pycoqc_passed_median_read_length"/>
+                    <has_text text="pycoqc_json"/>
+                </assert_contents>
+            </output>
+        </test>
     </xml>
 </macros>