changeset 30:26ee5e11ecbe draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/multiqc commit d4b9696c6c533ca1841c22b52bb3e73833e2e0d4
author iuc
date Thu, 15 Jan 2026 20:39:44 +0000
parents e4dd4c0622f6
children
files checkm2_plugin.xml fastp_plugin.xml macros.xml multiqc.xml samtools_plugin.xml sylphtax_plugin.xml test-data/checkm2-wrong.tsv test-data/checkm2.tsv test-data/sylphtax.sylphmpa
diffstat 9 files changed, 134 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/checkm2_plugin.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -0,0 +1,47 @@
+<macros>
+    <token name="@CHECKM2_COMMAND@"><![CDATA[
+        #set $pattern = "Name\tCompleteness\tContamination\tCompleteness_Model_Used\tTranslation_Table_Used"
+        @LN_FILES@
+    ]]></token>
+    <xml name="checkm2_form">
+        <param name="input" type="data" format="tabular" multiple="true" label="Output of CheckM2" help="It should be the quality report from CheckM2"/>
+    </xml>
+    <xml name="checkm2_test">
+        <test expect_num_outputs="3">
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="checkm2"/>
+                    <param name="input" value="checkm2.tsv"/>
+                </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="CheckM2"/>
+                </assert_contents>
+            </output>
+            <output_collection name="plots" type="list" count="0"/>
+        </test>
+        <!-- This test use a Checkm2 TSV file with wrong required headers to check error handling. 
+        Some checkm2 column names are parameter-dependent and the checkm2 multiQC module rely on a specific column pattern.
+        An issue has been opened : https://github.com/MultiQC/MultiQC/issues/3466 
+        There is a stdio rule in macro that need to be removed once the issue is fixed -->
+        <test expect_failure="true" expect_exit_code="1">
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="checkm2"/>
+                    <param name="input" value="checkm2-wrong.tsv"/>
+                </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"/>
+        </test>
+    </xml>
+</macros>
--- a/fastp_plugin.xml	Fri Oct 10 20:12:28 2025 +0000
+++ b/fastp_plugin.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -38,7 +38,7 @@
                     <has_text text="fastp-after_filtering_q30_rate"/>
                     <has_text text="bwa-mem-fastq1_fq"/>
                     <has_n_lines n="3"/>
-                    <has_n_columns n="8"/>
+                    <has_n_columns n="10"/>
                 </assert_contents>
             </output>
             <output_collection name="plots" type="list" count="15"/>
--- a/macros.xml	Fri Oct 10 20:12:28 2025 +0000
+++ b/macros.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -1,6 +1,6 @@
 <macros>
-    <token name="@TOOL_VERSION@">1.27</token>
-    <token name="@VERSION_SUFFIX@">4</token>
+    <token name="@TOOL_VERSION@">1.33</token>
+    <token name="@VERSION_SUFFIX@">0</token>
     <xml name="bio_tools">
         <xrefs>
             <xref type="bio.tools">multiqc</xref>
@@ -11,6 +11,16 @@
             <requirement type="package" version="@TOOL_VERSION@">multiqc</requirement>
         </requirements>
     </xml>
+    <!--This stdio rule is temporary because of an issue with CheckM2 report columns, it needs to be removed when the issue is fixed -->
+    <xml name="stdio">
+        <stdio>
+            <regex
+                match="Module 'checkm2: .*not found in the file.*"
+                source="both"
+                level="fatal"
+                description="Invalid CheckM2 TSV file: required header not found" />
+        </stdio>
+    </xml>
     <xml name="citations">
         <citations>
             <citation type="doi">10.1101/gr.244293.118</citation>
@@ -184,11 +194,11 @@
                     <has_text text="slamdunk-retained"/>
                     <has_text text="C2"/>
                     <has_n_lines n="11"/>
-                    <has_n_columns n="22"/>
+                    <has_n_columns n="24"/>
                 </assert_contents>
             </output>
             <output_collection name="plots" type="list" count="29"/>
-            <output_collection name="png_plot" type="list" count="38"/>
+            <output_collection name="png_plot" type="list" count="36"/>
         </test>
         <!--Test 02-->
         <test expect_num_outputs="2">
