diff fastx_barcode_splitter.xml @ 4:015dc921d814 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tool_collections/fastx_toolkit/fastx_barcode_splitter commit bbb2e6b6769b03602a8ab97001f88fbec52080a1
author iuc
date Tue, 08 May 2018 13:27:14 -0400
parents 8abdedf55101
children 4bedca26c133
line wrap: on
line diff
--- a/fastx_barcode_splitter.xml	Wed Nov 11 12:38:37 2015 -0500
+++ b/fastx_barcode_splitter.xml	Tue May 08 13:27:14 2018 -0400
@@ -1,38 +1,94 @@
-<tool id="cshl_fastx_barcode_splitter" version="1.0.0" name="Barcode Splitter">
+<tool id="cshl_fastx_barcode_splitter" version="1.0.1" name="Barcode Splitter">
     <description></description>
-    <requirements>
-        <requirement type="package" version="0.0.13">fastx_toolkit</requirement>
-    </requirements>
-    <command interpreter="bash">fastx_barcode_splitter_galaxy_wrapper.sh '$BARCODE' '$input' "$input.name" "$output.files_path" --mismatches $mismatches --partial $partial $EOL > '$output' </command>
-
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
+    <command detect_errors="aggressive"><![CDATA[
+mkdir split &&
+@CATS@ '$__tool_directory__/fastx_barcode_splitter.pl' --bcfile '$BARCODE'
+--prefix 'split/'
+--suffix '.$input.extension'
+--mismatches $mismatches
+--partial $partial
+#if $refBarcodeLocation.barcodeLocation == "idxfile":
+    --idxfile '$refBarcodeLocation.idxfile'
+    --idxidstrip $refBarcodeLocation.idxidstrip
+#else:
+    $refBarcodeLocation.EOL
+#end if
+> '$summary'
+    ]]></command>
     <inputs>
-        <param format="txt" name="BARCODE" type="data" label="Barcodes to use" />
-        <param format="fasta,fastqsanger,fastqsolexa,fastqillumina" name="input" type="data" label="Library to split" />
+        <param name="BARCODE" type="data" format="txt" label="Barcodes to use" />
+        <param name="input" type="data" format="fasta,fastq,fastqsanger,fastqsolexa,fastqillumina" label="Library to split" />
 
-        <param name="EOL" type="select" label="Barcodes found at">
-            <option value="--bol">Start of sequence (5' end)</option>
-            <option value="--eol">End of sequence (3' end)</option>
-        </param>
+        <conditional name="refBarcodeLocation">
+            <param name="barcodeLocation" type="select" label="Barcodes found at">
+                <option value="bol">Start of sequence (5' end)</option>
+                <option value="eol">End of sequence (3' end)</option>
+                <option value="idxfile">Separate index file</option>
+            </param>
+            <when value="bol">
+                <param name="EOL" type="hidden" value="--bol" />
+            </when>
+            <when value="eol">
+                <param name="EOL" type="hidden" value="--eol" />
+            </when>
+            <when value="idxfile">
+                <param argument="--idxidstrip" type="integer" value="1" label="Characters to strip from the end of the sequence id before matching" />
+                <param argument="--idxfile" type="data" format="fasta,fastq,fastqsanger" label="Select index read file" />
+            </when>
+        </conditional>
+        <param argument="--mismatches" type="integer" value="0" label="Number of allowed mismatches" />
+        <param argument="--partial" type="integer" value="0" label="Number of allowed barcodes nucleotide deletions" />
+    </inputs>
 
-        <param name="mismatches" type="integer" value="2" label="Number of allowed mismatches" />
+    <outputs>
+        <data name="summary" format="tabular" label="${tool.name} on ${on_string}: Summary" />
+        <collection name="split_output" type="list" format_source="input" label="${tool.name} on ${on_string}">
+            <discover_datasets pattern="__designation_and_ext__" directory="split" visible="false" />
+        </collection>
+    </outputs>
 
-        <param name="partial" type="integer" value="0" label="Number of allowed barcodes nucleotide deletions" />
-    </inputs>
-    <outputs>
-        <data format="html" name="output" />
-    </outputs>
     <tests>
         <test>
             <!-- Split a FASTQ file -->
             <param name="BARCODE" value="fastx_barcode_splitter1.txt" />
             <param name="input" value="fastx_barcode_splitter1.fastq" ftype="fastqsolexa" />
-            <param name="EOL" value="Start of sequence (5' end)" />
+            <param name="barcodeLocation" value="bol" />
             <param name="mismatches" value="2" />
             <param name="partial" value="0" />
-            <output name="output" file="fastx_barcode_splitter1.out" />
+            <output name="summary" file="fastx_barcode_splitter1.out" />
+            <output_collection name="split_output" type="list">
+                <element name="BC1" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC1.out" />
+                <element name="BC2" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC2.out" />
+                <element name="BC3" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC3.out" />
+                <element name="BC4" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC4.out" />
+                <element name="unmatched" ftype="fastqsolexa" file="fastx_barcode_splitter1_unmatched.out" />
+            </output_collection>
+        </test>
+
+        <test>
+            <!-- Split a FASTQ file, using separate index read -->
+            <param name="BARCODE" value="fastx_barcode_splitter1.txt" />
+            <param name="input" value="fastx_barcode_splitter1.fastq" ftype="fastqsolexa" />
+            <param name="idxfile" value="fastx_barcode_splitter_index.fastq" ftype="fastqsolexa" />
+            <param name="barcodeLocation" value="idxfile" />
+            <param name="mismatches" value="2" />
+            <param name="partial" value="0" />
+            <output name="summary" file="fastx_barcode_splitter1.out" />
+            <output_collection name="split_output" type="list">
+                <element name="BC1" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC1.out" />
+                <element name="BC2" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC2.out" />
+                <element name="BC3" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC3.out" />
+                <element name="BC4" ftype="fastqsolexa" file="fastx_barcode_splitter1_BC4.out" />
+                <element name="unmatched" ftype="fastqsolexa" file="fastx_barcode_splitter1_unmatched.out" />
+            </output_collection>
         </test>
     </tests>
-    <help>
+
+    <help><![CDATA[
 **What it does**
 
 This tool splits a Solexa library (FASTQ file) or a regular FASTA file into several files, using barcodes as the split criteria.
@@ -62,12 +118,12 @@
 
 .. image:: barcode_splitter_output_example.png
 
-
 ------
 
 This tool is based on `FASTX-toolkit`__ by Assaf Gordon.
 
  .. __: http://hannonlab.cshl.edu/fastx_toolkit/
-    </help>
+    ]]></help>
+    <expand macro="citations" />
 <!-- FASTX-barcode-splitter is part of the FASTX-toolkit, by A.Gordon (gordon@cshl.edu) -->
 </tool>