changeset 22:3c1744704da5 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/abyss commit c43c6a15e0eaf9c3c615943bae216b832ce1f334
author iuc
date Fri, 06 Feb 2026 17:14:21 +0000
parents 024f0ca29900
children
files abyss-pe.xml
diffstat 1 files changed, 108 insertions(+), 108 deletions(-) [+]
line wrap: on
line diff
--- a/abyss-pe.xml	Tue Nov 19 12:41:57 2024 +0000
+++ b/abyss-pe.xml	Fri Feb 06 17:14:21 2026 +0000
@@ -1,27 +1,9 @@
-<tool id="abyss-pe" name="ABySS" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="23.02" license="GPL-3.0">
+<tool id="abyss-pe" name="ABySS" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="24.2" license="GPL-3.0">
     <description>de novo sequence assembler</description>
     <macros>
         <token name="@TOOL_VERSION@">2.3.10</token>
-        <token name="@VERSION_SUFFIX@">0</token>
-        <xml name="reads_conditional">
-            <conditional name="reads">
-                <param name="reads_selector" type="select" label="Type of paired-end datasets">
-                    <option value="paired">2 separate datasets</option>
-                    <option value="paired_collection">1 paired dataset collection</option>
-                    <option value="paired_il">1 dataset of interleaved reads</option>
-                </param>
-                <when value="paired">
-                    <param name="reads1" type="data" format="fasta,fastq,fastq.gz" label="Paired-end reads 1" />
-                    <param name="reads2" type="data" format="fasta,fastq,fastq.gz" label="Paired-end reads 2" />
-                </when>
-                <when value="paired_collection">
-                    <param name="reads_coll" type="data_collection" collection_type="paired" format="fasta,fastq,fastqsanger,fastqillumina" label="Paired-end reads collection" />
-                </when>
-                <when value="paired_il">
-                    <param name="reads_il" type="data" format="fasta,fastq,fastq.gz" label="Interleaved paired-end reads" />
-                </when>
-            </conditional>
-        </xml>
+        <token name="@VERSION_SUFFIX@">1</token>
+        <token name="@SEQUENCE_FILE_TYPES@">fasta,fasta.gz,fasta.bz2,fastqsanger,fastqillumina,fastqsanger.gz,fastqillumina.gz,fastqsanger.bz2,fastqillumina.bz2</token>
     </macros>
     <xrefs>
         <xref type="bio.tools">abyss</xref>
@@ -45,47 +27,48 @@
     #return ''.join([str($prefix), '_', str($index), '.', str($data.ext)])
 #end def
 
-## Go through all inputs and create symbolic links
-#for $i, $v in enumerate($lib_repeat)
-    #if $v.reads.reads_selector == 'paired'
-        ln -s $v.reads.reads1 $get_link_fname($v.reads.reads1, 'lib_reads1', $i) &&
-        ln -s $v.reads.reads2 $get_link_fname($v.reads.reads2, 'lib_reads2', $i) &&
-    #elif $v.reads.reads_selector == 'paired_collection'
-        ln -s $v.reads.reads_coll.forward $get_link_fname($v.reads.reads_coll.forward, 'lib_reads_coll_forward', $i) &&
-        ln -s $v.reads.reads_coll.reverse $get_link_fname($v.reads.reads_coll.reverse, 'lib_reads_coll_reverse', $i) &&
-    #else
-        ln -s $v.reads.reads_il $get_link_fname($v.reads.reads_il, 'lib_reads_il', $i) &&
+#set libnames = {'lib': [], 'mp': [], 'long': []}
+#set libraries = []
+#set l = 0
+#for $v in $libs
+    #if $v.lib_type_cond.lib_type in ["lib", "mp"]
+        #for $pair in $v.lib_type_cond.reads
+            #set fname = $get_link_fname($pair.forward, str($v.lib_type_cond.lib_type)+"_forward", $l)
+            #set rname = $get_link_fname($pair.reverse, str($v.lib_type_cond.lib_type)+"_reverse", $l)
+            #silent libraries.append(str($v.lib_type_cond.lib_type) + str(l) + "='" + $fname + " " + $rname + "'")
+            #silent libnames[str($v.lib_type_cond.lib_type)].append($v.lib_type_cond.lib_type + str(l))
+            ln -s '$pair.forward' $fname &&
+            ln -s '$pair.reverse' $rname &&
+            #set l += 1
+        #end for
+    #elif $v.lib_type_cond.lib_type == "se"
+        #set se_libraries = []
+        #for $read in $v.lib_type_cond.reads
+            #set name = $get_link_fname($read, $v.lib_type_cond.lib_type, $l)
+            #silent se_libraries.append($name)
+            ln -s '$read' $name &&
+            #set l += 1
+        #end for
+        #if len(se_libraries) > 0
+            #silent libraries.append("se='" + " ".join(se_libraries) + "'")
+        #end if
+        ## #silent libnames[str($v.lib_type_cond.lib_type)].append($v.lib_type_cond.lib_type + str(l))
+
+    #elif $v.lib_type_cond.lib_type == "long"
+        #for $read in $v.lib_type_cond.reads
+            #set name = $get_link_fname($read, $v.lib_type_cond.lib_type, $l)
+            #silent libraries.append($v.lib_type_cond.lib_type + str(l) + "='" + $name + "'")
+            #silent libnames[str($v.lib_type_cond.lib_type)].append($v.lib_type_cond.lib_type + str(l))
+            ln -s '$read' $name &&
+            #set l += 1
+        #end for
     #end if
 #end for
 