@@ -482,7 +492,7 @@
                     <has_text text="qualimap"/>
                     <has_text text="samblaster_duplicates"/>
                     <has_text text="quast-stats"/>
-                    <has_text text="samtools-flagstat-dp"/>
+                    <has_text text="samtools-flagstat-pct"/>
                     <has_text text="snpeff"/>
                 </assert_contents>
             </output>
@@ -507,8 +517,8 @@
                     <has_text text="snpeff_csv"/>
                     <has_text text="bamtools-mapped_reads_pct"/>
                     <has_text text="bamtools-duplicates_pct"/>
-                    <has_n_lines n="22"/>
-                    <has_n_columns n="50"/>
+                    <has_n_lines n="23"/>
+                    <has_n_columns n="55"/>
                 </assert_contents>
             </output>
         </test>
@@ -528,7 +538,7 @@
             </repeat>
             <output name="html_report" ftype="html">
                 <assert_contents>
-                    <has_size value="4766687" delta="500"/>
+                    <has_size value="2142211" delta="500"/>
                 </assert_contents>
             </output>
             <!--output name="stats" ftype="tabular">
@@ -576,7 +586,7 @@
                     </assert_contents>
                 </element>
             </output_collection>
-            <output_collection name="png_plot" type="list" count="11"/>
+            <output_collection name="png_plot" type="list" count="9"/>
             
         </test>
         <!--Test 06-->
--- a/multiqc.xml	Fri Oct 10 20:12:28 2025 +0000
+++ b/multiqc.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -21,6 +21,7 @@
         <import>salmon_plugin.xml</import>
         <import>samtools_plugin.xml</import>
         <import>star_plugin.xml</import>
+        <import>sylphtax_plugin.xml</import>
         <import>trimmomatic_plugin.xml</import>
         <import>vcftools_plugin.xml</import>
         <import>kraken_plugin.xml</import>
@@ -28,6 +29,7 @@
         <import>bakta_plugin.xml</import>
         <import>freyja_plugin.xml</import>
         <import>checkm_plugin.xml</import>
+        <import>checkm2_plugin.xml</import>
         <import>pairtools_plugin.xml</import>
         <import>porechop_plugin.xml</import>
         <import>snippy_plugin.xml</import>
@@ -41,6 +43,7 @@
     </macros>
     <expand macro="bio_tools"/>
     <expand macro="requirements"/>
