changeset 2:b4dfb5470bf3 draft

planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/bwa commit 13b3ab10ff1a2e4be39b44f885df6bbe7c23099a
author devteam
date Fri, 30 Dec 2016 08:10:56 -0500
parents 8955a9521def
children 0bde88ff668c
files bwa-mem.xml bwa.xml bwa_macros.xml tool_dependencies.xml
diffstat 4 files changed, 79 insertions(+), 139 deletions(-) [+]
line wrap: on
line diff
--- a/bwa-mem.xml	Fri Dec 18 18:51:08 2015 -0500
+++ b/bwa-mem.xml	Fri Dec 30 08:10:56 2016 -0500
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<tool id="bwa_mem" name="Map with BWA-MEM" version="0.4.2">
+<tool id="bwa_mem" name="Map with BWA-MEM" version="@VERSION@.1">
   <description>- map medium and long reads (&gt; 100 bp) against reference genome</description>
   <macros>
     <import>read_group_macros.xml</import>
@@ -8,44 +8,8 @@
   <expand macro="requirements" />
   <expand macro="stdio" />
   <command>
-    #set $reference_fasta_filename = "localref.fa"
-
-    #if str( $reference_source.reference_source_selector ) == "history":
-        ln -s "${reference_source.ref_file}" "${reference_fasta_filename}" &amp;&amp;
-
-        ## The following shell commands decide with of the BWA indexing algorithms (IS or BWTSW) will be run
-        ## depending ob the size of the input FASTA dataset
-           (
-            size=`stat -c %s "${reference_fasta_filename}" 2&gt;/dev/null`;                  ## Linux
-            if [ $? -eq 0 ];
-            then
-              if [ "\$size" -lt 2000000000 ];
-              then
-                bwa index -a is "${reference_fasta_filename}";
-                echo "Generating BWA index with is algorithm";
-              else
-                bwa index -a bwtsw "${reference_fasta_filename}";
-                echo "Generating BWA index with bwtsw algorithm";
-              fi;
-            fi;
-
-            eval \$(stat -s "${reference_fasta_filename}" 2&gt;/dev/null);                   ## OSX
-            if [ -n "\$st_size" ];
-            then
-              if [ "\$st_size" -lt 2000000000 ];
-              then
-                bwa index -a is "${reference_fasta_filename}";
-                echo "Generating BWA index with is algorithm";
-              else
-                bwa index -a bwtsw "${reference_fasta_filename}";
-                echo "Generating BWA index with bwtsw algorithm";
-              fi;
-            fi;
-            ) &amp;&amp;
-
-    #else:
-        #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path )
-    #end if
+<![CDATA[
+    @set_reference_fasta_filename@
 
     ## Begin BWA-MEM command line
 
@@ -62,6 +26,10 @@
 
     #if str( $analysis_type.analysis_type_selector ) == "pacbio":
       -x pacbio
+    #elif str( $analysis_type.analysis_type_selector ) == "ont2d":
+      -x ont2d
+    #elif str( $analysis_type.analysis_type_selector ) == "intractg":
+      -x intractg
     #elif str( $analysis_type.analysis_type_selector ) == "full":
       #if str( $analysis_type.algorithmic_options.algorithmic_options_selector ) == "set":    ## Algorithmic options
         -k "${analysis_type.algorithmic_options.k}"
@@ -132,31 +100,12 @@
       "${fastq_input.fastq_input1}"
     #end if
 
-    | samtools view -Sb - > temporary_bam_file.bam &amp;&amp;
-
-    samtools sort -f temporary_bam_file.bam ${bam_output}
+    | samtools sort -O bam -o '$bam_output'
+]]>
   </command>
 
   <inputs>
-
-    <conditional name="reference_source">
-      <param name="reference_source_selector" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options. See `Indexes` section of help below">
-        <option value="cached">Use a built-in genome index</option>
-        <option value="history">Use a genome from history and build index</option>
-      </param>
-      <when value="cached">
-        <param name="ref_file" type="select" label="Using reference genome" help="Select genome from the list">
-          <options from_data_table="bwa_mem_indexes">
-            <filter type="sort_by" column="2" />
-            <validator type="no_options" message="No indexes are available" />
-          </options>
-          <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
-        </param>
-      </when>
-      <when value="history">
-        <param name="ref_file" type="data" format="fasta" label="Use the following dataset as the reference sequence" help="You can upload a FASTA sequence to the history and use it as reference" />
-      </when>
-    </conditional>
+    <expand macro="reference_source_conditional" />
     <conditional name="fastq_input">
       <param name="fastq_input_selector" type="select" label="Single or Paired-end reads" help="Select between paired and single end data">
         <option value="paired">Paired</option>
@@ -200,7 +149,9 @@
       <param name="analysis_type_selector" type="select" label="Select analysis mode">
         <option value="illumina">1.Simple Illumina mode</option>
         <option value="pacbio">2.PacBio mode (-x pacbio)</option>