-#for $i, $v in enumerate($mp_repeat)
-    #if $v.reads.reads_selector == 'paired'
-        ln -s $v.reads.reads1 $get_link_fname($v.reads.reads1, 'mp_reads1', $i) &&
-        ln -s $v.reads.reads2 $get_link_fname($v.reads.reads2, 'mp_reads2', $i) &&
-    #elif $v.reads.reads_selector == 'paired_collection'
-        ln -s $v.reads.reads_coll.forward $get_link_fname($v.reads.reads_coll.forward, 'mp_reads_coll_forward', $i) &&
-        ln -s $v.reads.reads_coll.reverse $get_link_fname($v.reads.reads_coll.reverse, 'mp_reads_coll_reverse', $i) &&
-    #else
-        ln -s $v.reads.reads_il $get_link_fname($v.reads.reads_il, 'mp_reads_il', $i) &&
-    #end if
-#end for
-
-#if str($se_reads) != 'None'
-    #for $i, $v in enumerate($se_reads)
-        ln -s $v $get_link_fname($v, 'se_reads', $i) &&
-    #end for
-#end if
-
-#if str($long_seqs) != 'None'
-    #for $i, $v in enumerate($long_seqs)
-        ln -s $v $get_link_fname($v, 'long_seqs', $i) &&
-    #end for
-#end if
-
 abyss-pe
 name=abyss
-j=\${GALAXY_SLOTS:-1}
-B=\$((\${GALAXY_MEMORY_MB:-2048} * 9 /10 ))M
+j="\${GALAXY_SLOTS:-1}"
+B="\$((\${GALAXY_MEMORY_MB:-2048} * 9 /10 ))M"
 
 k=$k
 
@@ -143,50 +126,44 @@
 #if $N
     N='$N'
 #end if
