changeset 4:e73a22ff585c draft

planemo upload commit 76cbd559320d2a639e35ed10cb2d9522a5a77ae0
author iuc
date Mon, 16 Apr 2018 16:38:40 -0400
parents 475ee31c61d9
children f77bc14eba31
files macros.xml umi-tools_extract.xml
diffstat 2 files changed, 86 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Sun Feb 25 13:08:17 2018 -0500
+++ b/macros.xml	Mon Apr 16 16:38:40 2018 -0400
@@ -1,5 +1,41 @@
 <?xml version="1.0"?>
 <macros>
+    <macro name="barcode2_conditional" >
+        <conditional name="barcode">
+            <param name="barcode_select" argument="--split-barcode" type="select" label="Barcode on both reads?">
+                <option value="first_read_only">Barcode on first read only</option>
+                <option value="both_reads">Barcode on both reads</option>
+            </param>
+            <when value="first_read_only"/>
+            <when value="both_reads">
+                <param name="bc_pattern2" argument="--bc-pattern2" type="text" value="" label="Barcode pattern for second read"
+                       help="Use this option to specify the format of the UMI/barcode for
+                             the second read pair if required." >
+                </param>
+            </when>
+        </conditional>
+    </macro>
+    <xml name="input_types">
+        <conditional name="input_type">
+            <param name="type" type="select" label="Library type">
+                <option value="single">Single-end</option>
+                <option value="paired">Paired-end</option>
+                <option value="paired_collection">Paired-end Dataset Collection</option>
+            </param>
+            <when value="single">
+                <param name="input_single" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
+            </when>
+            <when value="paired">
+                <param name="input_read1" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
+                <param name="input_read2" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
+                <expand macro="barcode2_conditional" />
+            </when>
+            <when value="paired_collection">
+                <param name="input_readpair" type="data_collection" collection_type="paired" format="fastq,fastq.gz" label="Reads in FASTQ format" />
+                <expand macro="barcode2_conditional" />
+            </when>
+        </conditional>
+    </xml>
     <xml name="citations">
         <citations>
             <citation type="doi">10.1101/gr.209601.116</citation>
@@ -20,4 +56,33 @@
         </requirements>
     </xml>
     <token name="@VERSION@">0.5.3</token>
+    <token name="@COMMAND_LINK@"><![CDATA[
+        #set $gz = False
+        #if $input_type.type == 'single':
+            #if $input_type.input_single.is_of_type("fastq.gz", "fastqsanger.gz"):
+                ln -s '$input_type.input_single' input_single.gz &&
+                #set $gz = True
+            #else
+                ln -s '$input_type.input_single' input_single.txt &&
+            #end if
+        #elif $input_type.type == 'paired':
+            #if $input_type.input_read1.is_of_type("fastq.gz", "fastqsanger.gz"):
+                ln -s '$input_type.input_read1' input_read1.gz &&
+                ln -s '$input_type.input_read2' input_read2.gz &&
+                #set $gz = True
+            #else
+                ln -s '$input_type.input_read1' input_read1.txt &&
+                ln -s '$input_type.input_read2' input_read2.txt &&
+            #end if
+        #else  ## paired_collection
+            #if $input_type.input_readpair.forward.is_of_type("fastq.gz", "fastqsanger.gz"):
+                ln -s '$input_type.input_readpair.forward' input_read1.gz &&
+                ln -s '$input_type.input_readpair.reverse' input_read2.gz &&
+                #set $gz = True
+            #else
+                ln -s '$input_type.input_readpair.forward' input_read1.txt &&
+                ln -s '$input_type.input_readpair.reverse' input_read2.txt &&
+            #end if
+        #end if
+    ]]></token>
 </macros>
