changeset 1:867a8c8e870e draft

planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/bowtie_wrappers commit de7140295cce07e1bc1697e51dab4271c8d7a8a6
author devteam
date Fri, 18 Dec 2015 18:50:53 -0500
parents 4926b3e1e2fe
children ba29251df197
files bowtie_wrapper.py bowtie_wrapper.xml test-data/bowtie_out11.txt
diffstat 3 files changed, 50 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/bowtie_wrapper.py	Mon Nov 09 11:18:30 2015 -0500
+++ b/bowtie_wrapper.py	Fri Dec 18 18:50:53 2015 -0500
@@ -13,6 +13,7 @@
     --output_suppressed_reads=: File name for suppressed reads because of max setting (single-end)
     --output_suppressed_reads_l=: File name for suppressed reads because of max setting (left, paired-end)
     --output_suppressed_reads_r=: File name for suppressed reads because of max setting (right, paired-end)
+    --output_mapping_stats=: File name for mapping statistics (output on stderr by bowtie)
     -i, --input1=i: The (forward or single-end) reads file in Sanger FASTQ format
     -I, --input2=I: The reverse reads file in Sanger FASTQ format
     -4, --dataType=4: The type of data (SOLiD or Solexa)
@@ -86,6 +87,7 @@
     parser.add_option( '', '--output_suppressed_reads', dest='output_suppressed_reads', help='File name for suppressed reads because of max setting (single-end)' )
     parser.add_option( '', '--output_suppressed_reads_l', dest='output_suppressed_reads_l', help='File name for suppressed reads because of max setting (left, paired-end)' )
     parser.add_option( '', '--output_suppressed_reads_r', dest='output_suppressed_reads_r', help='File name for suppressed reads because of max setting (right, paired-end)' )
+    parser.add_option( '', '--output_mapping_stats', dest='output_mapping_stats', help='File for mapping statistics (i.e. stderr from bowtie)' )
     parser.add_option( '-4', '--dataType', dest='dataType', help='The type of data (SOLiD or Solexa)' )
     parser.add_option( '-i', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format' )
     parser.add_option( '-I', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format' )
@@ -415,7 +417,7 @@
             # align
             tmp = tempfile.NamedTemporaryFile( dir=tmp_index_dir ).name
             tmp_stderr = open( tmp, 'wb' )
-            proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_index_dir, stderr=tmp_stderr.fileno() )
+            proc = subprocess.Popen( args=cmd2, shell=True, cwd=tmp_index_dir, stdout=sys.stdout, stderr=tmp_stderr.fileno() )
             returncode = proc.wait()
             tmp_stderr.close()
             # get stderr, allowing for case where it's very large
@@ -432,6 +434,10 @@
             tmp_stderr.close()
             if returncode != 0:
                 raise Exception, stderr
+            elif options.output_mapping_stats is not None:
+                # Write stderr (containing the mapping statistics) to a named file
+                with open(options.output_mapping_stats, 'w') as mapping_stats:
+                    mapping_stats.write( stderr )
             # get suppressed and unmapped reads output files in place if appropriate
             if options.paired == 'paired' and tmp_suppressed_file_name and \
                                options.output_suppressed_reads_l and options.output_suppressed_reads_r:
--- a/bowtie_wrapper.xml	Mon Nov 09 11:18:30 2015 -0500
+++ b/bowtie_wrapper.xml	Fri Dec 18 18:50:53 2015 -0500
@@ -1,4 +1,4 @@
-<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.1.3">
+<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.1.4">
   <requirements>
     <requirement type="package" version="0.12.7">bowtie</requirement>
   </requirements>
@@ -148,6 +148,9 @@
           --seed="${singlePaired.pParams.pSeed}"
         #end if
       #end if
+      #if $save_mapping_stats
+        --output_mapping_stats="$mapping_stats"
+      #end if
   </command>
   <inputs>
     <conditional name="refGenomeSource">
@@ -415,6 +418,7 @@
         </conditional> <!-- pParams -->
       </when> <!-- paired -->
     </conditional> <!-- singlePaired -->
+    <param name="save_mapping_stats" type="boolean" checked="False" label="Save the bowtie mapping statistics to the history" />
     <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file (--sam-nohead)" help="Bowtie produces SAM with several lines of header information by default" />
   </inputs>
   <outputs>
@@ -437,6 +441,9 @@
         </conditional>
       </actions>
     </data>
+    <data format="txt" name="mapping_stats" label="${tool.name} on ${on_string}: mapping stats">
+      <filter>save_mapping_stats is True</filter>
+    </data>
     <data format="fastq" name="output_suppressed_reads_l" label="${tool.name} on ${on_string}: suppressed reads (L)">
       <filter>((
           singlePaired['sPaired'] == "single" and
@@ -744,6 +751,37 @@
       <param name="suppressHeader" value="true" />
       <output name="output" ftype="sam" file="bowtie_out10.sam" sort="True" />
     </test>
+    <test>
+      <!--
+      Bowtie command:
+      bowtie-build +offrate 5 +ftabchars 10 +little -f test-data/phiX.fasta phiX_base
+      bowtie -q -X 1000 +ff -p 4 -S +sam-nohead phiX_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > bowtie_out10_u.sam
+      sort bowtie_out10_u.sam > bowtie_out10.sam
+      -p is the number of threads. You need to replace the + with 2 dashes.
+      chrM_base is the index files' location/base name.
+      -->
+      <param name="genomeSource" value="history" />
+      <param name="ownFile" value="phiX.fasta" />
+      <param name="indexSettings" value="indexFull" />
+      <param name="autoB" value="auto" />
+      <param name="nodc" value="dc" />
+      <param name="noref" value="ref" />
+      <param name="offrate" value="5" />
+      <param name="ftab" value="10" />
+      <param name="ntoa" value="no" />
+      <param name="endian" value="little" />
+      <param name="seed" value="-1" />
+      <param name="sPaired" value="paired" />
+      <param name="pInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
+      <param name="pInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
+      <param name="pMaxInsert" value="1000" />
+      <param name="pMateOrient" value="ff" />
+      <param name="pSettingsType" value="preSet" />
+      <param name="suppressHeader" value="true" />
+      <param name="save_mapping_stats" value="true" />
+      <output name="output" ftype="sam" file="bowtie_out10.sam" sort="True" />
+      <output name="mapping_stats" ftype="txt" file="bowtie_out11.txt" sort="True" />
+    </test>
   </tests>
 
   <help>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out11.txt	Fri Dec 18 18:50:53 2015 -0500
@@ -0,0 +1,4 @@
+# reads processed: 18
+# reads with at least one reported alignment: 13 (72.22%)
+# reads that failed to align: 5 (27.78%)
+Reported 13 paired-end alignments to 1 output stream(s)