details: http://www.bx.psu.edu/hg/galaxy/rev/56efe838b9af
changeset: 3225:56efe838b9af
user: Kelly Vincent <kpvincent(a)bx.psu.edu>
date: Mon Jan 11 17:04:45 2010 -0500
description:
Added SOLiD (colorspace) support to Bowtie wrapper tool
diffstat:
test-data/bowtie_in1.fastqsanger | 4 +
test-data/bowtie_in2.fastqsanger | 5 +
test-data/bowtie_in3.fastqsanger | 4 +
test-data/bowtie_in4.fastqsanger | 4 +
test-data/bowtie_in5.fastqsanger | 4 +
test-data/bowtie_in6.fastqsanger | 4 +
test-data/bowtie_out1.sam | 2 +-
test-data/bowtie_out2.sam | 3 +-
test-data/bowtie_out3.sam | 4 +-
test-data/bowtie_out4.sam | 2 +
test-data/bowtie_out5.sam | 1 +
test-data/bowtie_out6.sam | 1 +
test-data/bowtie_out7.sam | 2 +
test-data/bowtie_out8.sam | 2 +
tool-data/bowtie_indices_color.loc.sample | 31 +
tools/sr_mapping/bowtie_wrapper.py | 447 ++++++--
tools/sr_mapping/bowtie_wrapper.xml | 1391 +++++++++++++++++++++-------
tools/sr_mapping/bowtie_wrapper_code.py | 18 +-
18 files changed, 1402 insertions(+), 527 deletions(-)
diffs (2080 lines):
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in1.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in1.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,4 @@
+@869_1532_1255/1
+G21022233110003122233210021301222000112122113330022
++
+=;8:?@=?;;9:8;=>;5A?;<8><<=:9><;9<=8;96>8<5==:<98;
\ No newline at end of file
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in2.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in2.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,5 @@
+@HWI-EAS91_1_30788AAXX:1:1:1513:715/1
+GTTTTTTNNGCATAGATGTTTAGTTGTGGTAGTCAG
++/1
+IIIIIII""IIIIIIIIIIIIIIIIIIIDI?II-+I
+
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in3.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in3.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,4 @@
+@869_1532_1255/1
+G2102223311000312223321002
++
+=;8:?@=?;;9:8;=>;5A?;<8><
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in4.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in4.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,4 @@
+@869_1532_1255/2
+2200333112212110002221031T
++
+;89<:==5<8>69;8=<9;<>9:=<
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in5.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in5.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,4 @@
+@HWI-EAS91_1_30788AAXX:1:2:618:346/1
+TAGACTACGAAAGTGACTTTAATACCTCTGACTACA
++
+IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_in6.fastqsanger
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_in6.fastqsanger Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,4 @@
+@HWI-EAS91_1_30788AAXX:1:2:618:346/2
+ATAGGCTGAATTAGCAATGGATGGTGGGGTTTATCG
++
+IIIIIIIIIIIIIII9I.II5II6DFIIIIII*I2)
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out1.sam
--- a/test-data/bowtie_out1.sam Mon Jan 11 16:35:16 2010 -0500
+++ b/test-data/bowtie_out1.sam Mon Jan 11 17:04:45 2010 -0500
@@ -1,1 +1,1 @@
-HWI-EAS91_1_30788AAXX:1:1:1513:715/1 16 chrM 9563 255 36M * 0 0 CTGACTACCACAACTAAACATCTATGCNNAAAAAAC I+-II?IDIIIIIIIIIIIIIIIIIII""IIIIIII XA:i:2 MD:Z:27A0G7 NM:i:2
+869_1532_1255/1 16 chrM 3728 255 48M * 0 0 GAAATATGTCTGACAAAAGAGTTACTTTGATAGAGTAAAACATAGAGG "TUVYQPSUSNSRTXTSVYVRVXWYUSVY_UOXZWRQRSUY[\^XQR! XA:i:1 MD:Z:48 NM:i:0 CM:i:2
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out2.sam
--- a/test-data/bowtie_out2.sam Mon Jan 11 16:35:16 2010 -0500
+++ b/test-data/bowtie_out2.sam Mon Jan 11 17:04:45 2010 -0500
@@ -1,2 +1,1 @@
-HWI-EAS91_1_30788AAXX:1:2:618:346/1 99 chrM 441 255 36M = 652 247 TAGACTACGAAAGTGACTTTAATACCTCTGACTACA IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3 XA:i:0 MD:Z:36 NM:i:0
-HWI-EAS91_1_30788AAXX:1:2:618:346/2 147 chrM 652 255 36M = 441 -247 CGATAAACCCCACCATCCATTGCTAATTCAGCCTAT )2I*IIIIIIFD6II5II.I9IIIIIIIIIIIIIII XA:i:1 MD:Z:18C17 NM:i:1
+HWI-EAS91_1_30788AAXX:1:1:1513:715/1 16 chrM 9563 255 36M * 0 0 CTGACTACCACAACTAAACATCTATGCNNAAAAAAC I+-II?IDIIIIIIIIIIIIIIIIIII""IIIIIII XA:i:2 MD:Z:27A0G7 NM:i:2
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out3.sam
--- a/test-data/bowtie_out3.sam Mon Jan 11 16:35:16 2010 -0500
+++ b/test-data/bowtie_out3.sam Mon Jan 11 17:04:45 2010 -0500
@@ -1,2 +1,2 @@
-HWI-EAS91_1_30788AAXX:1:2:618:346/1 99 chrM 441 255 36M = 652 247 TAGACTACGAAAGTGACTTTAATACCTCTGACTACA IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3 XA:i:0 MD:Z:36 NM:i:0
-HWI-EAS91_1_30788AAXX:1:2:618:346/2 147 chrM 652 255 36M = 441 -247 CGATAAACCCCACCATCCATTGCTAATTCAGCCTAT )2I*IIIIIIFD6II5II.I9IIIIIIIIIIIIIII XA:i:0 MD:Z:18C17 NM:i:1
+869_1532_1255 163 chrM 3727 255 27M = 3752 50 GGAAATATGTCTGACAAAAGAGTTACT !!PTUVYQPSUSNSRTXTSVYVRVX<! XA:i:2 MD:Z:27 NM:i:0 CM:i:2
+869_1532_1255 83 chrM 3752 255 25M = 3727 -50 CTTTGATAGAGTAAAACATAGAGGC >USVY_UOXZWRQRSUY[\^XQR!! XA:i:1 MD:Z:25 NM:i:0 CM:i:1
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out4.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out4.sam Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,2 @@
+HWI-EAS91_1_30788AAXX:1:2:618:346 99 chrM 441 255 36M = 652 247 TAGACTACGAAAGTGACTTTAATACCTCTGACTACA IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3 XA:i:0 MD:Z:36 NM:i:0
+HWI-EAS91_1_30788AAXX:1:2:618:346 147 chrM 652 255 36M = 441 -247 CGATAAACCCCACCATCCATTGCTAATTCAGCCTAT )2I*IIIIIIFD6II5II.I9IIIIIIIIIIIIIII XA:i:1 MD:Z:18C17 NM:i:1
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out5.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out5.sam Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,1 @@
+869_1532_1255/1 16 chrM 3727 255 50M * 0 0 GGAAATATGTCTGACAAAAGAGTTACTTTGATAGAGTAAAACATAGAGGC !"TUVYQPSUSNSRTXTSVYVRVXWYUSVY_UOXZWRQRSUY[\^XQR!! XA:i:1 MD:Z:50 NM:i:0 CM:i:2
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out6.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out6.sam Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,1 @@
+HWI-EAS91_1_30788AAXX:1:1:1513:715/1 16 chrM 9563 255 36M * 0 0 CTGACTACCACAACTAAACATCTATGCNNAAAAAAC I+-II?IDIIIIIIIIIIIIIIIIIII""IIIIIII XA:i:2 MD:Z:27A0G7 NM:i:2
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out7.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out7.sam Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,2 @@
+869_1532_1255 163 chrM 3728 255 25M = 3752 47 GAAATATGTCTGACAAAAGAGTTAC !PTUVYQPSUSNSRTXTSVYVRVX< XA:i:2 MD:Z:25 NM:i:0 CM:i:2
+869_1532_1255 83 chrM 3753 255 23M = 3727 -49 TTTGATAGAGTAAAACATAGAGG USVY_UOXZWRQRSUY[\^XQR! XA:i:1 MD:Z:23 NM:i:0 CM:i:1
diff -r 61f1ec6c5b24 -r 56efe838b9af test-data/bowtie_out8.sam
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bowtie_out8.sam Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,2 @@
+HWI-EAS91_1_30788AAXX:1:2:618:346 99 chrM 441 255 36M = 652 247 TAGACTACGAAAGTGACTTTAATACCTCTGACTACA IIIIIIIIIIIIIIIIIIIIIIIIIIIII%4II;I3 XA:i:0 MD:Z:36 NM:i:0
+HWI-EAS91_1_30788AAXX:1:2:618:346 147 chrM 652 255 36M = 441 -247 CGATAAACCCCACCATCCATTGCTAATTCAGCCTAT )2I*IIIIIIFD6II5II.I9IIIIIIIIIIIIIII XA:i:1 MD:Z:18C17 NM:i:1
diff -r 61f1ec6c5b24 -r 56efe838b9af tool-data/bowtie_indices_color.loc.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/bowtie_indices_color.loc.sample Mon Jan 11 17:04:45 2010 -0500
@@ -0,0 +1,31 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of colorspace Bowtie indexed sequences data files.
+#You will need to create these data files and then create a
+#bowtie_indices_color.loc file similar to this one (store it in this
+#directory) that points to the directories in which those files are
+#stored. The bowtie_indices_color.loc file has this format (white
+#space characters are TAB characters):
+#
+#<build> <file_base>
+#
+#So, for example, if you had hg18 indexed stored in
+#/depot/data2/galaxy/bowtie/hg18/,
+#then the bowtie_indices_color.loc entry would look like this:
+#
+#hg18 /depot/data2/galaxy/bowtie/hg18/hg18
+#
+#and your /depot/data2/galaxy/bowtie/hg18/ directory
+#would contain hg18.*.ebwt files:
+#
+#-rw-r--r-- 1 james universe 830134 2005-09-13 10:12 hg18.1.ebwt
+#-rw-r--r-- 1 james universe 527388 2005-09-13 10:12 hg18.2.ebwt
+#-rw-r--r-- 1 james universe 269808 2005-09-13 10:12 gh18.3.ebwt
+#...etc...
+#
+#Your bowtie_indices_color.loc file should include an entry per line
+#for each index set you have stored. The "file" in the path does not
+#actually exist, but it is the prefix for the actual index files. For
+#example:
+#
+#hg18 /depot/data2/galaxy/bowtie/hg18/hg18
+#hg19 /depot/data2/galaxy/bowtie/hg19/hg19
diff -r 61f1ec6c5b24 -r 56efe838b9af tools/sr_mapping/bowtie_wrapper.py
--- a/tools/sr_mapping/bowtie_wrapper.py Mon Jan 11 16:35:16 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper.py Mon Jan 11 17:04:45 2010 -0500
@@ -2,6 +2,61 @@
"""
Runs Bowtie on single-end or paired-end data.
+For use with Bowtie v. 0.12.1
+
+usage: bowtie_wrapper.py [options]
+ -t, --threads=t: The number of threads to run
+ -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
+ -o, --output=o: The output file
+ -4, --dataType=4: The type of data (SOLiD or Solexa)
+ -2, --paired=2: Whether the data is single- or paired-end
+ -g, --genomeSource=g: The type of reference provided
+ -r, --ref=r: The reference genome to use or index
+ -s, --skip=s: Skip the first n reads
+ -a, --alignLimit=a: Only align the first n reads
+ -T, --trimH=T: Trim n bases from high-quality (left) end of each read before alignment
+ -L, --trimL=L: Trim n bases from low-quality (right) end of each read before alignment
+ -m, --mismatchSeed=m: Maximum number of mismatches permitted in the seed
+ -M, --mismatchQual=M: Maximum permitted total of quality values at mismatched read positions
+ -l, --seedLen=l: Seed length
+ -n, --rounding=n: Whether or not to round to the nearest 10 and saturating at 30
+ -P, --maqSoapAlign=P: Choose MAQ- or SOAP-like alignment policy
+ -w, --tryHard=: Whether or not to try as hard as possible to find valid alignments when they exist
+ -v, --valAlign=v: Report up to n valid arguments per read
+ -V, --allValAligns=V: Whether or not to report all valid alignments per read
+ -G, --suppressAlign=G: Suppress all alignments for a read if more than n reportable alignments exist
+ -b, --best=b: Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions
+ -B, --maxBacktracks=B: Maximum number of backtracks permitted when aligning a read
+ -R, --strata=R: Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable
+ -j, --minInsert=j: Minimum insert size for valid paired-end alignments
+ -J, --maxInsert=J: Maximum insert size for valid paired-end alignments
+ -O, --mateOrient=O: The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand
+ -A, --maxAlignAttempt=A: Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate
+ -f, --forwardAlign=f: Whether or not to attempt to align the forward reference strand
+ -E, --reverseAlign=E: Whether or not to attempt to align the reverse-complement reference strand
+ -F, --offrate=F: Override the offrate of the index to n
+ -8, --snpphred=8: SNP penalty on Phred scale
+ -6, --snpfrac=6: Fraction of sites expected to be SNP sites
+ -7, --keepends=7: Keep extreme-end nucleotides and qualities
+ -S, --seed=S: Seed for pseudo-random number generator
+ -d, --dbkey=d: Dbkey of reference genome
+ -C, --params=C: Whether to use default or specified parameters
+ -u, --iauto_b=u: Automatic or specified behavior
+ -K, --ipacked=K: Whether or not to use a packed representation for DNA strings
+ -Q, --ibmax=Q: Maximum number of suffixes allowed in a block
+ -Y, --ibmaxdivn=Y: Maximum number of suffixes allowed in a block as a fraction of the length of the reference
+ -D, --idcv=D: The period for the difference-cover sample
+ -U, --inodc=U: Whether or not to disable the use of the difference-cover sample
+ -y, --inoref=y: Whether or not to build the part of the reference index used only in paired-end alignment
+ -z, --ioffrate=z: How many rows get marked during annotation of some or all of the Burrows-Wheeler rows
+ -W, --iftab=W: The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query
+ -X, --intoa=X: Whether or not to convert Ns in the reference sequence to As
+ -N, --iendian=N: Endianness to use when serializing integers to the index file
+ -Z, --iseed=Z: Seed for the pseudorandom number generator
+ -c, --icutoff=c: Number of first bases of the reference sequence to index
+ -x, --indexSettings=x: Whether or not indexing options are to be set
+ -H, --suppressHeader=H: Suppress header
"""
import optparse, os, shutil, sys, tempfile
@@ -13,161 +68,281 @@
def __main__():
#Parse Command Line
parser = optparse.OptionParser()
- parser.add_option('', '--threads', dest='threads', help='The number of threads to run')
- parser.add_option('', '--input1', dest='input1', help='The (forward or single-end) reads file in Sanger FASTQ format')
- parser.add_option('', '--input2', dest='input2', help='The reverse reads file in Sanger FASTQ format')
- parser.add_option('', '--output', dest='output', help='The output file')
- parser.add_option('', '--paired', dest='paired', help='Whether the data is single- or paired-end')
- parser.add_option('', '--genomeSource', dest='genomeSource', help='The type of reference provided')
- parser.add_option('', '--ref', dest='ref', help='The reference genome to use or index')
- parser.add_option('', '--skip', dest='skip', help='Skip the first n reads')
- parser.add_option('', '--alignLimit', dest='alignLimit', help='Only align the first n reads')
- parser.add_option('', '--trimH', dest='trimH', help='Trim n bases from high-quality (left) end of each read before alignment')
- parser.add_option('', '--trimL', dest='trimL', help='Trim n bases from low-quality (right) end of each read before alignment')
- parser.add_option('', '--mismatchSeed', dest='mismatchSeed', help='Maximum number of mismatches permitted in the seed')
- parser.add_option('', '--mismatchQual', dest='mismatchQual', help='Maximum permitted total of quality values at mismatched read positions')
- parser.add_option('', '--seedLen', dest='seedLen', help='Seed length')
- parser.add_option('', '--rounding', dest='rounding', help='Whether or not to round to the nearest 10 and saturating at 30')
- parser.add_option('', '--maqSoapAlign', dest='maqSoapAlign', help='Choose MAQ- or SOAP-like alignment policy')
- parser.add_option('', '--tryHard', dest='tryHard', help='Whether or not to try as hard as possible to find valid alignments when they exist')
- parser.add_option('', '--valAlign', dest='valAlign', help='Report up to n valid arguments per read')
- parser.add_option('', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read')
- parser.add_option('', '--suppressAlign', dest='suppressAlign', help='Suppress all alignments for a read if more than n reportable alignments exist')
- parser.add_option('', '--best', dest='best', help="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions")
- parser.add_option('', '--maxBacktracks', dest='maxBacktracks', help='Maximum number of backtracks permitted when aligning a read')
- parser.add_option('', '--strata', dest='strata', help='Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable')
- parser.add_option('', '--minInsert', dest='minInsert', help='Minimum insert size for valid paired-end alignments')
- parser.add_option('', '--maxInsert', dest='maxInsert', help='Maximum insert size for valid paired-end alignments')
- parser.add_option('', '--mateOrient', dest='mateOrient', help='The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand')
- parser.add_option('', '--maxAlignAttempt', dest='maxAlignAttempt', help='Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate')
- parser.add_option('', '--forwardAlign', dest='forwardAlign', help='Whether or not to attempt to align the forward reference strand')
- parser.add_option('', '--reverseAlign', dest='reverseAlign', help='Whether or not to attempt to align the reverse-complement reference strand')
- parser.add_option('', '--offrate', dest='offrate', help='Override the offrate of the index to n')
- parser.add_option('', '--seed', dest='seed', help='Seed for pseudo-random number generator')
- parser.add_option('', '--dbkey', dest='dbkey', help='')
- parser.add_option('', '--params', dest='params', help='Whether to use default or specified parameters')
- parser.add_option('', '--iauto_b', dest='iauto_b', help='Automatic or specified behavior')
- parser.add_option('', '--ipacked', dest='ipacked', help='Whether or not to use a packed representation for DNA strings')
- parser.add_option('', '--ibmax', dest='ibmax', help='Maximum number of suffixes allowed in a block')
- parser.add_option('', '--ibmaxdivn', dest='ibmaxdivn', help='Maximum number of suffixes allowed in a block as a fraction of the length of the reference')
- parser.add_option('', '--idcv', dest='idcv', help='The period for the difference-cover sample')
- parser.add_option('', '--inodc', dest='inodc', help='Whether or not to disable the use of the difference-cover sample')
- parser.add_option('', '--inoref', dest='inoref', help='Whether or not to build the part of the reference index used only in paried-end alignment')
- parser.add_option('', '--ioffrate', dest='ioffrate', help='How many rows get marked during annotation of some or all of the Burrows-Wheeler rows')
- parser.add_option('', '--iftab', dest='iftab', help='The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query')
- parser.add_option('', '--intoa', dest='intoa', help='Whether or not to convert Ns in the reference sequence to As')
- parser.add_option('', '--iendian', dest='iendian', help='Endianness to use when serializing integers to the index file')
- parser.add_option('', '--iseed', dest='iseed', help='Seed for the pseudorandom number generator')
- parser.add_option('', '--icutoff', dest='icutoff', help='Number of first bases of the reference sequence to index')
- parser.add_option('', '--indexSettings', dest='index_settings', help='Whether or not indexing options are to be set')
- parser.add_option('', '--suppressHeader', dest='suppressHeader', help='Suppress header')
+ parser.add_option( '-t', '--threads', dest='threads', help='The number of threads to run' )
+ 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' )
+ parser.add_option( '-o', '--output', dest='output', help='The output file' )
+ parser.add_option( '-2', '--paired', dest='paired', help='Whether the data is single- or paired-end' )
+ parser.add_option( '-g', '--genomeSource', dest='genomeSource', help='The type of reference provided' )
+ parser.add_option( '-r', '--ref', dest='ref', help='The reference genome to use or index' )
+ parser.add_option( '-s', '--skip', dest='skip', help='Skip the first n reads' )
+ parser.add_option( '-a', '--alignLimit', dest='alignLimit', help='Only align the first n reads' )
+ parser.add_option( '-T', '--trimH', dest='trimH', help='Trim n bases from high-quality (left) end of each read before alignment' )
+ parser.add_option( '-L', '--trimL', dest='trimL', help='Trim n bases from low-quality (right) end of each read before alignment' )
+ parser.add_option( '-m', '--mismatchSeed', dest='mismatchSeed', help='Maximum number of mismatches permitted in the seed' )
+ parser.add_option( '-M', '--mismatchQual', dest='mismatchQual', help='Maximum permitted total of quality values at mismatched read positions' )
+ parser.add_option( '-l', '--seedLen', dest='seedLen', help='Seed length' )
+ parser.add_option( '-n', '--rounding', dest='rounding', help='Whether or not to round to the nearest 10 and saturating at 30' )
+ parser.add_option( '-P', '--maqSoapAlign', dest='maqSoapAlign', help='Choose MAQ- or SOAP-like alignment policy' )
+ parser.add_option( '-w', '--tryHard', dest='tryHard', help='Whether or not to try as hard as possible to find valid alignments when they exist' )
+ parser.add_option( '-v', '--valAlign', dest='valAlign', help='Report up to n valid arguments per read' )
+ parser.add_option( '-V', '--allValAligns', dest='allValAligns', help='Whether or not to report all valid alignments per read' )
+ parser.add_option( '-G', '--suppressAlign', dest='suppressAlign', help='Suppress all alignments for a read if more than n reportable alignments exist' )
+ parser.add_option( '-b', '--best', dest='best', help="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions" )
+ parser.add_option( '-B', '--maxBacktracks', dest='maxBacktracks', help='Maximum number of backtracks permitted when aligning a read' )
+ parser.add_option( '-R', '--strata', dest='strata', help='Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable' )
+ parser.add_option( '-j', '--minInsert', dest='minInsert', help='Minimum insert size for valid paired-end alignments' )
+ parser.add_option( '-J', '--maxInsert', dest='maxInsert', help='Maximum insert size for valid paired-end alignments' )
+ parser.add_option( '-O', '--mateOrient', dest='mateOrient', help='The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand' )
+ parser.add_option( '-A', '--maxAlignAttempt', dest='maxAlignAttempt', help='Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate' )
+ parser.add_option( '-f', '--forwardAlign', dest='forwardAlign', help='Whether or not to attempt to align the forward reference strand' )
+ parser.add_option( '-E', '--reverseAlign', dest='reverseAlign', help='Whether or not to attempt to align the reverse-complement reference strand' )
+ parser.add_option( '-F', '--offrate', dest='offrate', help='Override the offrate of the index to n' )
+ parser.add_option( '-S', '--seed', dest='seed', help='Seed for pseudo-random number generator' )
+ parser.add_option( '-8', '--snpphred', dest='snpphred', help='SNP penalty on Phred scale' )
+ parser.add_option( '-6', '--snpfrac', dest='snpfrac', help='Fraction of sites expected to be SNP sites' )
+ parser.add_option( '-7', '--keepends', dest='keepends', help='Keep extreme-end nucleotides and qualities' )
+ parser.add_option( '-d', '--dbkey', dest='dbkey', help='Dbkey of reference genome' )
+ parser.add_option( '-C', '--params', dest='params', help='Whether to use default or specified parameters' )
+ parser.add_option( '-u', '--iauto_b', dest='iauto_b', help='Automatic or specified behavior' )
+ parser.add_option( '-K', '--ipacked', dest='ipacked', help='Whether or not to use a packed representation for DNA strings' )
+ parser.add_option( '-Q', '--ibmax', dest='ibmax', help='Maximum number of suffixes allowed in a block' )
+ parser.add_option( '-Y', '--ibmaxdivn', dest='ibmaxdivn', help='Maximum number of suffixes allowed in a block as a fraction of the length of the reference' )
+ parser.add_option( '-D', '--idcv', dest='idcv', help='The period for the difference-cover sample' )
+ parser.add_option( '-U', '--inodc', dest='inodc', help='Whether or not to disable the use of the difference-cover sample' )
+ parser.add_option( '-y', '--inoref', dest='inoref', help='Whether or not to build the part of the reference index used only in paired-end alignment' )
+ parser.add_option( '-z', '--ioffrate', dest='ioffrate', help='How many rows get marked during annotation of some or all of the Burrows-Wheeler rows' )
+ parser.add_option( '-W', '--iftab', dest='iftab', help='The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query' )
+ parser.add_option( '-X', '--intoa', dest='intoa', help='Whether or not to convert Ns in the reference sequence to As' )
+ parser.add_option( '-N', '--iendian', dest='iendian', help='Endianness to use when serializing integers to the index file' )
+ parser.add_option( '-Z', '--iseed', dest='iseed', help='Seed for the pseudorandom number generator' )
+ parser.add_option( '-c', '--icutoff', dest='icutoff', help='Number of first bases of the reference sequence to index' )
+ parser.add_option( '-x', '--indexSettings', dest='index_settings', help='Whether or not indexing options are to be set' )
+ parser.add_option( '-H', '--suppressHeader', dest='suppressHeader', help='Suppress header' )
(options, args) = parser.parse_args()
# make temp directory for placement of indices and copy reference file there if necessary
tmp_index_dir = tempfile.mkdtemp()
+ # get type of data (solid or solexa)
+ if options.dataType == 'solid':
+ colorspace = '-C'
+ else:
+ colorspace = ''
# index if necessary
- if options.genomeSource == 'history':
+ if options.genomeSource == 'cHistory' or options.genomeSource == 'xHistory':
# set up commands
- if options.index_settings =='index_pre_set':
- indexing_cmds = ''
+ if options.index_settings =='cIndexPreSet' or options.index_settings == 'xIndexPreSet':
+ indexing_cmds = '%s' % colorspace
else:
try:
- indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s' % \
- (('','--noauto')[options.iauto_b=='set'],
- ('','--packed')[options.ipacked=='packed'],
- ('','--bmax %s'%options.ibmax)[options.ibmax!='None' and options.ibmax>=1],
- ('','--bmaxdivn %s'%options.ibmaxdivn)[options.ibmaxdivn!='None'],
- ('','--dcv %s'%options.idcv)[options.idcv!='None'],
- ('','--nodc')[options.inodc=='nodc'],
- ('','--noref')[options.inoref=='noref'], options.ioffrate,
- ('','--ftabchars %s'%options.iftab)[int(options.iftab)>=0],
- ('','--ntoa')[options.intoa=='yes'],
- ('--little','--big')[options.iendian=='big'],
- ('','--seed %s'%options.iseed)[int(options.iseed)>0],
- ('','--cutoff %s'%options.icutoff)[int(options.icutoff)>0])
+ if options.iauto_b == 'set':
+ iauto_b = '--noauto'
+ else:
+ iauto_b = ''
+ if options.ipacked == 'packed':
+ ipacked = '--packed'
+ else:
+ ipacked = ''
+ if options.ibmax != 'None' and int( options.ibmax ) >= 1:
+ ibmax = '--bmax %s' % options.ibmax
+ else:
+ ibmax = ''
+ if options.ibmaxdivn != 'None' and int( options.ibmaxdivn ) >= 0:
+ ibmaxdivn = '--bmaxdivn %s' % options.ibmaxdivn
+ else:
+ ibmaxdivn = ''
+ if options.idcv != 'None' and int( options.idcv ) > 0:
+ idcv = '--dcv %s' % options.idcv
+ else:
+ idcv = ''
+ if options.inodc == 'nodc':
+ inodc = '--nodc'
+ else:
+ inodc = ''
+ if options.inoref == 'noref':
+ inoref = '--noref'
+ else:
+ inoref = ''
+ if options.iftab != 'None' and int( options.iftab ) >= 0:
+ iftab = '--ftabchars %s' % options.iftab
+ else:
+ iftab = ''
+ if options.intoa == 'yes':
+ intoa = '--ntoa'
+ else:
+ intoa = ''
+ if options.iendian == 'big':
+ iendian = '--big'
+ else:
+ iendian = '--little'
+ if int( options.iseed ) > 0:
+ iseed = '--seed %s' % options.iseed
+ else:
+ iseed = ''
+ if int( options.icutoff ) > 0:
+ icutoff = '--cutoff %s' % options.icutoff
+ else:
+ icutoff = ''
+ indexing_cmds = '%s %s %s %s %s %s %s --offrate %s %s %s %s %s %s %s' % \
+ ( iauto_b, ipacked, ibmax, ibmaxdivn, idcv, inodc,
+ inoref, options.ioffrate, iftab, intoa, iendian,
+ iseed, icutoff, colorspace )
except ValueError:
indexing_cmds = ''
try:
- shutil.copy(options.ref, tmp_index_dir)
- except Exception, erf:
- stop_err('Error creating temp directory for indexing purposes\n' + str(erf))
- options.ref = os.path.join(tmp_index_dir,os.path.split(options.ref)[1])
- cmd1 = 'bowtie-build %s -f %s %s 2> /dev/null' % (indexing_cmds, options.ref, options.ref)
+ shutil.copy( options.ref, tmp_index_dir )
+ except Exception, e:
+ stop_err( 'Error creating temp directory for indexing purposes\n' + str( e ) )
+ options.ref = os.path.join( tmp_index_dir, os.path.split( options.ref )[1] )
+ cmd1 = 'bowtie-build %s -f %s %s 2> /dev/null' % ( indexing_cmds, options.ref, options.ref )
try:
- os.chdir(tmp_index_dir)
- os.system(cmd1)
- except Exception, erf:
- stop_err('Error indexing reference sequence\n' + str(erf))
+ os.chdir( tmp_index_dir )
+ os.system( cmd1 )
+ except Exception, e:
+ stop_err( 'Error indexing reference sequence\n' + str( e ) )
# set up aligning and generate aligning command options
# automatically set threads in both cases
- if options.params == 'pre_set':
- aligning_cmds = '-p %s -S' % options.threads
+ if options.suppressHeader == 'true':
+ suppressHeader = '--sam-nohead'
+ else:
+ suppressHeader = ''
+ if options.params == 'csPreSet' or options.params == 'cpPreSet' or \
+ options.params == 'xsPreSet' or options.params == 'xpPreSet':
+ aligning_cmds = '-p %s -S %s -q %s ' % ( options.threads, suppressHeader, colorspace )
else:
try:
- aligning_cmds = '%s %s %s %s %s %s %s %s %s %s %s %s %s %s ' \
- '%s %s %s %s %s %s %s %s %s %s -p %s -S' % \
- (('','-s %s'%options.skip)[options.skip!='None'],
- ('','-u %s'%options.alignLimit)[int(options.alignLimit)>0],
- ('','-5 %s'%options.trimH)[int(options.trimH)>=0],
- ('','-3 %s'%options.trimL)[int(options.trimL)>=0],
- ('','-n %s'%options.mismatchSeed)[options.mismatchSeed=='0' or options.mismatchSeed=='1' or options.mismatchSeed=='2' or options.mismatchSeed=='3'],
- ('','-e %s'%options.mismatchQual)[int(options.mismatchQual)>=0],
- ('','-l %s'%options.seedLen)[int(options.seedLen)>=5],
- ('','--nomaqround')[options.rounding=='noRound'],
- ('','-v %s'%options.maqSoapAlign)[options.maqSoapAlign!='-1'],
- ('','-I %s'%options.minInsert)[options.minInsert!='None'],
- ('','-X %s'%options.maxInsert)[options.maxInsert!='None'],
- ('','--%s'%options.mateOrient)[options.mateOrient!='None'],
- ('','--pairtries %s'%options.maxAlignAttempt)[options.maxAlignAttempt!='None' and int(options.maxAlignAttempt)>=0],
- ('','--nofw')[options.forwardAlign=='noForward'],
- ('','--norc')[options.reverseAlign=='noReverse'],
- ('','--maxbts %s'%options.maxBacktracks)[options.maxBacktracks!='None' and (options.mismatchSeed=='2' or options.mismatchSeed=='3')],
- ('','-y')[options.tryHard=='doTryHard'],
- ('','-k %s'%options.valAlign)[options.valAlign!='None' and int(options.valAlign)>=0],
- ('','-a')[options.allValAligns=='doAllValAligns' and int(options.allValAligns)>=0],
- ('','-m %s'%options.suppressAlign)[int(options.suppressAlign)>=0],
- ('','--best')[options.best=='doBest'],
- ('','--strata')[options.strata=='doStrata'],
- ('','-o %s'%options.offrate)[int(options.offrate)>=0],
- ('','--seed %s'%options.seed)[int(options.seed)>=0],
- options.threads)
- except ValueError, erf:
- stop_err('Something is wrong with the alignment parameters and the alignment could not be run\n' + str(erf))
+ if options.skip != 'None' and int( options.skip ) > 0:
+ skip = '-s %s' % options.skip
+ else:
+ skip = ''
+ if int( options.alignLimit ) >= 0:
+ alignLimit = '-u %s' % options.alignLimit
+ else:
+ alignLimit = ''
+ if int( options.trimH ) > 0:
+ trimH = '-5 %s' % options.trimH
+ else:
+ trimH = ''
+ if int( options.trimL ) > 0:
+ trimL = '-3 %s' % options.trimL
+ else:
+ trimL = ''
+ if options.mismatchSeed == '0' or options.mismatchSeed == '1' or options.mismatchSeed == '2' or options.mismatchSeed == '3':
+ mismatchSeed = '-n %s' % options.mismatchSeed
+ else:
+ mismatchSeed = ''
+ if int( options.mismatchQual ) >= 0:
+ mismatchQual = '-e %s' % options.mismatchQual
+ else:
+ mismatchQual = ''
+ if int( options.seedLen ) >= 5:
+ seedLen = '-l %s' % options.seedLen
+ else:
+ seedLen = ''
+ if options.rounding == 'noRound':
+ rounding = '--nomaqround'
+ else:
+ rounding = ''
+ if options.maqSoapAlign != '-1':
+ maqSoapAlign = '-v %s' % options.maqSoapAlign
+ else:
+ maqSoapAlign = ''
+ if options.minInsert != 'None' and int( options.minInsert ) > 0:
+ minInsert = '-I %s' % options.minInsert
+ else:
+ minInsert = ''
+ if options.maxInsert != 'None' and int( options.maxInsert ) > 0:
+ maxInsert = '-X %s' % options.maxInsert
+ else:
+ maxInsert = ''
+ if options.mateOrient != 'None':
+ mateOrient = '--%s' % options.mateOrient
+ else:
+ mateOrient = ''
+ if options.maxAlignAttempt != 'None' and int( options.maxAlignAttempt ) >= 0:
+ maxAlignAttempt = '--pairtries %s' % options.maxAlignAttempt
+ else:
+ maxAlignAttempt = ''
+ if options.forwardAlign == 'noForward':
+ forwardAlign = '--nofw'
+ else:
+ forwardAlign = ''
+ if options.reverseAlign == 'noReverse':
+ reverseAlign = '--norc'
+ else:
+ reverseAlign = ''
+ if options.maxBacktracks != 'None' and int( options.maxBacktracks ) > 0 and \
+ ( options.mismatchSeed == '2' or options.mismatchSeed == '3' ):
+ maxBacktracks = '--maxbts %s' % options.maxBacktracks
+ else:
+ maxBacktracks = ''
+ if options.tryHard == 'doTryHard':
+ tryHard = '-y'
+ else:
+ tryHard = ''
+ if options.valAlign != 'None' and int( options.valAlign ) >= 0:
+ valAlign = '-k %s' % options.valAlign
+ else:
+ valAlign = ''
+ if options.allValAligns == 'doAllValAligns':
+ allValAligns = '-a'
+ else:
+ allValAligns = ''
+ if options.suppressAlign != 'None' and int( options.suppressAlign ) >= 0:
+ suppressAlign = '-m %s' % options.suppressAlign
+ else:
+ suppressAlign = ''
+ if options.best == 'csDoBest' or options.best == 'cpDoBest' or \
+ options.best == 'xsDoBest' or options.best == 'xpDoBest':
+ best = '--best'
+ else:
+ best = ''
+ if options.strata == 'doStrata':
+ strata = '--strata'
+ else:
+ strata = ''
+ if options.offrate != 'None' and int( options.offrate ) >= 0:
+ offrate = '-o %s' % options.offrate
+ else:
+ offrate = ''
+ if options.seed != 'None' and int( options.seed ) >= 0:
+ seed = '--seed %s' % options.seed
+ else:
+ seed = ''
+ if options.snpphred != 'None' and int( options.snpphred ) >= 0:
+ snpphred = '--snpphred %s' % options.snpphred
+ else:
+ snpphred = ''
+ if options.snpfrac != 'None' and float( options.snpfrac ) >= 0:
+ snpfrac = '--snpfrac %s' % options.snpfrac
+ else:
+ snpfrac = ''
+ if options.keepends != 'None' and options.keepends == 'doKeepends':
+ keepends = '--col-keepends'
+ else:
+ keepends = ''
+ aligning_cmds = '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s ' \
+ '%s %s %s %s %s %s %s %s %s %s %s -p %s -S %s -q' % \
+ ( skip, alignLimit, trimH, trimL, mismatchSeed, mismatchQual,
+ seedLen, rounding, maqSoapAlign, minInsert, maxInsert,
+ mateOrient, maxAlignAttempt, forwardAlign, reverseAlign,
+ maxBacktracks, tryHard, valAlign, allValAligns, suppressAlign,
+ best, strata, offrate, seed, colorspace, snpphred, snpfrac,
+ keepends, options.threads, suppressHeader )
+ except ValueError, e:
+ stop_err( 'Something is wrong with the alignment parameters and the alignment could not be run\n' + str( e ) )
# prepare actual aligning commands
- if options.paired == 'paired':
- cmd2 = 'bowtie %s %s -1 %s -2 %s > %s 2> /dev/null' % (aligning_cmds, options.ref, options.input1, options.input2, options.output)
+ if options.paired == 'cPaired' or options.paired == 'xPaired':
+ cmd2 = 'bowtie %s %s -1 %s -2 %s > %s 2> /dev/null' % ( aligning_cmds, options.ref, options.input1, options.input2, options.output )
else:
- cmd2 = 'bowtie %s %s %s > %s 2> /dev/null' % (aligning_cmds, options.ref, options.input1, options.output)
+ cmd2 = 'bowtie %s %s %s > %s 2> /dev/null' % ( aligning_cmds, options.ref, options.input1, options.output )
# align
try:
- os.system(cmd2)
- except Exception, erf:
- stop_err("Error aligning sequence\n" + str(erf))
- # remove header if necessary
- if options.suppressHeader == 'true':
- tmp_out = tempfile.NamedTemporaryFile()
- cmd3 = 'cp %s %s' % (options.output, tmp_out.name)
- try:
- os.system(cmd3)
- except Exception, erf:
- stop_err("Error copying output file before removing headers\n" + str(erf))
- output = file(tmp_out.name, 'r')
- fout = file(options.output, 'w')
- header = True
- line = output.readline()
- while line.strip() != '':
- if header:
- if line.startswith('@HD') or line.startswith('@SQ') or line.startswith('@RG') or line.startswith('@PG') or line.startswith('@CO'):
- pass
- else:
- header = False
- fout.write(line)
- else:
- fout.write(line)
- line = output.readline()
- fout.close()
- tmp_out.close()
+ os.system( cmd2 )
+ except Exception, e:
+ stop_err( 'Error aligning sequence\n' + str( e ) )
# clean up temp dir
- if os.path.exists(tmp_index_dir):
- shutil.rmtree(tmp_index_dir)
+ if os.path.exists( tmp_index_dir ):
+ shutil.rmtree( tmp_index_dir )
if __name__=="__main__": __main__()
diff -r 61f1ec6c5b24 -r 56efe838b9af tools/sr_mapping/bowtie_wrapper.xml
--- a/tools/sr_mapping/bowtie_wrapper.xml Mon Jan 11 16:35:16 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper.xml Mon Jan 11 17:04:45 2010 -0500
@@ -1,326 +1,780 @@
-<tool id="bowtie_wrapper" name="Map with Bowtie" version="1.0.0">
+<tool id="bowtie_wrapper" name="Map with Bowtie" version="1.0.5">
<description></description>
<command interpreter="python">
- bowtie_wrapper.py
- --threads="4"
- --input1=$singlePaired.input1
- #if $singlePaired.sPaired == "paired":
- --input2=$singlePaired.input2
- #else:
- --input2="None"
- #end if
- --output=$output
- --paired=$singlePaired.sPaired
- --genomeSource=$refGenomeSource.genomeSource
- #if $refGenomeSource.genomeSource == "history":
- --ref=$refGenomeSource.ownFile
- #else:
- --ref=$refGenomeSource.indices.value
- #end if
- --params=$singlePaired.params.settings_type
- #if $singlePaired.params.settings_type == "full":
- --skip=$singlePaired.params.skip
- --alignLimit=$singlePaired.params.alignLimit
- --trimH=$singlePaired.params.trimH
- --trimL=$singlePaired.params.trimL
- --mismatchSeed=$singlePaired.params.mismatchSeed
- --mismatchQual=$singlePaired.params.mismatchQual
- --seedLen=$singlePaired.params.seedLen
- --rounding=$singlePaired.params.rounding
- --maqSoapAlign=$singlePaired.params.maqSoapAlign
- --tryHard=$singlePaired.params.tryHard
- --valAlign=$singlePaired.params.valAlign
- --allValAligns=$singlePaired.params.allValAligns
- --suppressAlign=$singlePaired.params.suppressAlign
- --offrate=$singlePaired.params.offrate
- --seed=$singlePaired.params.seed
- --best=$singlePaired.params.bestOption.best
- #if $singlePaired.params.bestOption.best == "doBest":
- --maxBacktracks=$singlePaired.params.bestOption.maxBacktracks
- --strata=$singlePaired.params.bestOption.strata
- #else:
- --maxBacktracks="None"
- --strata="None"
- #end if
- #if $singlePaired.sPaired == "single":
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- #else:
- --minInsert=$singlePaired.params.minInsert
- --maxInsert=$singlePaired.params.maxInsert
- --mateOrient=$singlePaired.params.mateOrient
- --maxAlignAttempt=$singlePaired.params.maxAlignAttempt
- --forwardAlign=$singlePaired.params.forwardAlign
- --reverseAlign=$singlePaired.params.reverseAlign
- #end if
- #else
- --skip="None"
- --alignLimit="None"
- --trimH="None"
- --trimL="None"
- --mismatchSeed="None"
- --mismatchQual="None"
- --seedLen="None"
- --rounding="None"
- --maqSoapAlign="None"
- --tryHard="None"
- --valAlign="None"
- --allValAligns="None"
- --suppressAlign="None"
- --best="None"
- --maxBacktracks="None"
- --strata="None"
- --minInsert="None"
- --maxInsert="None"
- --mateOrient="None"
- --maxAlignAttempt="None"
- --forwardAlign="None"
- --reverseAlign="None"
- --offrate="None"
- --seed="None"
- #end if
- #if $refGenomeSource.genomeSource == "history":
- --dbkey=$dbkey
- #else:
- --dbkey="None"
- #end if
- #if $refGenomeSource.genomeSource == "history":
- --indexSettings=$refGenomeSource.indexParams.index_settings
- #else:
- --indexSettings="None"
- #end if
- #if $refGenomeSource.genomeSource == "history" and $refGenomeSource.indexParams.index_settings == "index_full":
- --iauto_b=$refGenomeSource.indexParams.auto_behavior.auto_b
- #if $refGenomeSource.indexParams.auto_behavior.auto_b == "set":
- --ipacked=$refGenomeSource.indexParams.auto_behavior.packed
- --ibmax=$refGenomeSource.indexParams.auto_behavior.bmax
- --ibmaxdivn=$refGenomeSource.indexParams.auto_behavior.bmaxdivn
- --idcv=$refGenomeSource.indexParams.auto_behavior.dcv
- #else:
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- #end if
- --inodc=$refGenomeSource.indexParams.nodc
- --inoref=$refGenomeSource.indexParams.noref
- --ioffrate=$refGenomeSource.indexParams.offrate
- --iftab=$refGenomeSource.indexParams.ftab
- --intoa=$refGenomeSource.indexParams.ntoa
- --iendian=$refGenomeSource.indexParams.endian
- --iseed=$refGenomeSource.indexParams.seed
- --icutoff=$refGenomeSource.indexParams.cutoff
- #else:
- --iauto_b="None"
- --ipacked="None"
- --ibmax="None"
- --ibmaxdivn="None"
- --idcv="None"
- --inodc="None"
- --inoref="None"
- --ioffrate="None"
- --iftab="None"
- --intoa="None"
- --iendian="None"
- --iseed="None"
- --icutoff="None"
- #end if
- --suppressHeader=$suppressHeader
+ bowtie_wrapper.py --threads="4" --output=$output --suppressHeader=$suppressHeader --dataType=$solidOrSolexa.dataType
+#if $solidOrSolexa.dataType == "solid":
+ --genomeSource=$solidOrSolexa.cRefGenomeSource.cGenomeSource
+ #if $solidOrSolexa.cRefGenomeSource.cGenomeSource == "cIndexed":
+ --ref=$solidOrSolexa.cRefGenomeSource.cIndex.value
+ --dbkey="None"
+ --indexSettings="None"
+ --iauto_b="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #else:
+ --ref=$solidOrSolexa.cRefGenomeSource.cOwnFile
+ --dbkey=$dbkey
+ --indexSettings=$solidOrSolexa.cRefGenomeSource.cIndexParams.cIndexSettings
+ #if $solidOrSolexa.cRefGenomeSource.cIndexParams.cIndexSettings == "cIndexFull":
+ --iauto_b=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cAutoB == "cSet"
+ #if $solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cAutoB == "cSet":
+ --ipacked=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cPacked
+ --ibmax=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cBmax
+ --ibmaxdivn=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cBmaxdivn
+ --idcv=$solidOrSolexa.cRefGenomeSource.cIndexParams.cAutoBehavior.cDcv
+ #else:
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ #end if
+ --inodc=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNodc
+ --inoref=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNoref
+ --ioffrate=$solidOrSolexa.cRefGenomeSource.cIndexParams.cOffrate
+ --iftab=$solidOrSolexa.cRefGenomeSource.cIndexParams.cFtab
+ --intoa=$solidOrSolexa.cRefGenomeSource.cIndexParams.cNtoa
+ --iendian=$solidOrSolexa.cRefGenomeSource.cIndexParams.cEndian
+ --iseed=$solidOrSolexa.cRefGenomeSource.cIndexParams.cSeed
+ --icutoff=$solidOrSolexa.cRefGenomeSource.cIndexParams.cCutoff
+ #else:
+ --iauto_b="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ #end if
+ --paired=$solidOrSolexa.cSinglePaired.cSPaired
+ #if $solidOrSolexa.cSinglePaired.cSPaired == "cSingle":
+ --input1=$solidOrSolexa.cSinglePaired.csInput1
+ --input2="None"
+ --params=$solidOrSolexa.cSinglePaired.csParams.csSettingsType
+ #if $solidOrSolexa.cSinglePaired.csParams.csSettingsType == "csFull":
+ --skip=$solidOrSolexa.cSinglePaired.csParams.csSkip
+ --alignLimit=$solidOrSolexa.cSinglePaired.csParams.csAlignLimit
+ --trimH=$solidOrSolexa.cSinglePaired.csParams.csTrimH
+ --trimL=$solidOrSolexa.cSinglePaired.csParams.csTrimL
+ --mismatchSeed=$solidOrSolexa.cSinglePaired.csParams.csMismatchSeed
+ --mismatchQual=$solidOrSolexa.cSinglePaired.csParams.csMismatchQual
+ --seedLen=$solidOrSolexa.cSinglePaired.csParams.csSeedLen
+ --rounding=$solidOrSolexa.cSinglePaired.csParams.csRounding
+ --maqSoapAlign=$solidOrSolexa.cSinglePaired.csParams.csMaqSoapAlign
+ --tryHard=$solidOrSolexa.cSinglePaired.csParams.csTryHard
+ --valAlign=$solidOrSolexa.cSinglePaired.csParams.csValAlign
+ --allValAligns=$solidOrSolexa.cSinglePaired.csParams.csAllValAligns
+ --suppressAlign=$solidOrSolexa.cSinglePaired.csParams.csSuppressAlign
+ --best=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csBest
+ #if $solidOrSolexa.cSinglePaired.csParams.csBestOption.csBest == "csDoBest":
+ --maxBacktracks=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csdMaxBacktracks
+ --strata=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csdStrata
+ #else:
+ --maxBacktracks=$solidOrSolexa.cSinglePaired.csParams.csBestOption.csnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$solidOrSolexa.cSinglePaired.csParams.csOffrate
+ --seed=$solidOrSolexa.cSinglePaired.csParams.csSeed
+ --snpphred=$solidOrSolexa.cSinglePaired.csParams.csSnpphred
+ --snpfrac=$solidOrSolexa.cSinglePaired.csParams.csSnpfrac
+ --keepends=$solidOrSolexa.cSinglePaired.csParams.csKeepends
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #end if
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #else:
+ --input1=$solidOrSolexa.cSinglePaired.cpInput1
+ --input2=$solidOrSolexa.cSinglePaired.cpInput2
+ --params=$solidOrSolexa.cSinglePaired.cpParams.cpSettingsType
+ #if $solidOrSolexa.cSinglePaired.cpParams.cpSettingsType == "cpFull":
+ --skip=$solidOrSolexa.cSinglePaired.cpParams.cpSkip
+ --alignLimit=$solidOrSolexa.cSinglePaired.cpParams.cpAlignLimit
+ --trimH=$solidOrSolexa.cSinglePaired.cpParams.cpTrimH
+ --trimL=$solidOrSolexa.cSinglePaired.cpParams.cpTrimL
+ --mismatchSeed=$solidOrSolexa.cSinglePaired.cpParams.cpMismatchSeed
+ --mismatchQual=$solidOrSolexa.cSinglePaired.cpParams.cpMismatchQual
+ --seedLen=$solidOrSolexa.cSinglePaired.cpParams.cpSeedLen
+ --rounding=$solidOrSolexa.cSinglePaired.cpParams.cpRounding
+ --maqSoapAlign=$solidOrSolexa.cSinglePaired.cpParams.cpMaqSoapAlign
+ --minInsert=$solidOrSolexa.cSinglePaired.cpParams.cpMinInsert
+ --maxInsert=$solidOrSolexa.cSinglePaired.cpParams.cpMaxInsert
+ --mateOrient=$solidOrSolexa.cSinglePaired.cpParams.cpMateOrient
+ --maxAlignAttempt=$solidOrSolexa.cSinglePaired.cpParams.cpMaxAlignAttempt
+ --forwardAlign=$solidOrSolexa.cSinglePaired.cpParams.cpForwardAlign
+ --reverseAlign=$solidOrSolexa.cSinglePaired.cpParams.cpReverseAlign
+ --tryHard=$solidOrSolexa.cSinglePaired.cpParams.cpTryHard
+ --valAlign=$solidOrSolexa.cSinglePaired.cpParams.cpValAlign
+ --allValAligns=$solidOrSolexa.cSinglePaired.cpParams.cpAllValAligns
+ --suppressAlign=$solidOrSolexa.cSinglePaired.cpParams.cpSuppressAlign
+ --best=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpBest
+ #if $solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpBest == "cpDoBest":
+ --maxBacktracks=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpdMaxBacktracks
+ --strata=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpdStrata
+ #else:
+ --maxBacktracks=$solidOrSolexa.cSinglePaired.cpParams.cpBestOption.cpnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$solidOrSolexa.cSinglePaired.cpParams.cpOffrate
+ --seed=$solidOrSolexa.cSinglePaired.cpParams.cpSeed
+ --snpphred=$solidOrSolexa.cSinglePaired.cpParams.cpSnpphred
+ --snpfrac=$solidOrSolexa.cSinglePaired.cpParams.cpSnpfrac
+ --keepends=$solidOrSolexa.cSinglePaired.cpParams.cpKeepends
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #end if
+ #end if
+#else:
+ --genomeSource=$solidOrSolexa.xRefGenomeSource.xGenomeSource
+ #if $solidOrSolexa.xRefGenomeSource.xGenomeSource == "xIndexed":
+ --ref=$solidOrSolexa.xRefGenomeSource.xIndex.value
+ --dbkey="None"
+ --indexSettings="None"
+ --iauto_b="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #else:
+ --ref=$solidOrSolexa.xRefGenomeSource.xOwnFile
+ --dbkey=$dbkey
+ --indexSettings=$solidOrSolexa.xRefGenomeSource.xIndexParams.xIndexSettings
+ #if $solidOrSolexa.xRefGenomeSource.xIndexParams.xIndexSettings == "xIndexFull":
+ --iauto_b=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xAutoB == "xSet"
+ #if $solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xAutoB == "xSet":
+ --ipacked=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xPacked
+ --ibmax=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xBmax
+ --ibmaxdivn=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xBmaxdivn
+ --idcv=$solidOrSolexa.xRefGenomeSource.xIndexParams.xAutoBehavior.xDcv
+ #else:
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ #end if
+ --inodc=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNodc
+ --inoref=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNoref
+ --ioffrate=$solidOrSolexa.xRefGenomeSource.xIndexParams.xOffrate
+ --iftab=$solidOrSolexa.xRefGenomeSource.xIndexParams.xFtab
+ --intoa=$solidOrSolexa.xRefGenomeSource.xIndexParams.xNtoa
+ --iendian=$solidOrSolexa.xRefGenomeSource.xIndexParams.xEndian
+ --iseed=$solidOrSolexa.xRefGenomeSource.xIndexParams.xSeed
+ --icutoff=$solidOrSolexa.xRefGenomeSource.xIndexParams.xCutoff
+ #else:
+ --iauto_b="None"
+ --ipacked="None"
+ --ibmax="None"
+ --ibmaxdivn="None"
+ --idcv="None"
+ --inodc="None"
+ --inoref="None"
+ --ioffrate="None"
+ --iftab="None"
+ --intoa="None"
+ --iendian="None"
+ --iseed="None"
+ --icutoff="None"
+ #end if
+ #end if
+ --paired=$solidOrSolexa.xSinglePaired.xSPaired
+ #if $solidOrSolexa.xSinglePaired.xSPaired == "xSingle":
+ --input1=$solidOrSolexa.xSinglePaired.xsInput1
+ --input2="None"
+ --params=$solidOrSolexa.xSinglePaired.xsParams.xsSettingsType
+ #if $solidOrSolexa.xSinglePaired.xsParams.xsSettingsType == "xsFull":
+ --skip=$solidOrSolexa.xSinglePaired.xsParams.xsSkip
+ --alignLimit=$solidOrSolexa.xSinglePaired.xsParams.xsAlignLimit
+ --trimH=$solidOrSolexa.xSinglePaired.xsParams.xsTrimH
+ --trimL=$solidOrSolexa.xSinglePaired.xsParams.xsTrimL
+ --mismatchSeed=$solidOrSolexa.xSinglePaired.xsParams.xsMismatchSeed
+ --mismatchQual=$solidOrSolexa.xSinglePaired.xsParams.xsMismatchQual
+ --seedLen=$solidOrSolexa.xSinglePaired.xsParams.xsSeedLen
+ --rounding=$solidOrSolexa.xSinglePaired.xsParams.xsRounding
+ --maqSoapAlign=$solidOrSolexa.xSinglePaired.xsParams.xsMaqSoapAlign
+ --tryHard=$solidOrSolexa.xSinglePaired.xsParams.xsTryHard
+ --valAlign=$solidOrSolexa.xSinglePaired.xsParams.xsValAlign
+ --allValAligns=$solidOrSolexa.xSinglePaired.xsParams.xsAllValAligns
+ --suppressAlign=$solidOrSolexa.xSinglePaired.xsParams.xsSuppressAlign
+ --best=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsBest
+ #if $solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsBest == "xsDoBest":
+ --maxBacktracks=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsdMaxBacktracks
+ --strata=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsdStrata
+ #else:
+ --maxBacktracks=$solidOrSolexa.xSinglePaired.xsParams.xsBestOption.xsnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$solidOrSolexa.xSinglePaired.xsParams.xsOffrate
+ --seed=$solidOrSolexa.xSinglePaired.xsParams.xsSeed
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ #end if
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #else:
+ --input1=$solidOrSolexa.xSinglePaired.xpInput1
+ --input2=$solidOrSolexa.xSinglePaired.xpInput2
+ --params=$solidOrSolexa.xSinglePaired.xpParams.xpSettingsType
+ #if $solidOrSolexa.xSinglePaired.xpParams.xpSettingsType == "xpFull":
+ --skip=$solidOrSolexa.xSinglePaired.xpParams.xpSkip
+ --alignLimit=$solidOrSolexa.xSinglePaired.xpParams.xpAlignLimit
+ --trimH=$solidOrSolexa.xSinglePaired.xpParams.xpTrimH
+ --trimL=$solidOrSolexa.xSinglePaired.xpParams.xpTrimL
+ --mismatchSeed=$solidOrSolexa.xSinglePaired.xpParams.xpMismatchSeed
+ --mismatchQual=$solidOrSolexa.xSinglePaired.xpParams.xpMismatchQual
+ --seedLen=$solidOrSolexa.xSinglePaired.xpParams.xpSeedLen
+ --rounding=$solidOrSolexa.xSinglePaired.xpParams.xpRounding
+ --maqSoapAlign=$solidOrSolexa.xSinglePaired.xpParams.xpMaqSoapAlign
+ --minInsert=$solidOrSolexa.xSinglePaired.xpParams.xpMinInsert
+ --maxInsert=$solidOrSolexa.xSinglePaired.xpParams.xpMaxInsert
+ --mateOrient=$solidOrSolexa.xSinglePaired.xpParams.xpMateOrient
+ --maxAlignAttempt=$solidOrSolexa.xSinglePaired.xpParams.xpMaxAlignAttempt
+ --forwardAlign=$solidOrSolexa.xSinglePaired.xpParams.xpForwardAlign
+ --reverseAlign=$solidOrSolexa.xSinglePaired.xpParams.xpReverseAlign
+ --tryHard=$solidOrSolexa.xSinglePaired.xpParams.xpTryHard
+ --valAlign=$solidOrSolexa.xSinglePaired.xpParams.xpValAlign
+ --allValAligns=$solidOrSolexa.xSinglePaired.xpParams.xpAllValAligns
+ --suppressAlign=$solidOrSolexa.xSinglePaired.xpParams.xpSuppressAlign
+ --best=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpBest
+ #if $solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpBest == "xpDoBest":
+ --maxBacktracks=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpdMaxBacktracks
+ --strata=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpdStrata
+ #else:
+ --maxBacktracks=$solidOrSolexa.xSinglePaired.xpParams.xpBestOption.xpnMaxBacktracks
+ --strata="None"
+ #end if
+ --offrate=$solidOrSolexa.xSinglePaired.xpParams.xpOffrate
+ --seed=$solidOrSolexa.xSinglePaired.xpParams.xpSeed
+ #else:
+ --skip="None"
+ --alignLimit="None"
+ --trimH="None"
+ --trimL="None"
+ --mismatchSeed="None"
+ --mismatchQual="None"
+ --seedLen="None"
+ --rounding="None"
+ --maqSoapAlign="None"
+ --tryHard="None"
+ --valAlign="None"
+ --allValAligns="None"
+ --suppressAlign="None"
+ --best="None"
+ --maxBacktracks="None"
+ --strata="None"
+ --offrate="None"
+ --seed="None"
+ --minInsert="None"
+ --maxInsert="None"
+ --mateOrient="None"
+ --maxAlignAttempt="None"
+ --forwardAlign="None"
+ --reverseAlign="None"
+ #end if
+ --snpphred="None"
+ --snpfrac="None"
+ --keepends="None"
+ #end if
+#end if
</command>
<inputs>
- <conditional name="refGenomeSource">
- <param name="genomeSource" 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">
- <option value="indexed">Use a built-in index</option>
- <option value="history">Use one from the history</option>
+ <conditional name="solidOrSolexa">
+ <param name="dataType" type="select" label="Is your data SOLiD or Solexa?">
+ <option value="solid">SOLiD</option>
+ <option value="solexa">Solexa</option>
</param>
- <when value="indexed">
- <param name="indices" type="select" label="Select a reference genome" help="if your genome of interest is not listed - contact Galaxy team">
- <options from_file="bowtie_indices.loc">
- <column name="value" index="1" />
- <column name="name" index="0" />
- </options>
- </param>
- </when>
- <when value="history">
- <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
- <conditional name="indexParams">
- <param name="index_settings" type="select" label="Choose whether to use default options for building indices or to set your own">
- <option value="index_pre_set">Default</option>
- <option value="index_full">Set your own</option>
- </param>
- <when value="index_pre_set" />
- <when value="index_full">
- <conditional name="auto_behavior">
- <param name="auto_b" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
- <option value="auto">Automatic behavior</option>
- <option value="set">Set values (sets --noauto and allows others to be set)</option>
- </param>
- <when value="auto" />
- <when value="set">
- <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
- <option value="unpacked">Use regular representation</option>
- <option value="packed">Use packed representation</option>
+ <when value="solid">
+ <conditional name="cRefGenomeSource">
+ <param name="cGenomeSource" 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">
+ <option value="cIndexed">Use a built-in index</option>
+ <option value="cHistory">Use one from the history</option>
+ </param>
+ <when value="cIndexed">
+ <param name="cIndex" type="select" label="Select the reference genome" help="if your genome of interest is not listed - contact Galaxy team">
+ <options from_file="bowtie_indices_color.loc">
+ <column name="value" index="1" />
+ <column name="name" index="0" />
+ </options>
+ </param>
+ </when>
+ <when value="cHistory">
+ <param name="cOwnFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
+ <conditional name="cIndexParams">
+ <param name="cIndexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
+ <option value="cIndexPreSet">Default</option>
+ <option value="cIndexFull">Set your own</option>
+ </param>
+ <when value="cIndexPreSet" />
+ <when value="cIndexFull">
+ <conditional name="cAutoBehavior">
+ <param name="cAutoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
+ <option value="cAuto">Automatic behavior</option>
+ <option value="cSet">Set values (sets --noauto and allows others to be set)</option>
+ </param>
+ <when value="cAuto" />
+ <when value="cSet">
+ <param name="cPacked" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
+ <option value="unpacked">Use regular representation</option>
+ <option value="packed">Use packed representation</option>
+ </param>
+ <param name="cBmax" type="integer" value="-1" label="Maximum number of suffixes allowed in a block (--bmax)" help="-1 for not specified. Must be at least 1" />
+ <param name="cBmaxdivn" type="integer" value="4" label="Maximum number of suffixes allowed in a block as a fraction of the length of the reference (--bmaxdivn)" />
+ <param name="cDcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
+ </when>
+ </conditional>
+ <param name="cNodc" type="select" label="Whether or not to disable the use of the difference-cover sample (--nodc)" help="Suffix sorting becomes quadratic-time in the worst case (a very repetitive reference)">
+ <option value="dc">Use difference-cover sample</option>
+ <option value="nodc">Disable difference-cover sample</option>
</param>
- <param name="bmax" type="integer" value="-1" label="Maximum number of suffixes allowed in a block (--bmax)" help="-1 for not specified. Must be at least 1" />
- <param name="bmaxdivn" type="integer" value="4" label="Maximum number of suffixes allowed in a block as a fraction of the length of the reference (--bmaxdivn)" />
- <param name="dcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
- </when>
- </conditional>
- <param name="nodc" type="select" label="Whether or not to disable the use of the difference-cover sample (--nodc)" help="Suffix sorting becomes quadratic-time in the worst case (a very repetitive reference)">
- <option value="dc">Use difference-cover sample</option>
- <option value="nodc">Disable difference-cover sample</option>
- </param>
- <param name="noref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
- <option value="ref">Build all index files</option>
- <option value="noref">Do not build paired-end alignment index files</option>
- </param>
- <param name="offrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" />
- <param name="ftab" type="integer" value="10" label="The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query (-t)" help="ftab is 4^(n+1) bytes" />
- <param name="ntoa" type="select" label="Whether or not to convert Ns in the reference sequence to As (--ntoa)">
- <option value="no">Do not convert Ns</option>
- <option value="yes">Convert Ns to As</option>
- </param>
- <param name="endian" type="select" label="Endianness to use when serializing integers to the index file (--big/--little)" help="Little is most appropriate for Intel- and AMD-based architecture">
- <option value="little">Little</option>
- <option value="big">Big</option>
- </param>
- <param name="seed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
- <param name="cutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" />
- </when> <!-- index_full -->
- </conditional>
- </when>
- </conditional> <!-- refGenomeSource -->
- <conditional name="singlePaired">
- <param name="sPaired" type="select" label="Is this library mate-paired?">
- <option value="single">Single-end</option>
- <option value="paired">Paired-end</option>
- </param>
- <when value="single">
- <param name="input1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="params">
- <param name="settings_type" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
- <option value="pre_set">Commonly used</option>
- <option value="full">Full parameter list</option>
- </param>
- <when value="pre_set" />
- <when value="full">
- <param name="skip" type="integer" value="0" label="Skip the first n reads (-s)" />
- <param name="alignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />
- <param name="trimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="trimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="mismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="mismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="seedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="rounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
- <option value="round">Round to nearest 10</option>
- <option value="noRound">Do not round to nearest 10</option>
- </param>
- <param name="maqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="tryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
- <option value="noTryHard">Do not try hard</option>
- <option value="doTryHard">Try hard</option>
- </param>
- <param name="valAlign" type="integer" value="1" label="Report up to n valid arguments per read (-k)" />
- <param name="allValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)">
- <option value="noAllValAligns">Do not report all valid alignments</option>
- <option value="doAllValAligns">Report all valid alignments</option>
- </param>
- <param name="suppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="bestOption">
- <param name="best" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
- <option value="noBest">Do not use best</option>
- <option value="doBest">Use best</option>
- </param>
- <when value="noBest">
- <param name="maxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="doBest">
- <param name="maxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="strata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
- <option value="noStrata">Do not use strata option</option>
- <option value="doStrata">Use strata option</option>
+ <param name="cNoref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
+ <option value="ref">Build all index files</option>
+ <option value="noref">Do not build paired-end alignment index files</option>
</param>
- </when>
- </conditional> <!-- bestOption -->
- <param name="offrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="seed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- </when> <!-- full -->
- </conditional> <!-- params -->
- </when> <!-- single -->
- <when value="paired">
- <param name="input1" type="data" format="fastqsanger" label="Forward FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <param name="input2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
- <conditional name="params">
- <param name="settings_type" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
- <option value="pre_set">Commonly used</option>
- <option value="full">Full parameter list</option>
- </param>
- <when value="pre_set" />
- <when value="full">
- <param name="skip" type="integer" value="0" label="Skip the first n pairs (-s)" />
- <param name="alignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />
- <param name="trimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
- <param name="trimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
- <param name="mismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
- <param name="mismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
- <param name="seedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
- <param name="rounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
- <option value="round">Round to nearest 10</option>
- <option value="noRound">Do not round to nearest 10</option>
- </param>
- <param name="maqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
- <param name="minInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
- <param name="maxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
- <param name="mateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
- <option value="fr">FR (for Illumina)</option>
- <option value="rf">RF</option>
- <option value="ff">FF</option>
- </param>
- <param name="maxAlignAttempt" type="integer" value="100" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" />
- <param name="forwardAlign" type="select" label="Choose whether or not to attempt to align the forward reference strand (--nofw)">
- <option value="forward">Align against the forward reference strand</option>
- <option value="noForward">Do not align against the forward reference strand</option>
- </param>
- <param name="reverseAlign" type="select" label="Choose whether or not to align against the reverse-complement reference strand (--norc)">
- <option value="reverse">Align against the reverse-complement reference strand</option>
- <option value="noReverse">Do not align against the reverse-complement reference strand</option>
- </param>
- <param name="tryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
- <option value="noTryHard">Do not try hard</option>
- <option value="doTryHard">Try hard</option>
- </param>
- <param name="valAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
- <param name="allValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)">
- <option value="noAllValAligns">Do not report all valid alignments</option>
- <option value="doAllValAligns">Report all valid alignments</option>
- </param>
- <param name="suppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
- <conditional name="bestOption">
- <param name="best" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
- <option value="noBest">Do not use best</option>
- <option value="doBest">Use best</option>
- </param>
- <when value="noBest">
- <param name="maxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- </when>
- <when value="doBest">
- <param name="maxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
- <param name="strata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
- <option value="noStrata">Do not use strata option</option>
- <option value="doStrata">Use strata option</option>
+ <param name="cOffrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" />
+ <param name="cFtab" type="integer" value="10" label="The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query (-t)" help="ftab is 4^(n+1) bytes" />
+ <param name="cNtoa" type="select" label="Whether or not to convert Ns in the reference sequence to As (--ntoa)">
+ <option value="no">Do not convert Ns</option>
+ <option value="yes">Convert Ns to As</option>
</param>
- </when>
- </conditional>
- <param name="offrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
- <param name="seed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
- </when> <!-- full -->
- </conditional> <!-- params -->
- </when> <!-- paired -->
- </conditional> <!-- singlePaired -->
+ <param name="cEndian" type="select" label="Endianness to use when serializing integers to the index file (--big/--little)" help="Little is most appropriate for Intel- and AMD-based architecture">
+ <option value="little">Little</option>
+ <option value="big">Big</option>
+ </param>
+ <param name="cSeed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
+ <param name="cCutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" />
+ </when> <!-- cIndexFull -->
+ </conditional> <!-- cIndexParams -->
+ </when> <!-- cHistory -->
+ </conditional> <!-- cRefGenomeSource -->
+ <conditional name="cSinglePaired">
+ <param name="cSPaired" type="select" label="Is this library mate-paired?">
+ <option value="cSingle">Single-end</option>
+ <option value="cPaired">Paired-end</option>
+ </param>
+ <when value="cSingle">
+ <param name="csInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="csParams">
+ <param name="csSettingsType" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
+ <option value="csPreSet">Commonly used</option>
+ <option value="csFull">Full parameter list</option>
+ </param>
+ <when value="csPreSet" />
+ <when value="csFull">
+ <param name="csSkip" type="integer" value="0" label="Skip the first n reads (-s)" />
+ <param name="csAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />
+ <param name="csTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
+ <param name="csTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
+ <param name="csMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
+ <param name="csMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
+ <param name="csSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
+ <param name="csRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
+ <option value="round">Round to nearest 10</option>
+ <option value="noRound">Do not round to nearest 10</option>
+ </param>
+ <param name="csMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
+ <param name="csTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
+ <option value="noTryHard">Do not try hard</option>
+ <option value="doTryHard">Try hard</option>
+ </param>
+ <param name="csValAlign" type="integer" value="1" label="Report up to n valid arguments per read (-k)" />
+ <param name="csAllValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)">
+ <option value="noAllValAligns">Do not report all valid alignments</option>
+ <option value="doAllValAligns">Report all valid alignments</option>
+ </param>
+ <param name="csSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
+ <conditional name="csBestOption">
+ <param name="csBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
+ <option value="csNoBest">Do not use best</option>
+ <option value="csDoBest">Use best</option>
+ </param>
+ <when value="csNoBest">
+ <param name="csnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ </when>
+ <when value="csDoBest">
+ <param name="csdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ <param name="csdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
+ <option value="noStrata">Do not use strata option</option>
+ <option value="doStrata">Use strata option</option>
+ </param>
+ </when>
+ </conditional> <!-- csBestOption -->
+ <param name="csOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
+ <param name="csSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
+ <param name="csSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
+ <param name="csSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
+ <param name="csKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
+ <option value="doKeepends">Keep ends</option>
+ <option value="noKeepends">Trim ends</option>
+ </param>
+ </when> <!-- csFull -->
+ </conditional> <!-- csParams -->
+ </when> <!-- cSingle -->
+ <when value="cPaired">
+ <param name="cpInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <param name="cpInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="cpParams">
+ <param name="cpSettingsType" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
+ <option value="cpPreSet">Commonly used</option>
+ <option value="cpFull">Full parameter list</option>
+ </param>
+ <when value="cpPreSet" />
+ <when value="cpFull">
+ <param name="cpSkip" type="integer" value="0" label="Skip the first n pairs (-s)" />
+ <param name="cpAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />
+ <param name="cpTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
+ <param name="cpTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
+ <param name="cpMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
+ <param name="cpMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
+ <param name="cpSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
+ <param name="cpRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
+ <option value="round">Round to nearest 10</option>
+ <option value="noRound">Do not round to nearest 10</option>
+ </param>
+ <param name="cpMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
+ <param name="cpMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
+ <param name="cpMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
+ <param name="cpMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
+ <option value="fr">FR (for Illumina)</option>
+ <option value="rf">RF</option>
+ <option value="ff">FF</option>
+ </param>
+ <param name="cpMaxAlignAttempt" type="integer" value="100" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" />
+ <param name="cpForwardAlign" type="select" label="Choose whether or not to attempt to align the forward reference strand (--nofw)">
+ <option value="forward">Align against the forward reference strand</option>
+ <option value="noForward">Do not align against the forward reference strand</option>
+ </param>
+ <param name="cpReverseAlign" type="select" label="Choose whether or not to align against the reverse-complement reference strand (--norc)">
+ <option value="reverse">Align against the reverse-complement reference strand</option>
+ <option value="noReverse">Do not align against the reverse-complement reference strand</option>
+ </param>
+ <param name="cpTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
+ <option value="noTryHard">Do not try hard</option>
+ <option value="doTryHard">Try hard</option>
+ </param>
+ <param name="cpValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
+ <param name="cpAllValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)">
+ <option value="noAllValAligns">Do not report all valid alignments</option>
+ <option value="doAllValAligns">Report all valid alignments</option>
+ </param>
+ <param name="cpSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
+ <conditional name="cpBestOption">
+ <param name="cpBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
+ <option value="cpNoBest">Do not use best</option>
+ <option value="cpDoBest">Use best</option>
+ </param>
+ <when value="cpNoBest">
+ <param name="cpnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ </when>
+ <when value="cpDoBest">
+ <param name="cpdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ <param name="cpdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
+ <option value="noStrata">Do not use strata option</option>
+ <option value="doStrata">Use strata option</option>
+ </param>
+ </when>
+ </conditional> <!-- cpBestOption -->
+ <param name="cpOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
+ <param name="cpSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
+ <param name="cpSnpphred" type="integer" value="-1" label="SNP penalty (ratio of SNPs per base in the subject genome) (--snpphred)" help="Enter this OR Ratio of SNPs per base" />
+ <param name="cpSnpfrac" type="float" value="0.001" label="Ratio of SNPs per base (estimated ratio for colorspace alignments) (--snpfrac)" help="Enter this OR SNP penalty" />
+ <param name="cpKeepends" type="select" label="Keep the extreme-ends nucleotides and qualities rather than trimming them (--keepends)">
+ <option value="doKeepends">Keep ends</option>
+ <option value="noKeepends">Trim ends</option>
+ </param>
+ </when> <!-- cpFull -->
+ </conditional> <!-- cpParams -->
+ </when> <!-- cPaired -->
+ </conditional> <!-- cSinglePaired -->
+ </when> <!-- solid -->
+ <when value="solexa">
+ <conditional name="xRefGenomeSource">
+ <param name="xGenomeSource" 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">
+ <option value="xIndexed">Use a built-in index</option>
+ <option value="xHistory">Use one from the history</option>
+ </param>
+ <when value="xIndexed">
+ <param name="xIndex" type="select" label="Select the reference genome" help="if your genome of interest is not listed - contact Galaxy team">
+ <options from_file="bowtie_indices.loc">
+ <column name="value" index="1" />
+ <column name="name" index="0" />
+ </options>
+ </param>
+ </when>
+ <when value="xHistory">
+ <param name="xOwnFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference genome" />
+ <conditional name="xIndexParams">
+ <param name="xIndexSettings" type="select" label="Choose whether to use default options for building indices or to set your own">
+ <option value="xIndexPreSet">Default</option>
+ <option value="xIndexFull">Set your own</option>
+ </param>
+ <when value="xIndexPreSet" />
+ <when value="xIndexFull">
+ <conditional name="xAutoBehavior">
+ <param name="xAutoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
+ <option value="xAuto">Automatic behavior</option>
+ <option value="xSet">Set values (sets --noauto and allows others to be set)</option>
+ </param>
+ <when value="xAuto" />
+ <when value="xSet">
+ <param name="xPacked" type="select" label="Whether or not to use a packed representation for DNA strings (-p)">
+ <option value="unpacked">Use regular representation</option>
+ <option value="packed">Use packed representation</option>
+ </param>
+ <param name="xBmax" type="integer" value="-1" label="Maximum number of suffixes allowed in a block (--bmax)" help="-1 for not specified. Must be at least 1" />
+ <param name="xBmaxdivn" type="integer" value="4" label="Maximum number of suffixes allowed in a block as a fraction of the length of the reference (--bmaxdivn)" />
+ <param name="xDcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
+ </when>
+ </conditional>
+ <param name="xNodc" type="select" label="Whether or not to disable the use of the difference-cover sample (--nodc)" help="Suffix sorting becomes quadratic-time in the worst case (a very repetitive reference)">
+ <option value="dc">Use difference-cover sample</option>
+ <option value="nodc">Disable difference-cover sample</option>
+ </param>
+ <param name="xNoref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
+ <option value="ref">Build all index files</option>
+ <option value="noref">Do not build paired-end alignment index files</option>
+ </param>
+ <param name="xOffrate" type="integer" value="5" label="How many rows get marked during annotation of some or all of the Burrows-Wheeler rows (-o)" />
+ <param name="xFtab" type="integer" value="10" label="The size of the lookup table used to calculate an initial Burrows-Wheeler range with respect to the first n characters of the query (-t)" help="ftab is 4^(n+1) bytes" />
+ <param name="xNtoa" type="select" label="Whether or not to convert Ns in the reference sequence to As (--ntoa)">
+ <option value="no">Do not convert Ns</option>
+ <option value="yes">Convert Ns to As</option>
+ </param>
+ <param name="xEndian" type="select" label="Endianness to use when serializing integers to the index file (--big/--little)" help="Little is most appropriate for Intel- and AMD-based architecture">
+ <option value="little">Little</option>
+ <option value="big">Big</option>
+ </param>
+ <param name="xSeed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
+ <param name="xCutoff" type="integer" value="-1" label="Number of first bases of the reference sequence to index (--cutoff)" help="Use -1 to use default" />
+ </when> <!-- xIndexFull -->
+ </conditional> <!-- xIndexParams -->
+ </when> <!-- xHistory -->
+ </conditional> <!-- xRefGenomeSource -->
+ <conditional name="xSinglePaired">
+ <param name="xSPaired" type="select" label="Is this library mate-paired?">
+ <option value="xSingle">Single-end</option>
+ <option value="xPaired">Paired-end</option>
+ </param>
+ <when value="xSingle">
+ <param name="xsInput1" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="xsParams">
+ <param name="xsSettingsType" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
+ <option value="xsPreSet">Commonly used</option>
+ <option value="xsFull">Full parameter list</option>
+ </param>
+ <when value="xsPreSet" />
+ <when value="xsFull">
+ <param name="xsSkip" type="integer" value="0" label="Skip the first n reads (-s)" />
+ <param name="xsAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />
+ <param name="xsTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
+ <param name="xsTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
+ <param name="xsMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
+ <param name="xsMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
+ <param name="xsSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
+ <param name="xsRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
+ <option value="round">Round to nearest 10</option>
+ <option value="noRound">Do not round to nearest 10</option>
+ </param>
+ <param name="xsMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
+ <param name="xsTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
+ <option value="noTryHard">Do not try hard</option>
+ <option value="doTryHard">Try hard</option>
+ </param>
+ <param name="xsValAlign" type="integer" value="1" label="Report up to n valid arguments per read (-k)" />
+ <param name="xsAllValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)">
+ <option value="noAllValAligns">Do not report all valid alignments</option>
+ <option value="doAllValAligns">Report all valid alignments</option>
+ </param>
+ <param name="xsSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
+ <conditional name="xsBestOption">
+ <param name="xsBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
+ <option value="xsNoBest">Do not use best</option>
+ <option value="xsDoBest">Use best</option>
+ </param>
+ <when value="xsNoBest">
+ <param name="xsnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ </when>
+ <when value="xsDoBest">
+ <param name="xsdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ <param name="xsdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
+ <option value="noStrata">Do not use strata option</option>
+ <option value="doStrata">Use strata option</option>
+ </param>
+ </when>
+ </conditional> <!-- xsBestOption -->
+ <param name="xsOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
+ <param name="xsSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
+ </when> <!-- xsFull -->
+ </conditional> <!-- xsParams -->
+ </when> <!-- xSingle -->
+ <when value="xPaired">
+ <param name="xpInput1" type="data" format="fastqsanger" label="Forward FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <param name="xpInput2" type="data" format="fastqsanger" label="Reverse FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33"/>
+ <conditional name="xpParams">
+ <param name="xpSettingsType" type="select" label="Bowtie settings to use" help="For most mapping needs use Commonly used settings. If you want full control use Full parameter list">
+ <option value="xpPreSet">Commonly used</option>
+ <option value="xpFull">Full parameter list</option>
+ </param>
+ <when value="xpPreSet" />
+ <when value="xpFull">
+ <param name="xpSkip" type="integer" value="0" label="Skip the first n pairs (-s)" />
+ <param name="xpAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />
+ <param name="xpTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
+ <param name="xpTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
+ <param name="xpMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
+ <param name="xpMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
+ <param name="xpSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
+ <param name="xpRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
+ <option value="round">Round to nearest 10</option>
+ <option value="noRound">Do not round to nearest 10</option>
+ </param>
+ <param name="xpMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
+ <param name="xpMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
+ <param name="xpMaxInsert" type="integer" value="250" label="Maximum insert size for valid paired-end alignments (-X)" />
+ <param name="xpMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
+ <option value="fr">FR (for Illumina)</option>
+ <option value="rf">RF</option>
+ <option value="ff">FF</option>
+ </param>
+ <param name="xpMaxAlignAttempt" type="integer" value="100" label="Maximum number of attempts Bowtie will make to match an alignment for one mate with an alignment for the opposite mate (--pairtries)" />
+ <param name="xpForwardAlign" type="select" label="Choose whether or not to attempt to align the forward reference strand (--nofw)">
+ <option value="forward">Align against the forward reference strand</option>
+ <option value="noForward">Do not align against the forward reference strand</option>
+ </param>
+ <param name="xpReverseAlign" type="select" label="Choose whether or not to align against the reverse-complement reference strand (--norc)">
+ <option value="reverse">Align against the reverse-complement reference strand</option>
+ <option value="noReverse">Do not align against the reverse-complement reference strand</option>
+ </param>
+ <param name="xpTryHard" type="select" label="Whether or not to try as hard as possible to find valid alignments when they exist (-y)" help="Tryhard mode is much slower than regular mode">
+ <option value="noTryHard">Do not try hard</option>
+ <option value="doTryHard">Try hard</option>
+ </param>
+ <param name="xpValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
+ <param name="xpAllValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)">
+ <option value="noAllValAligns">Do not report all valid alignments</option>
+ <option value="doAllValAligns">Report all valid alignments</option>
+ </param>
+ <param name="xpSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
+ <conditional name="xpBestOption">
+ <param name="xpBest" type="select" label="Whether or not to make Bowtie guarantee that reported singleton alignments are 'best' in terms of stratum and in terms of the quality values at the mismatched positions (--best)" help="Removes all strand bias. Only affects which alignments are reported by Bowtie. Runs slower with best option">
+ <option value="xpNoBest">Do not use best</option>
+ <option value="xpDoBest">Use best</option>
+ </param>
+ <when value="xpNoBest">
+ <param name="xpnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ </when>
+ <when value="xpDoBest">
+ <param name="xpdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
+ <param name="xpdStrata" type="select" label="Whether or not to report only those alignments that fall in the best stratum if many valid alignments exist and are reportable (--strata)">
+ <option value="noStrata">Do not use strata option</option>
+ <option value="doStrata">Use strata option</option>
+ </param>
+ </when>
+ </conditional> <!-- xpBestOption -->
+ <param name="xpOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
+ <param name="xpSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
+ </when> <!-- xpFull -->
+ </conditional> <!-- xpParams -->
+ </when> <!-- xPaired -->
+ </conditional> <!-- xSinglePaired -->
+ </when> <!-- solexa -->
+ </conditional> <!-- solidOrSolexa -->
<param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Suppress the header in the output SAM file" help="Bowtie produces SAM with several lines of header information" />
</inputs>
<outputs>
@@ -328,83 +782,257 @@
</outputs>
<tests>
<test>
- <param name="genomeSource" value="indexed" />
- <param name="indices" value="chrM" />
- <param name="sPaired" value="single" />
- <param name="input1" ftype="fastqsanger" value="bowtie_in1.fastq" />
- <param name="settings_type" value="pre_set" />
+ <!--
+ Bowtie command:
+ bowtie -p 4 -S +sam-nohead -q -C chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out1.sam
+ -p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes.
+ chrM_color needs to be the base location/name of the index files.
+ -->
+ <param name="dataType" value="solid" />
+ <param name="cGenomeSource" value="cIndexed" />
+ <param name="cIndex" value="equCab2chrM" />
+ <param name="cSPaired" value="cSingle" />
+ <param name="csInput1" ftype="fastqsanger" value="bowtie_in1.fastqsanger" />
+ <param name="csSettingsType" value="csPreSet" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out1.sam" />
</test>
<test>
- <param name="genomeSource" value="history" />
- <param name="ownFile" value="chr_m.fasta" />
- <param name="index_settings" value="index_pre_set" />
- <param name="sPaired" value="paired" />
- <param name="input1" ftype="fastqsanger" value="bowtie_in2.fastq" />
- <param name="input2" ftype="fastqsanger" value="bowtie_in3.fastq" />
- <param name="settings_type" value="pre_set" />
+ <!--
+ Bowtie command:
+ bowtie -p 4 -S +sam-nohead -q chrM_base test-data/bowtie_in2.fastqsanger > test-data/bowtie_out2.sam
+ -p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base needs to be the base location/name of the index files.
+ -->
+ <param name="dataType" value="solexa" />
+ <param name="xGenomeSource" value="xIndexed" />
+ <param name="xIndex" value="equCab2chrM" />
+ <param name="xSPaired" value="xSingle" />
+ <param name="xsInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
+ <param name="xsSettingsType" value="xsPreSet" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out2.sam" />
</test>
<test>
- <param name="genomeSource" value="history" />
- <param name="ownFile" value="chr_m.fasta" />
- <param name="index_settings" value="index_full" />
- <param name="auto_b" value="set" />
- <param name="packed" value="unpacked" />
- <param name="bmax" value="-1" />
- <param name="bmaxdivn" value="4" />
- <param name="dcv" value="2048" />
- <param name="nodc" value="dc" />
- <param name="noref" value="noref" />
- <param name="offrate" value="6" />
- <param name="ftab" value="10" />
- <param name="ntoa" value="yes" />
- <param name="endian" value="little" />
- <param name="seed" value="-1" />
- <param name="cutoff" value="-1" />
- <param name="sPaired" value="single" />
- <param name="input1" ftype="fastqsanger" value="bowtie_in1.fastq" />
- <param name="settings_type" value="pre_set" />
- <param name="suppressHeader" value="true" />
- <output name="output" ftype="sam" file="bowtie_out1.sam" />
- </test>
- <test>
- <param name="genomeSource" value="indexed" />
- <param name="indices" value="chrM" />
- <param name="sPaired" value="paired" />
- <param name="input1" ftype="fastqsanger" value="bowtie_in2.fastq" />
- <param name="input2" ftype="fastqsanger" value="bowtie_in3.fastq" />
- <param name="settings_type" value="full" />
- <param name="skip" value="0" />
- <param name="alignLimit" value="-1" />
- <param name="trimL" value="0" />
- <param name="trimH" value="0" />
- <param name="mismatchSeed" value="3" />
- <param name="mismatchQual" value="50" />
- <param name="seedLen" value="10" />
- <param name="rounding" value="round" />
- <param name="maqSoapAlign" value="-1" />
- <param name="minInsert" value="0" />
- <param name="maxInsert" value="250" />
- <param name="mateOrient" value="fr" />
- <param name="maxAlignAttempt" value="100" />
- <param name="forwardAlign" value="forward" />
- <param name="reverseAlign" value="reverse" />
- <param name="tryHard" value="doTryHard" />
- <param name="valAlign" value="1" />
- <param name="allValAligns" value="noAllValAligns" />
- <param name="suppressAlign" value="-1" />
- <param name="best" value="doBest" />
- <param name="maxBacktracks" value="800" />
- <param name="strata" value="noStrata" />
- <param name="offrate" value="-1" />
- <param name="seed" value="403" />
+ <!--
+ Bowtie command:
+ bowtie-build -f -C test-data/chr_m.fasta chrM_color
+ bowtie -n 2 -e 70 -l 28 -X 250 +fr +pairtries 100 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out3.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="dataType" value="solid" />
+ <param name="cGenomeSource" value="cHistory" />
+ <param name="cOwnFile" value="chr_m.fasta" />
+ <param name="cIndexSettings" value="cIndexPreSet" />
+ <param name="cSPaired" value="cPaired" />
+ <param name="cpInput1" ftype="fastqsanger" value="bowtie_in3.fastqsanger" />
+ <param name="cpInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
+ <param name="cpSettingsType" value="cpFull" />
+ <param name="cpSkip" value="0" />
+ <param name="cpAlignLimit" value="-1" />
+ <param name="cpTrimH" value="0" />
+ <param name="cpTrimL" value="0" />
+ <param name="cpMismatchSeed" value="2" />
+ <param name="cpMismatchQual" value="70" />
+ <param name="cpSeedLen" value="28" />
+ <param name="cpRounding" value="round" />
+ <param name="cpMaqSoapAlign" value="-1" />
+ <param name="cpMinInsert" value="0" />
+ <param name="cpMaxInsert" value="250" />
+ <param name="cpMateOrient" value="fr" />
+ <param name="cpMaxAlignAttempt" value="100" />
+ <param name="cpForwardAlign" value="forward" />
+ <param name="cpReverseAlign" value="reverse" />
+ <param name="cpTryHard" value="noTryHard" />
+ <param name="cpValAlign" value="1" />
+ <param name="cpAllValAligns" value="noAllValAligns" />
+ <param name="cpSuppressAlign" value="-1" />
+ <param name="cpBest" value="cpNoBest" />
+ <param name="cpnMaxBacktracks" value="125" />
+ <param name="cpOffrate" value="-1" />
+ <param name="cpSeed" value="-1" />
+ <param name="cpSnpphred" value="-1" />
+ <param name="cpSnpfrac" value="0.001" />
+ <param name="cpKeepends" value="doKeepends" />
<param name="suppressHeader" value="true" />
<output name="output" ftype="sam" file="bowtie_out3.sam" />
</test>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie-build -f test-data/chr_m.fasta chrM_base
+ bowtie -n 2 -e 70 -l 28 -X 250 +fr +pairtries 100 +maxbts 800 -k 1 +best -p 4 -S +sam-nohead -q chrM_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > test-data/bowtie_out4.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="dataType" value="solexa" />
+ <param name="xGenomeSource" value="xHistory" />
+ <param name="xOwnFile" value="chr_m.fasta" />
+ <param name="xIndexSettings" value="xIndexPreSet" />
+ <param name="xSPaired" value="xPaired" />
+ <param name="xpInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
+ <param name="xpInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
+ <param name="xpSettingsType" value="xpFull" />
+ <param name="xpSkip" value="0" />
+ <param name="xpAlignLimit" value="-1" />
+ <param name="xpTrimH" value="0" />
+ <param name="xpTrimL" value="0" />
+ <param name="xpMismatchSeed" value="2" />
+ <param name="xpMismatchQual" value="70" />
+ <param name="xpSeedLen" value="28" />
+ <param name="xpRounding" value="round" />
+ <param name="xpMaqSoapAlign" value="-1" />
+ <param name="xpMinInsert" value="0" />
+ <param name="xpMaxInsert" value="250" />
+ <param name="xpMateOrient" value="fr" />
+ <param name="xpMaxAlignAttempt" value="100" />
+ <param name="xpForwardAlign" value="forward" />
+ <param name="xpReverseAlign" value="reverse" />
+ <param name="xpTryHard" value="noTryHard" />
+ <param name="xpValAlign" value="1" />
+ <param name="xpAllValAligns" value="noAllValAligns" />
+ <param name="xpSuppressAlign" value="-1" />
+ <param name="xpBest" value="xpDoBest" />
+ <param name="xpdMaxBacktracks" value="800" />
+ <param name="xpdStrata" value="noStrata" />
+ <param name="xpOffrate" value="-1" />
+ <param name="xpSeed" value="-1" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out4.sam" />
+ </test>
+<!-- Comment out tests 5 and 6 because they are failing for an unknown reason
+ <test>
+--> <!--
+ Bowtie command:
+ bowtie -n 2 -e 70 -l 28 +maxbts 125 -k 1 -C +snpfrac 0.001 +col-keepends -p 4 -S +sam-nohead -q chrM_color test-data/bowtie_in1.fastqsanger > test-data/bowtie_out5.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+<!-- <param name="dataType" value="solid" />
+ <param name="cGenomeSource" value="cIndexed" />
+ <param name="cIndex" value="equCab2chrM" />
+ <param name="cSPaired" value="cSingle" />
+ <param name="csInput1" value="bowtie_in1.fastqsanger" />
+ <param name="csSettingsType" value="csFull" />
+ <param name="csSkip" value="0" />
+ <param name="csAlignLimit" value="-1" />
+ <param name="csTrimH" value="0" />
+ <param name="csTrimL" value="0" />
+ <param name="csMismatchSeed" value="2" />
+ <param name="csMismatchQual" value="70" />
+ <param name="csSeedLen" value="28" />
+ <param name="csRounding" value="round" />
+ <param name="csMaqSoapAlign" value="-1" />
+ <param name="csTryHard" value="noTryHard" />
+ <param name="csValAlign" value="1" />
+ <param name="csAllValAligns" value="noAllValAligns" />
+ <param name="csSuppressAlign" value="-1" />
+ <param name="csBest" value="csNoBest" />
+ <param name="csnMaxBacktracks" value="125" />
+ <param name="csOffrate" value="-1" />
+ <param name="csSeed" value="-1" />
+ <param name="csSnpphred" value="-1" />
+ <param name="csSnpfrac" value="0.001" />
+ <param name="csKeepends" value="doKeepends" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out5.sam" />
+ </test>
+ <test>
+--> <!--
+ Bowtie command:
+ bowtie -n 2 -e 70 -l 28 -k 1 +maxbts 125 -y -p 4 -S +sam-nohead -q chrM_base test-data/bowtie_in2.fastqsanger > test-data/bowtie_out6.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+<!-- <param name="dataType" value="solexa" />
+ <param name="xGenomeSource" value="xIndexed" />
+ <param name="xIndex" value="equCab2chrM" />
+ <param name="xSPaired" value="xSingle" />
+ <param name="xsInput1" value="bowtie_in2.fastqsanger" />
+ <param name="xsSettingsType" value="xsFull" />
+ <param name="xsSkip" value="0" />
+ <param name="xsAlignLimit" value="-1" />
+ <param name="xsTrimH" value="0" />
+ <param name="xsTrimL" value="0" />
+ <param name="xsMismatchSeed" value="2" />
+ <param name="xsMismatchQual" value="70" />
+ <param name="xsSeedLen" value="28" />
+ <param name="xsRounding" value="round" />
+ <param name="xsMaqSoapAlign" value="-1" />
+ <param name="xsTryHard" value="doTryHard" />
+ <param name="xsValAlign" value="1" />
+ <param name="xsAllValAligns" value="noAllValAligns" />
+ <param name="xsSuppressAlign" value="-1" />
+ <param name="xsBest" value="xsNoBest" />
+ <param name="xsnMaxBacktracks" value="125" />
+ <param name="xsOffrate" value="-1" />
+ <param name="xsSeed" value="-1" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out6.sam" />
+ </test>
+--> <test>
+ <!--
+ Bowtie command:
+ bowtie-build +noauto +bmaxdivn 4 +dcv 1024 +offrate 5 +ftabchars 10 +little -C -f test-data/chr_m.fasta chrM_color
+ bowtie -p 4 -S +sam-nohead -q -C chrM_color -1 test-data/bowtie_in3.fastqsanger -2 test-data/bowtie_in4.fastqsanger > test-data/bowtie_out7.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="dataType" value="solid" />
+ <param name="cGenomeSource" value="cHistory" />
+ <param name="cOwnFile" value="chr_m.fasta" />
+ <param name="cIndexSettings" value="cIndexFull" />
+ <param name="cAutoB" value="cSet" />
+ <param name="cPacked" value="unpacked" />
+ <param name="cBmax" value="-1" />
+ <param name="cBmaxdivn" value="4" />
+ <param name="cDcv" value="1024" />
+ <param name="cNodc" value="dc" />
+ <param name="cNoref" value="ref" />
+ <param name="cOffrate" value="5" />
+ <param name="cFtab" value="10" />
+ <param name="cNtoa" value="no" />
+ <param name="cEndian" value="little" />
+ <param name="cSeed" value="-1" />
+ <param name="cCutoff" value="-1" />
+ <param name="cSPaired" value="cPaired" />
+ <param name="cpInput1" ftype="fastqsanger" value="bowtie_in3.fastqsanger" />
+ <param name="cpInput2" ftype="fastqsanger" value="bowtie_in4.fastqsanger" />
+ <param name="cpSettingsType" value="cpPreSet" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out7.sam" />
+ </test>
+ <test>
+ <!--
+ Bowtie command:
+ bowtie-build +offrate 5 +ftabchars 10 +little -f test-data/chr_m.fasta chrM_base
+ bowtie -p 4 -S +sam-nohead -q chrM_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > test-data/bowtie_out8.sam
+ -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
+ chrM_base is the index files' location/base name.
+ -->
+ <param name="dataType" value="solexa" />
+ <param name="xGenomeSource" value="xHistory" />
+ <param name="xOwnFile" value="chr_m.fasta" />
+ <param name="xIndexSettings" value="xIndexFull" />
+ <param name="xAutoB" value="xAuto" />
+ <param name="xNodc" value="dc" />
+ <param name="xNoref" value="ref" />
+ <param name="xOffrate" value="5" />
+ <param name="xFtab" value="10" />
+ <param name="xNtoa" value="no" />
+ <param name="xEndian" value="little" />
+ <param name="xSeed" value="-1" />
+ <param name="xCutoff" value="-1" />
+ <param name="xSPaired" value="xPaired" />
+ <param name="xpInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
+ <param name="xpInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
+ <param name="xpSettingsType" value="xpPreSet" />
+ <param name="suppressHeader" value="true" />
+ <output name="output" ftype="sam" file="bowtie_out8.sam" />
+ </test>
</tests>
+
<help>
**What it does**
@@ -526,6 +1154,9 @@
--strata Best strata. When running in best mode, report alignments that fall into the best stratum if there are ones falling into more than one. [off]
-o <int> Offrate override. Override the offrate of the index with <int>. Some row markings are discarded when index read into memory. <int> must be greater than the value used to build the index (default: 5). [off]
--seed <int> Random seed. Use <int> as the seed for the pseudo-random number generator. [off]
+ --snpphred <int> Use <int> as the SNP penalty for decoding colorspace alignments. True ratio of SNPs per base in the subject genome. [see --snpfrac]
+ --snpfrac <dec> Use <dec> as the estimated ratio of SNPs per base when decoding colorspace alignments. [0.001]
+ --col-keepends Keep the extreme-end nucleotides and qualities when decoding colorspace alignments. [off]
</help>
<code file="bowtie_wrapper_code.py" />
diff -r 61f1ec6c5b24 -r 56efe838b9af tools/sr_mapping/bowtie_wrapper_code.py
--- a/tools/sr_mapping/bowtie_wrapper_code.py Mon Jan 11 16:35:16 2010 -0500
+++ b/tools/sr_mapping/bowtie_wrapper_code.py Mon Jan 11 17:04:45 2010 -0500
@@ -2,15 +2,21 @@
def exec_before_job(app, inp_data, out_data, param_dict, tool):
try:
- refFile = param_dict['refGenomeSource']['indices'].value
+ try:
+ refFile = param_dict[ 'solidOrSolexa' ][ 'cRefGenomeSource' ][ 'cIndex' ].value
+ except:
+ refFile = param_dict[ 'solidOrSolexa' ][ 'xRefGenomeSource' ][ 'xIndex' ].value
except:
try:
- refFile = param_dict['refGenomeSource']['ownFile'].dbkey
+ try:
+ refFile = param_dict[ 'solidOrSolexa' ][ 'cRefGenomeSource' ][ 'cOwnFile' ].dbkey
+ except:
+ refFile = param_dict[ 'solidOrSolexa' ][ 'xRefGenomeSource' ][ 'xOwnFile' ].dbkey
except:
- out_data['output'].set_dbkey('?')
+ out_data[ 'output' ].set_dbkey( '?' )
return
- dbkey = os.path.split(refFile)[1].split('.')[0]
+ dbkey = os.path.split( refFile )[1].split( '.' )[0]
# deal with the one odd case
- if dbkey.find('chrM') >= 0:
+ if dbkey.find( 'chrM' ) >= 0 or dbkey.find( 'chr_m' ) >= 0:
dbkey = 'equCab2'
- out_data['output'].set_dbkey(dbkey)
+ out_data[ 'output' ].set_dbkey(dbkey)
details: http://www.bx.psu.edu/hg/galaxy/rev/6127f0928166
changeset: 3221:6127f0928166
user: Greg Von Kuster <greg(a)bx.psu.edu>
date: Fri Jan 08 16:22:44 2010 -0500
description:
Enhance lastz to better handle files with many sequences.
diffstat:
tools/sr_mapping/lastz_wrapper.py | 194 ++++++++++++++++++++++--------------
tools/sr_mapping/lastz_wrapper.xml | 18 +--
2 files changed, 127 insertions(+), 85 deletions(-)
diffs (343 lines):
diff -r b4f1f54ced6a -r 6127f0928166 tools/sr_mapping/lastz_wrapper.py
--- a/tools/sr_mapping/lastz_wrapper.py Fri Jan 08 11:28:37 2010 -0500
+++ b/tools/sr_mapping/lastz_wrapper.py Fri Jan 08 16:22:44 2010 -0500
@@ -29,10 +29,9 @@
--coverage: The minimum coverage value (don't report matches covering less than this)
--out_format: The format of the output file (sam, diffs, or tabular (general))
--output: The name of the output file
- --num_threads: The number of threads to run
--lastzSeqsFileDir: Directory of local lastz_seqs.loc file
"""
-import optparse, os, subprocess, shutil, sys, tempfile, threading
+import optparse, os, subprocess, shutil, sys, tempfile, threading, time
from Queue import Queue
from galaxy import eggs
@@ -40,39 +39,86 @@
pkg_resources.require( 'bx-python' )
from bx.seq.twobit import *
from bx.seq.fasta import FastaReader
+from galaxy.util.bunch import Bunch
+
+STOP_SIGNAL = object()
+WORKERS = 4
+SLOTS = 128
def stop_err( msg ):
sys.stderr.write( "%s" % msg )
sys.exit()
-class LastzJobRunner( object ):
- """
- Lastz job runner backed by a pool of "num_threads" worker threads. FIFO scheduling
- """
- def __init__( self, num_threads, commands ):
- """Start the job runner with "num_threads" worker threads"""
- # start workers
- self.queue = Queue()
- for command in commands:
- self.queue.put( command )
+def stop_queues( lastz, combine_data ):
+ # This method should only be called if an error has been encountered.
+ # Send STOP_SIGNAL to all worker threads
+ for t in lastz.threads:
+ lastz.put( STOP_SIGNAL, True )
+ combine_data.put( STOP_SIGNAL, True )
+
+class BaseQueue( object ):
+ def __init__( self, num_threads, slots=-1 ):
+ # Initialize the queue and worker threads
+ self.queue = Queue( slots )
self.threads = []
for i in range( num_threads ):
worker = threading.Thread( target=self.run_next )
worker.start()
self.threads.append( worker )
- for worker in self.threads:
- worker.join()
def run_next( self ):
- """Run the next command, waiting until one is available if necessary"""
- while not self.queue.empty():
- command = self.queue.get()
- self.run_job( command )
- def run_job( self, command ):
- try:
- proc = subprocess.Popen( args=command, shell=True )
- proc.wait()
- except Exception, e:
- stop_err( "Error executing command (%s) - %s" % ( str( command ), str( e ) ) )
+ # Run the next job, waiting until one is available if necessary
+ while True:
+ job = self.queue.get()
+ if job is STOP_SIGNAL:
+ return self.shutdown()
+ self.run_job( job )
+ time.sleep( 1 )
+ def run_job( self, job ):
+ stop_err( 'Not Implemented' )
+ def put( self, job, block=False ):
+ # Add a job to the queue
+ self.queue.put( job, block )
+ def shutdown( self ):
+ return
+
+class LastzJobQueue( BaseQueue ):
+ """
+ A queue that runs commands in parallel. Blocking is done so the queue will
+ not consume much memory.
+ """
+ def run_job( self, job ):
+ # Execute the job's command
+ proc = subprocess.Popen( args=job.command, shell=True, stderr=subprocess.PIPE, )
+ proc.wait()
+ stderr = proc.stderr.read()
+ proc.wait()
+ if stderr:
+ stop_queues( self, job.combine_data_queue )
+ stop_err( stderr )
+ job.combine_data_queue.put( job )
+
+class CombineDataQueue( BaseQueue ):
+ """
+ A queue that concatenates files in serial. Blocking is not done since this
+ queue is not expected to grow larger than the command queue.
+ """
+ def __init__( self, output_filename, num_threads=1 ):
+ BaseQueue.__init__( self, num_threads )
+ self.CHUNK_SIZE = 2**20 # 1Mb
+ self.output_file = open( output_filename, 'wb' )
+ def run_job( self, job ):
+ in_file = open( job.output, 'rb' )
+ while True:
+ chunk = in_file.read( self.CHUNK_SIZE )
+ if not chunk:
+ in_file.close()
+ break
+ self.output_file.write( chunk )
+ for file_name in job.cleanup:
+ os.remove( file_name )
+ def shutdown( self ):
+ self.output_file.close()
+ return
def __main__():
#Parse Command Line
@@ -101,17 +147,9 @@
parser.add_option( '', '--coverage', dest='coverage', help="The minimum coverage value (don't report matches covering less than this)" )
parser.add_option( '', '--out_format', dest='format', help='The format of the output file (sam, diffs, or tabular (general))' )
parser.add_option( '', '--output', dest='output', help='The output file' )
- parser.add_option( '', '--num_threads', dest='num_threads', help='The number of threads to run' )
parser.add_option( '', '--lastzSeqsFileDir', dest='lastzSeqsFileDir', help='Directory of local lastz_seqs.loc file' )
( options, args ) = parser.parse_args()
- # If the reference sequences are from the history, temporary input files will be created
- # ( 1 for each sequence ), and we'll keep track of them for later removal from disk ( by closing them )
- tmp_in_file_names = []
- # Each thread will create a temporary file to which it writes the output from lastz
- tmp_out_file_names = []
- # Execution of lastz based on job splitting
- commands = []
if options.ref_name != 'None':
ref_name = '[nickname=%s]' % options.ref_name
else:
@@ -122,9 +160,8 @@
# Prepare for user-specified options
else:
set_options = '--%s --%s --gapped --strand=%s --seed=%s --%s O=%s E=%s X=%s Y=%s K=%s L=%s --%s' % \
- ( options.gfextend, options.chain, options.strand, options.seed,
- options.transition, options.O, options.E, options.X,
- options.Y, options.K, options.L, options.entropy )
+ ( options.gfextend, options.chain, options.strand, options.seed, options.transition,
+ options.O, options.E, options.X, options.Y, options.K, options.L, options.entropy )
# Specify input2 and add [fullnames] modifier if output format is diffs
if options.format == 'diffs':
input2 = '%s[fullnames]' % options.input2
@@ -141,15 +178,23 @@
else:
format = options.format
tabular_fields = ''
+
+ # Set up our queues
+ lastz_job_queue = LastzJobQueue( WORKERS, slots=SLOTS )
+ combine_data_queue = CombineDataQueue( options.output )
+
if options.ref_source == 'history':
- # Reference is a fasta dataset from the history, so split job across number of sequences in the dataset
+ # Reference is a fasta dataset from the history, so split job across
+ # the number of sequences in the dataset ( this could be a HUGE number )
try:
# Ensure there is at least 1 sequence in the dataset ( this may not be necessary ).
error_msg = "The reference dataset is missing metadata, click the pencil icon in the history item and 'auto-detect' the metadata attributes."
ref_sequences = int( options.ref_sequences )
if ref_sequences < 1:
+ stop_queues( lastz_job_queue, combine_data_queue )
stop_err( error_msg )
except:
+ stop_queues( lastz_job_queue, combine_data_queue )
stop_err( error_msg )
seqs = 0
fasta_reader = FastaReader( open( options.input1 ) )
@@ -160,60 +205,61 @@
break
seqs += 1
# Create a temporary file to contain the current sequence as input to lastz
- tmp_in = tempfile.NamedTemporaryFile( prefix=seq.name, suffix='.fasta' )
- tmp_in_name = tmp_in.name
- tmp_in.close()
- tmp_in = file(tmp_in_name,'w+b')
- # Keep track of our list of temporary input files so we can remove them later by closing them
- tmp_in_file_names.append( tmp_in_name )
+ tmp_in_fd, tmp_in_name = tempfile.mkstemp( suffix='.in' )
+ tmp_in = os.fdopen( tmp_in_fd, 'wb' )
# Write the current sequence to the temporary input file
tmp_in.write( '>%s\n%s\n' % ( seq.name, seq.text ) )
tmp_in.close()
# Create a 2nd temporary file to contain the output from lastz execution on the current sequence
- tmp_out = tempfile.NamedTemporaryFile( prefix='%s_out' % seq.name )
- tmp_out_name = tmp_out.name
- tmp_out.close()
- # Keep track of our list of temporary output files so we can merge them into our output dataset
- tmp_out_file_names.append( tmp_out_name )
+ tmp_out_fd, tmp_out_name = tempfile.mkstemp( suffix='.out' )
+ os.close( tmp_out_fd )
# Generate the command line for calling lastz on the current sequence
command = 'lastz %s%s %s %s --ambiguousn --nolaj --identity=%s..%s --coverage=%s --format=%s%s > %s' % \
( tmp_in_name, ref_name, input2, set_options, options.identity_min,
options.identity_max, options.coverage, format, tabular_fields, tmp_out_name )
- # Append the command line to our list of commands for sending to the LastzJobRunner queue
- commands.append( command )
- # Make sure the value of sequences in the metadata is the
- # same as the number of sequences read from the dataset ( this may not be necessary ).
+ # Create a job object
+ job = Bunch()
+ job.command = command
+ job.output = tmp_out_name
+ job.cleanup = [ tmp_in_name, tmp_out_name ]
+ job.combine_data_queue = combine_data_queue
+ # Add another job to the lastz_job_queue. Execution
+ # will wait at this point if the queue is full.
+ lastz_job_queue.put( job, block=True )
+ # Make sure the value of sequences in the metadata is the same as the
+ # number of sequences read from the dataset ( this may not be necessary ).
if ref_sequences != seqs:
- stop_error( "The value of metadata.sequences (%d) differs from the number of sequences read from the reference ( %d)." % ( ref_sequences, seqs ) )
+ stop_queues( lastz_job_queue, combine_data_queue )
+ stop_err( "The value of metadata.sequences (%d) differs from the number of sequences read from the reference ( %d)." % ( ref_sequences, seqs ) )
else:
# Reference is a locally cached 2bit file, split job across number of chroms in 2bit file
tbf = TwoBitFile( open( options.input1, 'r' ) )
for chrom in tbf.keys():
# Create a temporary file to contain the output from lastz execution on the current chrom
- tmp_out = tempfile.NamedTemporaryFile( prefix='%s_out' % chrom )
- tmp_out_name = tmp_out.name
- tmp_out.close()
- # Keep track of our list of temporary output files so we can merge them into our output dataset
- tmp_out_file_names.append( tmp_out_name )
+ tmp_out_fd, tmp_out_name = tempfile.mkstemp( suffix='.out' )
+ os.close( tmp_out_fd )
command = 'lastz %s/%s%s %s %s --ambiguousn --nolaj --identity=%s..%s --coverage=%s --format=%s%s >> %s' % \
( options.input1, chrom, ref_name, input2, set_options, options.identity_min,
options.identity_max, options.coverage, format, tabular_fields, tmp_out_name )
- commands.append( command )
- job_runner = LastzJobRunner( int( options.num_threads ), commands )
- # Merge all of the output from lastz ( currently in temporary files ) into our output dataset
- command = 'cat %s >> %s' % ( ' '.join( tmp_out_file_names ), options.output )
- proc = subprocess.Popen( args=command, shell=True )
- proc.wait()
- # Remove all temporary files from disk by closing them
- for name in tmp_in_file_names:
- try:
- os.remove( name )
- except:
- pass
- for name in tmp_out_file_names:
- try:
- os.remove( name )
- except:
- pass
+ # Create a job object
+ job = Bunch()
+ job.command = command
+ job.output = tmp_out_name
+ job.cleanup = [ tmp_out_name ]
+ job.combine_data_queue = combine_data_queue
+ # Add another job to the lastz_job_queue. Execution
+ # will wait at this point if the queue is full.
+ lastz_job_queue.put( job, block=True )
+
+ # Stop the lastz_job_queue
+ for t in lastz_job_queue.threads:
+ lastz_job_queue.put( STOP_SIGNAL, True )
+ # Although all jobs are submitted to the queue, we can't shut down the combine_data_queue
+ # until we know that all jobs have been submitted to its queue. We do this by checking
+ # whether all of the threads in the lastz_job_queue have terminated.
+ while threading.activeCount() > 2:
+ time.sleep( 1 )
+ # Now it's safe to stop the combine_data_queue
+ combine_data_queue.put( STOP_SIGNAL )
if __name__=="__main__": __main__()
diff -r b4f1f54ced6a -r 6127f0928166 tools/sr_mapping/lastz_wrapper.xml
--- a/tools/sr_mapping/lastz_wrapper.xml Fri Jan 08 11:28:37 2010 -0500
+++ b/tools/sr_mapping/lastz_wrapper.xml Fri Jan 08 16:22:44 2010 -0500
@@ -19,7 +19,7 @@
#else:
--pre_set_options="None" --strand=$params.strand --seed=$params.seed --gfextend=$params.gfextend --chain=$params.chain --transition=$params.transition --O=$params.O --E=$params.E --X=$params.X --Y=$params.Y --K=$params.K --L=$params.L --entropy=$params.entropy
#end if
---identity_min=$min_ident --identity_max=$max_ident --coverage=$min_cvrg --output=$output1 --num_threads=$num_threads --lastzSeqsFileDir=${GALAXY_DATA_INDEX_DIR}
+--identity_min=$min_ident --identity_max=$max_ident --coverage=$min_cvrg --output=$output1 --lastzSeqsFileDir=${GALAXY_DATA_INDEX_DIR}
</command>
<inputs>
<param name="input2" format="fasta" type="data" label="Align sequencing reads in" />
@@ -109,10 +109,6 @@
<param name="min_ident" type="integer" size="3" value="0" label="Do not report matches below this identity (%)"/>
<param name="max_ident" type="integer" size="3" value="100" label="Do not report matches above this identity (%)"/>
<param name="min_cvrg" type="integer" size="3" value="0" label="Do not report matches that cover less than this percentage of each read"/>
- <param name="num_threads" type="select" label="Number of threads" help="Split this job over the selected number of threads">
- <option value="4">4</option>
- <option value="8">8</option>
- </param>
</inputs>
<outputs>
<data format="tabular" name="output1">
@@ -149,14 +145,15 @@
<param name="K" value="3000" />
<param name="L" value="3000" />
<param name="entropy" value="noentropy" />
- <!-- how_to_name is not the default. It is changed to modify
- input1_2bit by adding the ref_name as a nickname -->
+ <!--
+ how_to_name is not the default. It is changed to modify
+ input1_2bit by adding the ref_name as a nickname
+ -->
<param name="how_to_name" value="yes" />
<param name="ref_name" value="Ref" />
<param name="min_ident" value="0" />
<param name="max_ident" value="100" />
<param name="min_cvrg" value="0" />
- <param name="num_threads" value="4" />
<output name="output1" file="lastz_wrapper_out2.sam" />
</test>
<test>
@@ -176,11 +173,10 @@
<param name="min_ident" value="0" />
<param name="max_ident" value="100" />
<param name="min_cvrg" value="0" />
- <param name="num_threads" value="4" />
<output name="output1" file="lastz_wrapper_out3.tabular" />
</test>
- <test>
- <!--
+ <test>
+ <!--
Lastz command: first you will need to split the file phiX_split.fasta into two files,
phiX1.fasta and phiX2.fasta, each with 1 sequence (phiX1 and phiX2, respectively). Then:
lastz phiX1.fasta test-data/b1.fasta *yasra95short *ambiguousn *nolaj *identity=0..100 *coverage=0 *format=general-:score,name1,strand1,size1,start1,zstart1,end1,length1,text1,name2,strand2,size2,start2,zstart2,end2,start2+,zstart2+,end2+,length2,text2,diff,cigar,identity,coverage,gaprate,diagonal,shingle > lastz_wrapper_out4.tabular
@@ -200,7 +196,6 @@
<param name="min_ident" value="0" />
<param name="max_ident" value="100" />
<param name="min_cvrg" value="0" />
- <param name="num_threads" value="4" />
<output name="output1" file="lastz_wrapper_out4.tabular" />
</test>
</tests>