+    <expand macro="stdio"/>
     <version_command>multiqc --version</version_command>
     <command detect_errors="aggressive">
 <![CDATA[
@@ -148,6 +151,8 @@
         @LN_FILES@
     #else if str($repeat.software_cond.software) == "star":
         @STAR_COMMAND@
+    #elif str($repeat.software_cond.software) == "sylphtax"
+        @SYLPHTAX_COMMAND@
     #elif str($repeat.software_cond.software) == "tophat"
         #for $file in $repeat.software_cond.input
             @ESCAPE_IDENTIFIER@
@@ -168,6 +173,8 @@
         @FREYJA_COMMAND@
     #elif str($repeat.software_cond.software) == "checkm"
         @CHECKM_COMMAND@
+    #elif str($repeat.software_cond.software) == "checkm2"
+        @CHECKM2_COMMAND@
     #elif str($repeat.software_cond.software) == "pairtools"
         @PAIRTOOLS_COMMAND@
     #elif str($repeat.software_cond.software) == "porechop"
@@ -297,6 +304,7 @@
                     <option value="snpeff">SnpEff</option>
                     <option value="sortmerna">SortMeRNA</option>
                     <option value="star">STAR</option>
+                    <option value="sylphtax">Sylph-tax</option>
                     <!--<option value="supernova">Supernova</option>-->
                     <!--<option value="theta2">THeTA2</option>-->
                     <option value="tophat">TopHat2 (TopHat2 is deprecated you should not use it)</option>
@@ -307,6 +315,7 @@
                     <option value="bakta">Bakta</option>
                     <option value="freyja">Freyja</option>
                     <option value="checkm">CheckM</option>
+                    <option value="checkm2">CheckM2</option>
                     <option value="pairtools">pairtools</option>
                     <option value="porechop">Porechop</option>
                     <option value="snippy">Snippy</option>
@@ -406,6 +415,9 @@
                 <when value="star">
                     <expand macro="star_form"/>
                 </when>
+                <when value="sylphtax">
+                    <expand macro="sylphtax_form"/>
+                </when>
                 <when value="tophat">
                     <param name="input" type="data" format="txt,tabular,tsv,csv" multiple="true" label="Output of TopHat2"/>
                 </when>
@@ -430,6 +442,9 @@
                 <when value="checkm">
                     <expand macro="checkm_form"/>
                 </when>
+                <when value="checkm2">
+                    <expand macro="checkm2_form"/>
+                </when>
                 <when value="pairtools">
                     <expand macro="pairtools_form"/>
                 </when>
@@ -553,6 +568,8 @@
         <expand macro="nonpareil_test"/>
         <expand macro="gtdbtk_test"/>
         <expand macro="sambamba_test"/>
+        <expand macro="checkm2_test"/>
+        <expand macro="sylphtax_test"/>
         <!--expand macro="vcftools_test"/> Does not work, did it ever worked? -->
  
     </tests>
--- a/samtools_plugin.xml	Fri Oct 10 20:12:28 2025 +0000
+++ b/samtools_plugin.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -78,7 +78,7 @@
                 <assert_contents>
                     <has_text text="Title of the report"/>
                     <has_text text="Commment for the report"/>
-                    <has_text text="samtools-flagstat-dp"/>
+                    <has_text text="samtools-flagstat-pct"/>
                 </assert_contents>
             </output>
             <output name="stats">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sylphtax_plugin.xml	Thu Jan 15 20:39:44 2026 +0000
@@ -0,0 +1,34 @@
+<macros>
+    <token name="@SYLPHTAX_COMMAND@"><![CDATA[
+        #for $file in $repeat.software_cond.input
+            @ESCAPE_IDENTIFIER@
+            #set file_path = os.path.join($software_dir, str($identifier) + '.sylphmpa')
+            ln -s '$file' '$file_path' &&
+        #end for
+    ]]></token>
+    <xml name="sylphtax_form">
+        <param name="input" type="data" format="tabular" multiple="true" label="Output of Sylph-tax" help="It should be the sylphmpa report from Sylph-tax"/>
+    </xml>
+    <xml name="sylphtax_test">
+        <test expect_num_outputs="3">
+            <repeat name="results">
+                <conditional name="software_cond">
+                    <param name="software" value="sylphtax"/>
+                    <param name="input" value="sylphtax.sylphmpa"/>
+                </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="Sylph-tax"/>
+                </assert_contents>
+            </output>
+            <output_collection name="plots" type="list" count="8"/>
+        </test>
+    </xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/checkm2-wrong.tsv	Thu Jan 15 20:39:44 2026 +0000
@@ -0,0 +1,3 @@
+Name	Completeness_General	Contamination	Completeness_Specific	Completeness_Model_Used	Additional_Notes
+test1.faa	26.36	0.0	15.9	Neural Network (Specific Model)	None
+test2.faa	96.06	0.05	99.44	Neural Network (Specific Model)	None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/checkm2.tsv	Thu Jan 15 20:39:44 2026 +0000
@@ -0,0 +1,2 @@
+Name	Completeness	Contamination	Completeness_Model_Used	Translation_Table_Used	Coding_Density	Contig_N50	Average_Gene_Length	Genome_Size	GC_Content	Total_Coding_Sequences	Total_Contigs	Max_Contig_Length	Additional_Notes
+HSMA33OT_bin_430.fasta	80.96	5.95	Neural Network (Specific Model)	11	0.896	3599	275.0511202958451	4224255	0.41	4597	1478	27196	None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sylphtax.sylphmpa	Thu Jan 15 20:39:44 2026 +0000
@@ -0,0 +1,10 @@
+#SampleID	raw_reads_metag_test.fastq	Taxonomies_used:['OceanDNA']
+clade_name	relative_abundance	sequence_abundance	ANI (if strain-level)	Coverage (if strain-level)
+d__Bacteria	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacterales	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Escherichia	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia flexneri	100.0	100.0	NA	NA
+d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Enterobacterales|f__Enterobacteriaceae|g__Escherichia|s__Escherichia flexneri|t__OceanDNA-b35151.fa.gz	100.0	100.0	98.0	0.042