-#if $lib_repeat
-    lib='${' '.join(['lib'+str($i) for $i in range(len($lib_repeat))])}'
-    #for $i, $v in enumerate($lib_repeat)
-        #if $v.reads.reads_selector == 'paired'
-            lib${i}='${get_link_fname($v.reads.reads1, "lib_reads1", $i)} ${get_link_fname($v.reads.reads2, "lib_reads2", $i)}'
-        #elif $v.reads.reads_selector == 'paired_collection'
-            lib${i}='$get_link_fname($v.reads.reads_coll.forward, "lib_reads_coll_forward", $i)} ${get_link_fname($v.reads.reads_coll.reverse, "lib_reads_coll_reverse", $i)}'
-        #else
-            lib${i}='${get_link_fname($v.reads.reads_il, "lib_reads_il", $i)}'
-        #end if
-    #end for
-#end if
-#if str($se_reads) != 'None'
-    se='${' '.join([$get_link_fname($v, "se_reads", $i) for $i, $v in enumerate($se_reads)])}'
-#end if
-#if $mp_repeat
-    mp='${' '.join(['mp'+str($i) for $i in range(len($mp_repeat))])}'
-    #for $i, $v in enumerate($mp_repeat)
-        #if $v.reads.reads_selector == 'paired'
-            mp${i}='${get_link_fname($v.reads.reads1, "mp_reads1", $i)} ${get_link_fname($v.reads.reads2, "mp_reads2", $i)}'
-        #elif $v.reads.reads_selector == 'paired_collection'
-            mp${i}='$get_link_fname($v.reads.reads_coll.forward, "mp_reads_coll_forward", $i)} ${get_link_fname($v.reads.reads_coll.reverse, "mp_reads_coll_reverse", $i)}'
-        #else
-            mp${i}='${get_link_fname($v.reads.reads_il, "mp_reads_il", $i)}'
-        #end if
-    #end for
-#end if
-#if str($long_seqs) != 'None'
-    long='${' '.join(['long'+str($i) for $i in range(len($long_seqs))])}'
-    #for $i, $v in enumerate($long_seqs)
-        long$i='${get_link_fname($v, "long_seqs", $i)}'
-    #end for
-#end if
+
+## LIBNAMES
+
+#for $type in $libnames:
+    #if len($libnames[$type]) == 0:
+        #continue
+    #end if
+    #echo $type + "='"+ " ".join($libnames[$type]) +"' "
+#end for
+
+## LIBRARIES
+
+#echo " ".join($libraries)
     ]]></command>
 
     <inputs>
-        <repeat name="lib_repeat" title="Paired-end library" help="(lib)">
-            <expand macro="reads_conditional" />
+        <repeat name="libs" title="Libraries" min="1" help="Add one or more paired end, single end, mate pair, or long read library. For paired end and mate pairs libraries are given as elements of a paired collection. For single end and long reads multiple data sets can be given (also as collection).">
+            <conditional name="lib_type_cond">
+                <param name="lib_type" type="select" label="Library type">
+                    <option value="lib">Paired-end library</option>
+                    <option value="se">Single-end library</option>
+                    <option value="mp">Mate-pair library</option>
+                    <option value="long">Long sequences</option>
+                </param>
+                <when value="lib">
+                    <param name="reads" argument="lib" type="data_collection" collection_type="list:paired" format="@SEQUENCE_FILE_TYPES@" label="Paired reads" />
+                </when>
+                <when value="se">
+                    <param name="reads" argument="se" type="data" multiple="true" format="@SEQUENCE_FILE_TYPES@" label="Single-end reads" />
+                </when>
+                <when value="mp">
+                    <param name="reads" argument="mp" type="data_collection" collection_type="list:paired" format="@SEQUENCE_FILE_TYPES@" label="Mate pairs" />
+                </when>
+                <when value="long">
+                    <param name="reads" argument="long" type="data" multiple="true" format="@SEQUENCE_FILE_TYPES@" label="Long sequences" help="Long sequence libraries are used only for rescaffolding and do not contribute towards the consensus sequence" />
+                </when>
+            </conditional>
         </repeat>
-        <param name="se_reads" argument="se" type="data" multiple="true" optional="true" format="fasta,fastq,fastq.gz" label="Single-end reads" />
-        <repeat name="mp_repeat" title="Mate-pair library" help="The mate-pair libraries are used only for scaffolding and do not contribute towards the consensus sequence (mp)">
-            <expand macro="reads_conditional" />
-        </repeat>
-        <param name="long_seqs" argument="long" type="data" multiple="true" optional="true" format="fasta,fastq,fastq.gz" label="Long sequences" help="Long sequence libraries are used only for rescaffolding and do not contribute towards the consensus sequence" />
         <param argument="k" type="integer" value="41" label="K-mer length (in bp)" help="The length of a k-mer (when -K is not set) or the span of a k-mer pair (when K is set)" />
         <param argument="K" type="integer" value="" optional="true" label="The length (in bp) of a single k-mer in a k-mer pair" help="Optional" />
         <param argument="q" type="integer" value="3" max="40" optional="true" label="Minimum base quality when trimming" help="Trim bases from the ends of reads whose quality is less than this value" />