-        <option value="full">3.Full list of options</option>
+        <option value="ont2d">3.Nanopore 2D-reads mode (-x ont2d)</option>
+        <option value="intractg">4.Intra-species contigs mode (-x intractg)</option>
+        <option value="full">5.Full list of options</option>
       </param>
       <when value="illumina">
         <!-- do nothing -->
@@ -208,6 +159,12 @@
       <when value="pacbio">
         <!-- do nothing. all magic happens within <command> tag -->
       </when>
+      <when value="ont2d">
+        <!-- do nothing. all magic happens within <command> tag -->
+      </when>
+      <when value="intractg">
+        <!-- do nothing. all magic happens within <command> tag -->
+      </when>
       <when value="full">
         <conditional name="algorithmic_options">
           <param name="algorithmic_options_selector" type="select" label="Set algorithmic options?" help="Sets -k, -w, -d, -r, -y, -c, -D, -W, -m, -S, -P, and -e options.">
@@ -304,6 +261,7 @@
     <test>
       <param name="reference_source_selector" value="history" />
       <param name="ref_file" ftype="fasta" value="bwa-mem-mt-genome.fa"/>
+      <param name="index_a" value="is"/>
       <param name="fastq_input_selector" value="paired"/>
       <param name="fastq_input1" ftype="fastqsanger" value="bwa-mem-fastq1.fq"/>
       <param name="fastq_input2" ftype="fastqsanger" value="bwa-mem-fastq2.fq"/>
--- a/bwa.xml	Fri Dec 18 18:51:08 2015 -0500
+++ b/bwa.xml	Fri Dec 30 08:10:56 2016 -0500
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<tool id="bwa" name="Map with BWA" version="0.4.2">
+<tool id="bwa" name="Map with BWA" version="@VERSION@.1">
   <description>- map short reads (&lt; 100 bp) against reference genome</description>
   <macros>
     <import>read_group_macros.xml</import>
@@ -68,41 +68,8 @@
   <expand macro="requirements" />
   <expand macro="stdio" />
   <command>
-    #set $reference_fasta_filename = "localref.fa"
-
-    #if str( $reference_source.reference_source_selector ) == "history":
-        ln -s "${reference_source.ref_file}" "${reference_fasta_filename}" &amp;&amp;
-
-        ## The following shell commands decide with of the BWA indexing algorithms (IS or BWTSW) will be run
-        ## depending ob the size of the input FASTA dataset
-           (
-            size=`stat -c %s "${reference_fasta_filename}" 2&gt;/dev/null`;                  ## Linux
-            if [ $? -eq 0 ];
-            then
-              if [ "\$size" -lt 2000000000 ];
-              then
-                bwa index -a is "${reference_fasta_filename}";
-              else
-                bwa index -a bwtsw "${reference_fasta_filename}";
-              fi;
-            fi;
-
-            eval \$(stat -s "${reference_fasta_filename}" 2&gt;/dev/null);                   ## OSX
-            if [ -n "\$st_size" ];
-            then
-              if [ "\$st_size" -lt 2000000000 ];
-              then
-                bwa index -a is "${reference_fasta_filename}";
-                echo "Generating BWA index with is algorithm";
-              else
-                bwa index -a bwtsw "${reference_fasta_filename}";
-                echo "Generating BWA index with bwtsw algorithm";
-              fi;
-            fi;
-            ) &amp;&amp;
-    #else:
-        #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path )
-    #end if
+<![CDATA[
+    @set_reference_fasta_filename@
 
     ## setup vars for rg handling...
     @define_read_group_helpers@
@@ -134,7 +101,7 @@
         "${input_type.fastq_input1}"
       #end if
 
-      > first.sai &amp;&amp;
+      > first.sai &&
 
       bwa aln
       -t "\${GALAXY_SLOTS:-1}"
@@ -149,7 +116,7 @@
         "${input_type.fastq_input2}"
       #end if
 
-      > second.sai &amp;&amp;
+      > second.sai &&
 
       bwa sampe
 
@@ -178,7 +145,7 @@
 
       "${reference_fasta_filename}"
       "${input_type.fastq_input1}"
-      > first.sai &amp;&amp;
+      > first.sai &&
 
       bwa samse
 
@@ -202,7 +169,7 @@
 
       "${reference_fasta_filename}"
       "${input_type.bam_input}"
-      > first.sai &amp;&amp;
+      > first.sai &&
 
       bwa aln
       -t "\${GALAXY_SLOTS:-1}"
@@ -211,7 +178,7 @@
       @command_options@
       "${reference_fasta_filename}"
       "${input_type.bam_input}"
-      > second.sai &amp;&amp;
+      > second.sai &&
 
       bwa sampe
 
@@ -238,7 +205,7 @@
 
       "${reference_fasta_filename}"
       "${input_type.bam_input}"
-      > first.sai &amp;&amp;
+      > first.sai &&
 
       bwa samse
 
@@ -251,31 +218,12 @@
       "${reference_fasta_filename}" first.sai "${input_type.bam_input}"
     #end if
 
-    | samtools view -Sb - > temporary_bam_file.bam &amp;&amp;
-
-    samtools sort -f temporary_bam_file.bam ${bam_output}
+    | samtools sort -O bam -o '$bam_output'
+]]>
   </command>
 
   <inputs>
