changeset 10:331109486d58 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/shovill commit bb738894026385619cda01c39d927bbc40b27c5b
author iuc
date Tue, 16 Dec 2025 11:09:22 +0000
parents ee17a294d3a3
children
files shovill.xml test-data/skesa.gfa
diffstat 2 files changed, 118 insertions(+), 65 deletions(-) [+]
line wrap: on
line diff
--- a/shovill.xml	Thu Oct 12 06:59:42 2023 +0000
+++ b/shovill.xml	Tue Dec 16 11:09:22 2025 +0000
@@ -1,8 +1,8 @@
 <tool id="shovill" name="Shovill" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@">
     <description>Faster SPAdes assembly of Illumina reads</description>
     <macros>
-        <token name="@TOOL_VERSION@">1.1.0</token>
-        <token name="@VERSION_SUFFIX@">2</token>
+        <token name="@TOOL_VERSION@">1.4.2</token>
+        <token name="@VERSION_SUFFIX@">0</token>
     </macros>
     <xrefs>
         <xref type="bio.tools">shovill</xref>
@@ -12,9 +12,6 @@
     </requirements>
     <version_command>shovill --version</version_command>
     <command detect_errors="exit_code"><![CDATA[
-    ## NOTE: the wrapper uses cp instead of ln -s because of this problem
-    ## with shovill 1.1.0: https://github.com/tseemann/shovill/issues/157
-
         #if str($library.lib_type) == "paired"
             #set r1_ext = $library.R1.extension
             #set r2_ext = $library.R2.extension
@@ -41,13 +38,13 @@
 	## (1) If SHOVILL_RAM is already set, use this value
 	## (2) Otherwise, set based on GALAXY_MEMORY_MB
 	## (3) Or default to 4 GB if GALAXY_MEMORY_MB is unset
-	GALAXY_MEMORY_GB=\$((\${GALAXY_MEMORY_MB:-4096}/1024)) &&
+	GALAXY_MEMORY_GB=\$((\${GALAXY_MEMORY_MB:-8192}/1024)) &&
 	SHOVILL_RAM=\${SHOVILL_RAM:-\${GALAXY_MEMORY_GB}} &&
 
         shovill
             --outdir 'out'
             --cpus \${GALAXY_SLOTS:-1}
-            --ram \${SHOVILL_RAM:-4}
+            --ram \${SHOVILL_RAM:-8}
             --R1 'fastq_r1.$(r1_ext)'
             --R2 'fastq_r2.$(r2_ext)'
             $trim
@@ -64,7 +61,10 @@
             #end if
             --minlen $adv.minlen
             --mincov $adv.mincov
-            --assembler $assembler
+            --assembler $assembler_type.assembler
+            #if $assembler_type.assembler == 'spades'
+                $assembler_type.plasmid
+            #end if
             #if $adv.keep_files.nocorr == 'no_correction'
                 --nocorr
             #else
@@ -85,28 +85,36 @@
                 <param name="input1" format="fastq,fastq.gz,fastqsanger,fastqsanger.gz,fastqsanger.bz2" type="data_collection" collection_type="paired" label="Paired collection" help="See help section for an explanation of dataset collections"/>
             </when>
         </conditional>
-        <param argument="--trim" type="boolean" truevalue="--trim" falsevalue="" label="Trim reads" help="Use Trimmomatic to remove common adaptors first (default: OFF)" />
-        <param argument="--assembler" type="select" label="Assembler to use" help="Which assembler would you like shovill to use, default is Spades">
-            <option value="skesa">skesa</option>
-            <option value="megahit">megahit</option>
-            <option value="velvet">velvet</option>
-            <option value="spades" selected="true">Spades</option>
-        </param>
+        <param argument="--trim" type="boolean" truevalue="--trim" falsevalue="" label="Trim reads" help="Use Trimmomatic to remove common adaptors first (default: OFF)"/>
+        <conditional name="assembler_type">
+            <param argument="--assembler" type="select" label="Assembler to use" help="Which assembler would you like shovill to use, default is Spades">
+                <option value="skesa">skesa</option>
+                <option value="megahit">megahit</option>
+                <option value="velvet">velvet</option>
+                <option value="spades" selected="true">Spades</option>
+            </param>
+            <when value="skesa"/>
+            <when value="megahit"/>
+            <when value="velvet"/>
+            <when value="spades">
+                <param argument="--plasmid" type="boolean" truevalue="--plasmid" falsevalue="" label="Plasmid mode" help="Use plasmid mode if available (default: OFF)"/>
+            </when>
+            </conditional>
         <section name="adv" title="Advanced options" expanded="False">
             <param argument="--namefmt" type="text" value="contig%05d" label="Contig name format" help="Format of contig FASTA IDs in 'printf' style (default: 'contig%05d')" >
                 <sanitizer>
                     <valid initial="string.printable">
-                        <remove value="&apos;" />
+                        <remove value="&apos;"/>
                     </valid>
                     <mapping initial="none">
-                        <add source="&apos;" target="&apos;&quot;&apos;&quot;&apos;" />
+                        <add source="&apos;" target="&apos;&quot;&apos;&quot;&apos;"/>
                     </mapping>
                 </sanitizer>
             </param>
-            <param argument="--depth" type="integer" value="100" label="Depth" help="Sub-sample --R1/--R2 to this depth. Disable with --depth 0 (default: 100)" />
-            <param argument="--gsize" type="text" value="" label="Estimated genome size" help="An estimate of the final genome size, it will autodetect if this is blank. (default: '')" />
-            <param argument="--kmers" type="text" value="" label="List of kmer sizes to use" help="List of K-mer sizes to use in SPAdes. Blank is AUTO. default: ''" />
-            <param argument="--opts" type="text" value="" label="Extra SPAdes options" help="eg. --plasmid --sc ... (default: '')" />
+            <param argument="--depth" type="integer" value="100" label="Depth" help="Sub-sample --R1/--R2 to this depth. Disable with --depth 0 (default: 100)"/>
+            <param argument="--gsize" type="text" value="" label="Estimated genome size" help="An estimate of the final genome size, it will autodetect if this is blank. (default: '')"/>
+            <param argument="--kmers" type="text" value="" label="List of kmer sizes to use" help="List of K-mer sizes to use in SPAdes. Blank is AUTO. default: ''"/>
+            <param argument="--opts" type="text" value="" label="Extra SPAdes options" help="eg. --plasmid --sc ... (default: '')"/>
             <conditional name="keep_files">
                 <param argument="--nocorr" type="select" label="Disable post-assembly correction" help="Disable post assembly correction with pilon (default: ON)">
                     <option value="no_correction" selected="true">No corrections</option>
@@ -117,10 +125,10 @@
                     <param argument="--keepfiles" type="boolean" truevalue="--keepfiles"  checked="False" falsevalue=""  label="Keep bam files" help="Keep bam files only if post-assembly correction is enable"/>
                 </when>
             </conditional>
-            <param argument="--minlen" type="integer" value="0" label="Minimum contig length" help="Minimum length of contig to be output. 0 is AUTO (default: 0)" />
-            <param argument="--mincov" type="integer" value="2" label="Minimum contig coverage" help="Minimum coverage to call part of a contig. 0 is AUTO (default: 2)" />
+            <param argument="--minlen" type="integer" value="0" label="Minimum contig length" help="Minimum length of contig to be output. 0 is AUTO (default: 0)"/>
+            <param argument="--mincov" type="integer" value="2" label="Minimum contig coverage" help="Minimum coverage to call part of a contig. 0 is AUTO (default: 2)"/>
         </section>
-        <param name="log" type="boolean" label="Output log file?" checked="true" help="Return the Shovill log file as part of the output. Default is on" />
+        <param name="log" type="boolean" label="Output log file?" checked="true" help="Return the Shovill log file as part of the output. Default is on"/>
 
     </inputs>
     <outputs>
@@ -128,16 +136,24 @@
             <filter>log == True</filter>
         </data>
         <data name="contigs" format="fasta" label="${tool.name} on ${on_string}: Contigs" from_work_dir="out/contigs.fa"/>
-        <data name="contigs_graph" format="txt"  label="${tool.name} on ${on_string}: Contig Graph" from_work_dir="out/contigs.gfa"/>
+        <data name="contigs_graph" format="txt"  label="${tool.name} on ${on_string}: Contig Graph" from_work_dir="out/contigs.gfa">
+            <filter> assembler_type['assembler'] != 'skesa' </filter>
+        </data>
         <data name="bamfiles" format="unsorted.bam" from_work_dir="out/shovill.bam" label="Bam file for ${tool.name} on ${on_string}">
           <filter> adv['keep_files']['nocorr'] == 'yes_correction' and adv['keep_files']['keepfiles'] == True </filter>
         </data>
+        <data name="skesa_gfa" format="gfa1" label="${tool.name} on ${on_string}: SKESA assembly graph" from_work_dir="out/skesa.gfa">
+          <filter> assembler_type['assembler'] == 'skesa' </filter>
+        </data>
     </outputs>
     <tests>
-        <test expect_num_outputs="3"> <!-- Test 1: Basic test -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger" />
-            <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger" />
+        <!-- Test 1: Basic test -->
+        <test expect_num_outputs="3"> 
+            <conditional name="library">
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger"/>
+                <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger"/>
+            </conditional>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -145,18 +161,22 @@
             </output>
             <output name="shovill_std_log" ftype="txt" >
                 <assert_contents>
-                    <has_text text="Read stats: total_bp = 300000"/>
-                    <has_text text="[lighter] Processed 820 reads"/>
+                    <has_text text="[shovill] sum_Len = 300000"/>
+                    <has_text text="[lighter] Processed 762 reads"/>
                     <has_text text="[FLASH] FLASH v1.2.11 complete!"/>
                     <has_text text="[spades] ======= SPAdes pipeline finished."/>
                   </assert_contents>
                 </output>
         </test>
-        <test expect_num_outputs="3"> <!-- Test 2: Auto everything + trim + different name format test -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger" />
-            <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger" />
-            <param name="trim" value="true" />
+
+         <!-- Test 2: Auto everything + trim + different name format test -->
+        <test expect_num_outputs="3">
+            <conditional name="library">
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger"/>
+                <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger"/>
+            </conditional>
+            <param name="trim" value="true"/>
             <section name="adv">
                 <param name="depth" value="0"/>
                 <param name="minlen" value="0"/>
@@ -183,11 +203,17 @@
                 </assert_contents>
             </output>
         </test>
-        <test expect_num_outputs="3"> <!-- Test 3: Alternate assembler #1: Megahit -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger" />
-            <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger" />
-            <param name="assembler" value="megahit" />
+
+        <!-- Test 3: Alternate assembler #1: Megahit -->
+        <test expect_num_outputs="3">
+            <conditional name="library"> 
+            <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger"/>
+                <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger"/>
+            </conditional>
+            <conditional name="assembler_type">
+                <param name="assembler" value="megahit"/>
+            </conditional>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -202,11 +228,17 @@
                 </assert_contents>
             </output>
         </test>
-        <test expect_num_outputs="3"> <!-- Test 4: Alternate assembler #2: Skesa -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger" />
-            <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger" />
-            <param name="assembler" value="skesa" />
+
+         <!-- Test 4: Alternate assembler #2: Skesa -->
+        <test expect_num_outputs="3">
+            <conditional name="library"> 
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger"/>
+                <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger"/>
+            </conditional>
+            <conditional name="assembler_type">
+                <param name="assembler" value="skesa"/>
+            </conditional>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -220,12 +252,23 @@
                     <has_text text="[shovill] Done."/>
                 </assert_contents>
             </output>
+            <output name="skesa_gfa" ftype="gfa1">
+                <assert_contents>
+                    <has_text text="KC:i:4"/>
+                </assert_contents>
+            </output>
         </test>
-        <test expect_num_outputs="3"> <!-- Test 5: Alternate assembler #3: Velvet -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger" />
-            <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger" />
-            <param name="assembler" value="velvet" />
+
+         <!-- Test 5: Alternate assembler #3: Velvet -->
+        <test expect_num_outputs="3">
+            <conditional name="library"> 
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq" ftype="fastqsanger"/>
+                <param name="R2" value="mutant_R2.fastq" ftype="fastqsanger"/>
+            </conditional>
+            <conditional name="assembler_type">
+                <param name="assembler" value="velvet"/>
+            </conditional>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -240,11 +283,15 @@
                 </assert_contents>
             </output>
         </test>
-        <test expect_num_outputs="3"> <!-- Test 6: Gzipped input with trimming -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq.gz" ftype="fastqsanger.gz" />
-            <param name="R2" value="mutant_R2.fastq.gz" ftype="fastqsanger.gz" />
-            <param name="trim" value="true" />
+
+         <!-- Test 6: Gzipped input with trimming -->
+        <test expect_num_outputs="3">
+            <conditional name="library"> 
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq.gz" ftype="fastqsanger.gz"/>
+                <param name="R2" value="mutant_R2.fastq.gz" ftype="fastqsanger.gz"/>
+            </conditional>
+            <param name="trim" value="true"/>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -259,18 +306,22 @@
                 </assert_contents>
             </output>
         </test>
-        <test expect_num_outputs="4"> <!-- Test 7: Add keepfiles option -->
-            <param name="lib_type" value="paired" />
-            <param name="R1" value="mutant_R1.fastq.gz" ftype="fastqsanger.gz" />
-            <param name="R2" value="mutant_R2.fastq.gz" ftype="fastqsanger.gz" />
-            <param name="trim" value="true" />
+
+         <!-- Test 7: Add keepfiles option -->
+        <test expect_num_outputs="4">
+            <conditional name="library"> 
+                <param name="lib_type" value="paired"/>
+                <param name="R1" value="mutant_R1.fastq.gz" ftype="fastqsanger.gz"/>
+                <param name="R2" value="mutant_R2.fastq.gz" ftype="fastqsanger.gz"/>
+            </conditional>
+            <param name="trim" value="true"/>
             <section name="adv">
                 <conditional name="keep_files">
-                    <param name="nocorr" value="yes_correction" />
-                    <param name="keepfiles" value="True" />
+                    <param name="nocorr" value="yes_correction"/>
+                    <param name="keepfiles" value="True"/>
                 </conditional>
-                <param name="log" value="true"/>
             </section>
+            <param name="log" value="true"/>
             <output name="contigs" ftype="fasta">
                 <assert_contents>
                     <has_text text="&gt;contig00001"/>
@@ -278,7 +329,7 @@
             </output>
             <output name="bamfiles" ftype="unsorted.bam">
                 <assert_contents>
-                    <has_size value="36359" delta="1000" />
+                    <has_size value="33645" delta="1000"/>
                 </assert_contents>
             </output>
         </test>
@@ -292,6 +343,7 @@
       - Trim reads:   Use Trimmomatic to remove common adaptors first (default: OFF)
       - Output log file:  If set to "Yes", tool will return Shovill's log file as part of the output
       - Assembler:    Which assembler should shovill use from: Skesa, Megahit, Velvet or Spades. Spades is the default.
+      - Plasmid mode: Use plasmid mode if available. This works only when Spades assembler is used (default: OFF)
 
       Advanced options:
       - Name format:          Format of output contig FASTA IDs in 'printf' style (default: 'contig%05d')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/skesa.gfa	Tue Dec 16 11:09:22 2025 +0000
@@ -0,0 +1,1 @@
+S	Contig_1_56.8566	AGATATAGAAATTTTTTAGCTGGTTTAACACCCTCTGTAAAAGCCCATCCATGCGCAGTAAAAACTACACGTGTGTCTTTCGATTTCGAAATGAACTTCGCAATTCGTCCGACCGTTCCAGCTTTGGAAGAATGTAGATGGATAACATCAGGTTTAATTTTCGAGAATAACTGTGCTAACACTTTGACAGCTAAAATATCTTGTTTAAAGTCAATTGGACCTACTAAATGTTCGATAATAATTACATTGACTCTTGCATCTAGTTGTTCAATCATTGGTCCATGATTGCCTACAATGACATAAACATCATGGTGTACGCAAAAATGGTTAGCGAGTTGAATGAGATGTGTTTGTGCACCACCATTATCTGCTTTAGTAATACAATATATAATTTTCAACTGTTACAAACCCCTTTAATGCTATACTTTCAATTTCTTAACATGGCTATCTCATCAGATGAATAGTATTTATAGCCATGCAAATCAATGATGGCAAATATTTCTTAATGCCATTTGATACTGTCTCAAGGGATTCCTCGTTATACTGTAACAATTGGTCACAATCTTTAAAATGTAACTTTTATTTAAACTTATTAAGCAAATTAAGACTACCTTGAGCCTTCCCCTGTAATAACAACCATCAATGTTCTAATTGATATATATAATTCCATCATTAAGCTACCTTTATGTATATATTTCATGTCATATTTTAATTTTTGTTGTGGTGTTAAGTCATATCCACCTTGAATTTGCGCAAGACCTGTTAATCCTGGTGTAACAAGACATCTTTGCTCAAATCCTATTATTTCTGAACTAAATAATTCTACAAATTCTGGACGTTCCGGGCGTGGTCCAATAAAACTCATTTCCCCTTTAACAACATTAATTAGTTGTGGTAATTCATCAATGCGTGTTTTACGAATAAACTTCCCGACATTTGTTATACGATCATCATCTTTATCAGCCCATTGCGCACCGTTTTTCTCTGCGTTTTTACACATCGAACGTAATTTGTATATTTTAATTAATTTACCCATCTTCCCAACTCTAACCTGACTATAAATAGGGTTTCCTGGCGAATCTATGACGATAGCAATGGCGAATATGAACATAATCGGAAATGTTAAAAA	KC:i:4