--- a/umi-tools_extract.xml	Sun Feb 25 13:08:17 2018 -0500
+++ b/umi-tools_extract.xml	Mon Apr 16 16:38:40 2018 -0400
@@ -1,24 +1,13 @@
-<tool id="umi_tools_extract" name="UMI-tools extract" version="@VERSION@.0">
+<tool id="umi_tools_extract" name="UMI-tools extract" version="@VERSION@.1">
     <description>Extract UMI from fastq files</description>
     <macros>
         <import>macros.xml</import>
     </macros>
     <expand macro="requirements" />
     <command detect_errors="exit_code"><![CDATA[
-        #set $gz = False
-        #if $input_type.type == 'single':
-            #if $input_type.input_single.is_of_type("fastq.gz", "fastqsanger.gz"):
-                ln -s '$input_type.input_single' input_single.gz &&
-                #set $gz = True
-            #end if
-        #else
-            #if $input_type.input_read1.is_of_type("fastq.gz", "fastqsanger.gz"):
-                ln -s '$input_type.input_read1' input_read1.gz &&
-                ln -s '$input_type.input_read2' input_read2.gz &&
-                #set $gz = True
-            #end if
-        #end if
-        umi_tools extract
+    @COMMAND_LINK@
+
+    umi_tools extract
             --bc-pattern='$bc_pattern'
             #if $input_type.type == 'single':
                 #if $gz:
@@ -40,7 +29,7 @@
                     --stdout '$out1'
                     --read2-out='$out2'
                 #end if
-                #if $input_type.barcode.split == "1":
+                #if $input_type.barcode.barcode_select == "both_reads":
                     --split-barcode
                     --bc-pattern2='$input_type.barcode.bc_pattern2'
                 #end if
@@ -67,33 +56,7 @@
         #end if
     ]]></command>
     <inputs>
-        <conditional name="input_type">
-            <param name="type" type="select" label="Library type">
-                <option value="single">Single-end</option>
-                <option value="paired">Paired-end</option>
-            </param>
-            <when value="single">
-                <param name="input_single" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
-            </when>
-            <when value="paired">
-                <param name="input_read1" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
-                <param name="input_read2" type="data" format="fastq,fastq.gz" label="Reads in FASTQ format" />
-                <conditional name="barcode">
-                    <param name="split" argument="--split-barcode" type="select" label="Barcode on both reads?">
-                        <option value="0">Barcode on first read only</option>
-                        <option value="1">Barcode on both reads</option>
-                    </param>
-                    <when value="0">
-                    </when>
-                    <when value="1">
-                        <param name="bc_pattern2" argument="--bc-pattern2" type="text" value="" label="Barcode pattern for second read"
-                            help="Use this option to specify the format of the UMI/barcode for
-                                  the second read pair if required.">
-                        </param>
-                    </when>
-                </conditional>
-            </when>
-        </conditional>
+        <expand macro="input_types" />
         <param name="bc_pattern" argument="--bc-pattern" type="text" label="Barcode pattern for first read"
             help="Use this option to specify the format of the UMI/barcode. Use Ns to
                     represent the random positions and Xs to indicate the bc positions.
@@ -132,10 +95,10 @@
             <filter>input_type['type'] == "single"</filter>
         </data>
         <data name="out1" format_source="input_read1">
-            <filter>input_type['type'] == "paired"</filter>
+            <filter>input_type['type'] !== "single"</filter>
         </data>
         <data name="out2" format_source="input_read2">
-            <filter>input_type['type'] == "paired"</filter>
+            <filter>input_type['type'] !== "single"</filter>
         </data>
         <data name="out_log" format="txt">
             <filter>print_log == True</filter>
@@ -162,6 +125,19 @@
             <output name="out2" file="out_R2.fastq.gz" decompress="true" lines_diff="2" />
             <output name="out_log" file="out_paired.log" lines_diff="16"/>
         </test>
+        <test>
+            <param name="type" value="paired_collection" />
+            <param name="input_readpair" >
+                <collection type="paired">
+                    <element name="forward" ftype="fastq.gz" value="t_R1.fastq.gz" />
+                    <element name="reverse" ftype="fastq.gz" value="t_R2.fastq.gz" />
+                </collection>
+            </param>
+            <param name="bc_pattern" value="NNNXXX" />
+            <output name="out1" file="out_R1.fastq.gz" decompress="true" lines_diff="2" />
+            <output name="out2" file="out_R2.fastq.gz" decompress="true" lines_diff="2" />
+            <output name="out_log" file="out_paired.log" lines_diff="16"/>
+        </test>
     </tests>
     <help><![CDATA[