-    
-    <conditional name="reference_source">
-      <param name="reference_source_selector" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options. See `Indexes` section of help below">
-        <option value="cached">Use a built-in genome index</option>
-        <option value="history">Use a genome from history and build index</option>
-      </param>
-      <when value="cached">
-        <param name="ref_file" type="select" label="Using reference genome" help="Select genome from the list">
-          <options from_data_table="bwa_mem_indexes">
-            <filter type="sort_by" column="2" />
-            <validator type="no_options" message="No indexes are available" />
-          </options>
-          <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
-        </param>
-      </when>
-      <when value="history">
-        <param name="ref_file" type="data" format="fasta" label="Use the following dataset as the reference sequence" help="You can upload a FASTA sequence to the history and use it as reference" />
-      </when>
-    </conditional>
+    <expand macro="reference_source_conditional" />
     <conditional name="input_type">
       <param name="input_type_selector" type="select" label="Select input type" help="Select between fastq and bam datasets and between paired and single end data">
         <option value="paired">Paired fastq</option>
--- a/bwa_macros.xml	Fri Dec 18 18:51:08 2015 -0500
+++ b/bwa_macros.xml	Fri Dec 30 08:10:56 2016 -0500
@@ -1,5 +1,8 @@
 <macros>
   <import>read_group_macros.xml</import>
+
+  <token name="@VERSION@">0.7.15</token>
+
   <token name="@set_rg_string@">
       #set $rg_string = "@RG\\tID:" + str($rg_id)
       #set $rg_string += $format_read_group("\\tSM:", $rg_sm)
@@ -15,10 +18,24 @@
       #set $rg_string += $format_read_group("\\tPU:", $rg_pu)
   </token>
 
+  <token name="@set_reference_fasta_filename@"><![CDATA[
+    #if str( $reference_source.reference_source_selector ) == "history":
+        #set $reference_fasta_filename = "localref.fa"
+        ln -s "${reference_source.ref_file}" "${reference_fasta_filename}" &&
+        bwa index
+        #if str($reference_source.index_a) != 'auto'
+            -a ${reference_source.index_a}
+        #end if
+        "${reference_fasta_filename}" &&
+    #else:
+        #set $reference_fasta_filename = str( $reference_source.ref_file.fields.path )
+    #end if
+  ]]></token>
+
   <xml name="requirements">
     <requirements>
-      <requirement type="package" version="0.7.12">bwa</requirement>
-      <requirement type="package" version="1.2">samtools</requirement>
+      <requirement type="package" version="@VERSION@">bwa</requirement>
+      <requirement type="package" version="1.3.1">samtools</requirement>
     </requirements>
   </xml>
 
@@ -31,6 +48,32 @@
       </stdio>
   </xml>
 
+  <macro name="reference_source_conditional">
+    <conditional name="reference_source">
+      <param name="reference_source_selector" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options. See `Indexes` section of help below">
+        <option value="cached">Use a built-in genome index</option>
+        <option value="history">Use a genome from history and build index</option>
+      </param>
+      <when value="cached">
+        <param name="ref_file" type="select" label="Using reference genome" help="Select genome from the list">
+          <options from_data_table="bwa_mem_indexes">
+            <filter type="sort_by" column="2" />
+            <validator type="no_options" message="No indexes are available" />
+          </options>
+          <validator type="no_options" message="A built-in reference genome is not available for the build associated with the selected input file"/>
+        </param>
+      </when>
+      <when value="history">
+        <param name="ref_file" type="data" format="fasta" label="Use the following dataset as the reference sequence" help="You can upload a FASTA sequence to the history and use it as reference" />
+        <param name="index_a" type="select" label="Algorithm for constructing the BWT index" help="(-a)">
+          <option value="auto">Auto. Let BWA decide the best algorithm to use</option>
+          <option value="is">IS linear-time algorithm for constructing suffix array. It requires 5.37N memory where N is the size of the database. IS is moderately fast, but does not work with database larger than 2GB</option>
+          <option value="bwtsw">BWT-SW algorithm. This method works also with big genomes</option>
+        </param>
+      </when>
+    </conditional>
+  </macro>
+
   <macro name="dbKeyActionsBwa">
     <expand macro="dbKeyActions">
       <option type="from_data_table" name="bwa_indexes" column="1" offset="0">
@@ -131,9 +174,9 @@
   2. https://www.biostars.org/
   3. https://github.com/lh3/bwa
   4. http://bio-bwa.sourceforge.net/
-  
+
   </token>
-    
+
   <token name="@dataset_collections@">
 ------
 
--- a/tool_dependencies.xml	Fri Dec 18 18:51:08 2015 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="bwa" version="0.7.12">
-        <repository changeset_revision="67aa12c8d449" name="package_bwa_0_7_12" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-    </package>
-    <package name="samtools" version="1.2">
-        <repository changeset_revision="a55970300738" name="package_samtools_1_2" owner="iuc" toolshed="https://testtoolshed.g2.bx.psu.edu" />
-     </package>
-</tool_dependency>