@@ -215,13 +192,13 @@
     <outputs>
         <data name="unitigs" format="fasta" label="${tool.name} on ${on_string}: unitigs" from_work_dir="abyss-unitigs.fa" />
         <data name="contigs_outfile" format="fasta" label="${tool.name} on ${on_string}: contigs" from_work_dir="abyss-contigs.fa">
-            <filter>lib_repeat</filter>
+            <filter>len([ l for l in libs if l['lib_type_cond']['lib_type'] == "lib"])</filter>
         </data>
         <data name="scaffolds" format="fasta" label="${tool.name} on ${on_string}: scaffolds" from_work_dir="abyss-scaffolds.fa">
-            <filter>lib_repeat or mp_repeat</filter>
+            <filter>len([ l for l in libs if l['lib_type_cond']['lib_type'] in ["lib", "mp"]])</filter>
         </data>
         <data name="long_scaffolds" format="fasta" label="${tool.name} on ${on_string}: long scaffolds" from_work_dir="abyss-long-scaffs.fa">
-            <filter>long_seqs</filter>
+            <filter>len([ l for l in libs if l['lib_type_cond']['lib_type'] == "long"])</filter>
         </data>
         <data name="indels" format="fasta" label="${tool.name} on ${on_string}: indels" from_work_dir="abyss-indel.fa" />
         <data name="stats" format="tabular" label="${tool.name} on ${on_string}: stats" from_work_dir="abyss-stats.tab" />
@@ -229,11 +206,19 @@
 
     <tests>
         <test expect_num_outputs="5">
-            <repeat name="lib_repeat">
-                <conditional name="reads">
-                    <param name="reads_selector" value="paired" />
-                    <param name="reads1" ftype="fastqsanger.gz" value="assembly_sample-R1.fastq.gz" />
-                    <param name="reads2" ftype="fastqsanger.gz" value="assembly_sample-R2.fastq.gz" />
+            <repeat name="libs">
+                <conditional name="lib_type_cond">
+                    <param name="lib_type" value="lib" />
+                    <param name="reads">
+                        <collection type="list:paired">
+                            <element name="assembly_sample">
+                                <collection type="paired">
+                                    <element name="forward" value="assembly_sample-R1.fastq.gz" />
+                                    <element name="reverse" value="assembly_sample-R2.fastq.gz" />
+                                </collection>
+                            </element>
+                        </collection>
+                    </param>
                 </conditional>
             </repeat>
             <param name="k" value="50" />
@@ -244,15 +229,30 @@
             <output name="stats" file="abyss-stats1.tab" />
         </test>
         <test expect_num_outputs="3">
-            <param name="se_reads" ftype="fastq.gz" value="assembly_sample-R1.fastq.gz,assembly_sample-R2.fastq.gz" />
+            <repeat name="libs">
+                <conditional name="lib_type_cond">
+                    <param name="lib_type" value="se" />
+                    <param name="reads" ftype="fastqsanger.gz" value="assembly_sample-R1.fastq.gz,assembly_sample-R2.fastq.gz" />
+                </conditional>
+            </repeat>
             <param name="k" value="50" />
             <output name="unitigs" file="abyss-unitigs2.fa" />
             <output name="indels" file="empty_file.fasta" />
             <output name="stats" file="abyss-stats2.tab" />
         </test>
         <test expect_num_outputs="4">
-            <param name="se_reads" ftype="fasta" value="assembly_sample-R1.fasta,assembly_sample-R2.fasta" />
-            <param name="long_seqs" ftype="fasta" value="assembly_sample-R2.fasta" />
+            <repeat name="libs">
+                <conditional name="lib_type_cond">
+                    <param name="lib_type" value="se" />
+                    <param name="reads" ftype="fasta" value="assembly_sample-R1.fasta,assembly_sample-R2.fasta" />
+                </conditional>
+            </repeat>
+            <repeat name="libs">
+                <conditional name="lib_type_cond">
+                    <param name="lib_type" value="long" />
+                    <param name="reads" ftype="fasta" value="assembly_sample-R2.fasta" />
+                </conditional>
+            </repeat>
             <param name="k" value="50" />
             <output name="unitigs" file="abyss-unitigs3.fa" />
             <output name="long_scaffolds" file="abyss-long-scaffolds3.fa" />