diff bamtools-split.xml @ 0:2c2200cecea2 draft

Uploaded
author anton
date Wed, 10 Sep 2014 11:55:26 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bamtools-split.xml	Wed Sep 10 11:55:26 2014 -0400
@@ -0,0 +1,116 @@
+<tool id="bamSplit" name="Split" version="0.0.1" force_history_refresh="True">
+  <description>BAM datasets on variety of attributes</description>
+  <requirements>
+    <requirement type="package" version="2.3.0_2d7685d2ae">bamtools</requirement>
+  </requirements>
+  <command>
+
+    echo "BAM" > $report &amp;&amp;
+    
+    #for $bam_count, $input_bam in enumerate( $input_bams ):
+        ln -s "${input_bam.input_bam}" "localbam_${bam_count}.bam" &amp;&amp;
+        ln -s "${input_bam.input_bam.metadata.bam_index}" "localbam_${bam_count}.bam.bai" &amp;&amp;
+    #end for
+    
+    bamtools
+    split
+  
+    #if str ( $analysis_type.analysis_type_selector ) == "-tag" :
+    
+    ${analysis_type.analysis_type_selector} "${analysis_type.tag_name}"
+
+    #else
+    
+    ${analysis_type.analysis_type_selector}
+    
+    #end if
+    
+    -stub split_bam
+    
+    #for $bam_count, $input_bam in enumerate( $input_bams ):
+        -in "localbam_${bam_count}.bam"
+    #end for
+    
+  </command>
+
+  <inputs>
+    <repeat name="input_bams" title="BAM dataset(s) to filter" min="1">
+      <param name="input_bam" type="data" format="bam" label="BAM dataset" />
+    </repeat>
+    <conditional name="analysis_type">
+      <param name="analysis_type_selector" type="select" label="Split BAM dataset(s) by" help="See help below for explanation of each option">
+        <option value="-mapped">Mapping status (-mapped)</option>
+        <option value="-paired">Pairing status (-paired)</option>
+        <option value="-reference">Reference name (-reference)</option>
+        <option value="-tag">Specific tag (-tag)</option>
+      </param>
+      <when value="-tag">
+        <param name="tag_name" type="text" value="NM" label="Enter tag name here" help="For example, to split on NM tag enter &quot;NM&quot;"/>
+      </when>
+    </conditional>
+  </inputs>
+  
+  <outputs>
+    <data format="txt" name="report" label="BAMSplitter Run" hidden="true">
+      <discover_datasets pattern="split_bam\.(?P&lt;designation&gt;.+)\.bam" ext="bam" visible="true"/>
+    </data>
+  </outputs>
+    <tests>
+        <test>
+            <param name="input_bam" ftype="bam" value="bamtools-input1.bam"/>
+            <param name="analysis_type_selector" value="-mapped"/>
+            <output name="report">
+              <assert_contents>
+                <has_line line="BAM" />
+              </assert_contents>
+              <discovered_dataset designation="MAPPED" file="bamtools-split-test1.bam" ftype="bam"/>
+            </output>
+            
+        </test>
+    </tests>
+<help>
+**What is does**
+
+BAMTools split is a utility for splitting BAM files. It is based on BAMtools suite of tools by Derek Barnett (https://github.com/pezmaster31/bamtools).
+
+-----
+
+.. class:: warningmark
+
+**DANGER: Multiple Outputs**
+
+As described below, splitting a BAM dataset(s) on reference name or a tag value can produce very large numbers of outputs. Read below and know what you are doing.
+
+-----
+
+**How it works**
+
+The following options can be specified via "**Split BAM dataset(s) by**" dropdown::
+ 
+  Mapping status (-mapped)          split mapped/unmapped and generate two output files
+                                    named (MAPPED) and (UNMAPPED) containing mapped and unmapped
+                                    reads, respectively.
+                                    
+  Pairing status (-paired)          split single-end/paired-end alignments and generate two output files
+                                    named (SINGLE_END) and (PAIRED_END) containing paired and unpaired
+                                    reads, respectively.
+                                    
+  Reference name (-reference)       split alignments by reference name. In cases of unfinished genomes with
+                                    very large number of reference sequences (scaffolds) it can generate
+                                    thousands (if not millions) of output datasets.
+                                    
+  Specific tag (-tag)               split alignments based on all values of TAG encountered. Choosing this
+                                    option from the menu will allow you to enter the tag name. As was the
+                                    case with the reference splitting above, this option can produce very
+                                    large number of outputs if a tag has a large number of unique values.
+
+-----
+
+.. class:: infomark
+
+**More information**
+
+Additional information about BAMtools can be found at https://github.com/pezmaster31/bamtools/wiki
+
+</help>
+</tool>