PageRenderTime 39ms CodeModel.GetById 12ms app.highlight 15ms RepoModel.GetById 1ms app.codeStats 1ms

/tools/sr_mapping/bowtie_wrapper.xml

https://bitbucket.org/cistrome/cistrome-harvard/
XML | 838 lines | 766 code | 34 blank | 38 comment | 0 complexity | 449552858fd209f2ed4301bc29f8b742 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

  1<tool id="bowtie_wrapper" name="Map with Bowtie for Illumina" version="1.1.2">
  2  <requirements><requirement type='package'>bowtie</requirement></requirements>
  3  <description></description>
  4  <parallelism method="basic"></parallelism>
  5  <command interpreter="python">
  6    bowtie_wrapper.py
  7      ## Hackish setting of number of threads
  8      --threads="4"
  9      ## Outputs
 10      --output=$output
 11      #if str( $singlePaired.sPaired ) == "single"
 12        #if $output_unmapped_reads_l
 13          --output_unmapped_reads=$output_unmapped_reads_l
 14        #end if
 15        #if $output_suppressed_reads_l
 16          --output_suppressed_reads=$output_suppressed_reads_l
 17        #end if
 18        --galaxy_input_format="${singlePaired.sInput1.ext}"
 19      #else
 20        #if $output_unmapped_reads_l and $output_unmapped_reads_r
 21          --output_unmapped_reads_l=$output_unmapped_reads_l
 22          --output_unmapped_reads_r=$output_unmapped_reads_r
 23        #end if
 24        #if $output_suppressed_reads_l and $output_suppressed_reads_l
 25          --output_suppressed_reads_l=$output_suppressed_reads_l
 26          --output_suppressed_reads_r=$output_suppressed_reads_r
 27        #end if
 28        --galaxy_input_format="${singlePaired.pInput1.ext}"
 29      #end if
 30      ## Inputs
 31      --dataType="solexa" ##this indicates that nucleotide base space is used in the wrapper
 32      --suppressHeader=$suppressHeader
 33      --genomeSource=$refGenomeSource.genomeSource
 34      #if $refGenomeSource.genomeSource == "history":
 35        ##index already exists
 36        #if $refGenomeSource.ownFile.extension.startswith( 'bowtie_' ):
 37          ##user previously built
 38          --ref="${refGenomeSource.ownFile.extra_files_path}/${refGenomeSource.ownFile.metadata.base_name}"
 39          --do_not_build_index
 40        #else:
 41          ##build index on the fly
 42          --ref=$refGenomeSource.ownFile
 43          --indexSettings=$refGenomeSource.indexParams.indexSettings
 44          #if $refGenomeSource.indexParams.indexSettings == "indexFull":
 45            --iautoB=$refGenomeSource.indexParams.autoBehavior.autoB
 46            #if $refGenomeSource.indexParams.autoBehavior.autoB == "set":
 47              --ipacked=$refGenomeSource.indexParams.autoBehavior.packed
 48              --ibmax=$refGenomeSource.indexParams.autoBehavior.bmax
 49              --ibmaxdivn=$refGenomeSource.indexParams.autoBehavior.bmaxdivn
 50              --idcv=$refGenomeSource.indexParams.autoBehavior.dcv
 51            #end if
 52            --inodc=$refGenomeSource.indexParams.nodc
 53            --inoref=$refGenomeSource.indexParams.noref
 54            --ioffrate=$refGenomeSource.indexParams.offrate
 55            --iftab=$refGenomeSource.indexParams.ftab
 56            --intoa=$refGenomeSource.indexParams.ntoa
 57            --iendian=$refGenomeSource.indexParams.endian
 58            --iseed=$refGenomeSource.indexParams.seed
 59            --icutoff=$refGenomeSource.indexParams.cutoff 
 60          #end if
 61        #end if
 62      #else
 63        ##use pre-built index
 64        ##--ref="${ filter( lambda x: str( x[0] ) == str( $refGenomeSource.index ), $__app__.tool_data_tables[ 'bowtie_indexes' ].get_fields() )[0][-1] }"
 65        --ref="${ refGenomeSource.index.fields.path }"
 66      #end if
 67      --paired=$singlePaired.sPaired
 68      #if $singlePaired.sPaired == "single":
 69        --input1=$singlePaired.sInput1
 70        --params=$singlePaired.sParams.sSettingsType
 71        #if $singlePaired.sParams.sSettingsType == "full":
 72          --skip=$singlePaired.sParams.sSkip
 73          --alignLimit=$singlePaired.sParams.sAlignLimit
 74          --trimH=$singlePaired.sParams.sTrimH
 75          --trimL=$singlePaired.sParams.sTrimL
 76          --mismatchSeed=$singlePaired.sParams.sMismatchSeed
 77          --mismatchQual=$singlePaired.sParams.sMismatchQual
 78          --seedLen=$singlePaired.sParams.sSeedLen
 79          --rounding=$singlePaired.sParams.sRounding
 80          --maqSoapAlign=$singlePaired.sParams.sMaqSoapAlign
 81          --tryHard=$singlePaired.sParams.sTryHard
 82          --valAlign=$singlePaired.sParams.sValAlign
 83          --allValAligns=$singlePaired.sParams.sAllValAligns
 84          --suppressAlign=$singlePaired.sParams.sSuppressAlign
 85          --best=$singlePaired.sParams.sBestOption.sBest
 86          #if $singlePaired.sParams.sBestOption.sBest == "doBest":
 87            --maxBacktracks=$singlePaired.sParams.sBestOption.sdMaxBacktracks
 88            --strata=$singlePaired.sParams.sBestOption.sdStrata
 89          #else:
 90            --maxBacktracks=$singlePaired.sParams.sBestOption.snMaxBacktracks
 91          #end if
 92          --offrate=$singlePaired.sParams.sOffrate
 93          --seed=$singlePaired.sParams.sSeed
 94        #end if
 95      #else:
 96        --input1=$singlePaired.pInput1
 97        --input2=$singlePaired.pInput2
 98        --maxInsert=$singlePaired.pMaxInsert
 99        --mateOrient=$singlePaired.pMateOrient
100        --params=$singlePaired.pParams.pSettingsType
101        #if $singlePaired.pParams.pSettingsType == "full":
102          --skip=$singlePaired.pParams.pSkip
103          --alignLimit=$singlePaired.pParams.pAlignLimit
104          --trimH=$singlePaired.pParams.pTrimH
105          --trimL=$singlePaired.pParams.pTrimL
106          --mismatchSeed=$singlePaired.pParams.pMismatchSeed
107          --mismatchQual=$singlePaired.pParams.pMismatchQual
108          --seedLen=$singlePaired.pParams.pSeedLen
109          --rounding=$singlePaired.pParams.pRounding
110          --maqSoapAlign=$singlePaired.pParams.pMaqSoapAlign
111          --minInsert=$singlePaired.pParams.pMinInsert
112          --maxAlignAttempt=$singlePaired.pParams.pMaxAlignAttempt
113          --forwardAlign=$singlePaired.pParams.pForwardAlign
114          --reverseAlign=$singlePaired.pParams.pReverseAlign
115          --tryHard=$singlePaired.pParams.pTryHard
116          --valAlign=$singlePaired.pParams.pValAlign
117          --allValAligns=$singlePaired.pParams.pAllValAligns
118          --suppressAlign=$singlePaired.pParams.pSuppressAlign
119          --best=$singlePaired.pParams.pBestOption.pBest
120          #if $singlePaired.pParams.pBestOption.pBest == "doBest":
121            --maxBacktracks=$singlePaired.pParams.pBestOption.pdMaxBacktracks
122            --strata=$singlePaired.pParams.pBestOption.pdStrata
123          #else:
124            --maxBacktracks=$singlePaired.pParams.pBestOption.pnMaxBacktracks
125          #end if
126          --offrate=$singlePaired.pParams.pOffrate
127          --seed=$singlePaired.pParams.pSeed
128        #end if
129      #end if
130  </command>
131  <inputs>
132    <conditional name="refGenomeSource">
133      <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">
134        <option value="indexed">Use a built-in index</option>
135        <option value="history">Use one from the history</option>
136      </param>
137      <when value="indexed">
138        <param name="index" type="select" label="Select a reference genome" help="if your genome of interest is not listed - contact Galaxy team">
139          <options from_data_table="bowtie_indexes">
140            <filter type="sort_by" column="2" />
141            <validator type="no_options" message="No indexes are available" />
142          </options>
143        </param>
144      </when>
145      <when value="history">
146        <param name="ownFile" type="data" format="bowtie_base_index,fasta" metadata_name="dbkey" label="Select the reference genome" />
147        <conditional name="indexParams">
148          <param name="indexSettings" type="select" label="Choose whether to use Default options for building indices or to Set your own" help="These settings are ignored when using a prebuilt index">
149            <option value="indexPreSet">Default</option>
150            <option value="indexFull">Set your own</option>
151          </param> 
152          <when value="indexPreSet" />
153          <when value="indexFull">
154            <conditional name="autoBehavior">
155              <param name="autoB" type="select" label="Choose to use automatic or specified behavior for some parameters (-a)" help="Allows you to set --packed, --bmax, --bmaxdivn, and --dcv">
156                <option value="auto">Automatic behavior</option>
157                <option value="set">Set values (sets --noauto and allows others to be set)</option>
158              </param>
159              <when value="auto" />
160              <when value="set">
161                <param name="packed" type="select" label="Whether or not to use a packed representation for DNA strings (--packed)">
162                  <option value="unpacked">Use regular representation</option>
163                  <option value="packed">Use packed representation</option>
164                </param>
165                <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" />
166                <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)" />
167                <param name="dcv" type="integer" value="1024" label="The period for the difference-cover sample (--dcv)" />
168              </when>
169            </conditional>
170            <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 (with a very repetitive reference)">
171              <option value="dc">Use difference-cover sample</option>
172              <option value="nodc">Disable difference-cover sample</option>
173            </param>
174            <param name="noref" type="select" label="Whether or not to build the part of the reference index used only in paired-end alignment (-r)">
175              <option value="ref">Build all index files</option>
176              <option value="noref">Do not build paired-end alignment index files</option>
177            </param>
178            <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)" />
179            <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" />
180            <param name="ntoa" type="select" label="Whether or not to convert Ns in the reference sequence to As (--ntoa)">
181              <option value="no">Do not convert Ns</option>
182              <option value="yes">Convert Ns to As</option>
183            </param>
184            <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">
185              <option value="little">Little</option>
186              <option value="big">Big</option>
187            </param> 
188            <param name="seed" type="integer" value="-1" label="Seed for the pseudorandom number generator (--seed)" help="Use -1 to use default" />
189            <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" />
190          </when>  <!-- indexFull -->
191        </conditional>  <!-- indexParams -->
192      </when>  <!-- history -->
193    </conditional>  <!-- refGenomeSource -->
194    <conditional name="singlePaired">
195      <param name="sPaired" type="select" label="Is this library mate-paired?">
196        <option value="single">Single-end</option>
197        <option value="paired">Paired-end</option>
198      </param>
199      <when value="single">
200        <param name="sInput1" type="data" format="fastqsanger,fastqillumina,fastqsolexa" label="FASTQ file" help="Must have ASCII encoded quality scores"/>
201        <conditional name="sParams">
202          <param name="sSettingsType" 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">
203            <option value="preSet">Commonly used</option>
204            <option value="full">Full parameter list</option>
205            </param>
206          <when value="preSet" />
207          <when value="full">
208            <param name="sSkip" type="integer" value="0" label="Skip the first n reads (-s)" />  
209            <param name="sAlignLimit" type="integer" value="-1" label="Only align the first n reads (-u)" help="-1 for off" />  
210            <param name="sTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
211            <param name="sTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
212            <param name="sMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
213            <param name="sMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
214            <param name="sSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
215            <param name="sRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
216              <option value="round">Round to nearest 10</option>
217              <option value="noRound">Do not round to nearest 10</option>
218            </param>
219            <param name="sMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
220            <param name="sTryHard" 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">
221              <option value="noTryHard">Do not try hard</option>
222              <option value="doTryHard">Try hard</option>
223            </param>
224            <param name="sValAlign" type="integer" value="1" label="Report up to n valid alignments per read (-k)" />
225            <param name="sAllValAligns" type="select" label="Whether or not to report all valid alignments per read (-a)">
226              <option value="noAllValAligns">Do not report all valid alignments</option>
227              <option value="doAllValAligns">Report all valid alignments</option>
228            </param>
229            <param name="sSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a read if more than n reportable alignments exist (-m)" help="-1 for no limit" />
230            <param name="sMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" />
231            <param name="sUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" />
232            <conditional name="sBestOption">
233              <param name="sBest" 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">
234                <option value="noBest">Do not use best</option>
235                <option value="doBest">Use best</option>
236              </param>
237              <when value="noBest">
238                <param name="snMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
239              </when>
240              <when value="doBest">
241                <param name="sdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
242                <param name="sdStrata" 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)">
243                  <option value="noStrata">Do not use strata option</option>
244                  <option value="doStrata">Use strata option</option>
245                </param>
246              </when>
247            </conditional> <!-- bestOption -->
248            <param name="sOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
249            <param name="sSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
250          </when> <!-- full -->
251        </conditional> <!-- sParams -->
252      </when> <!-- single -->
253      <when value="paired">
254        <param name="pInput1" type="data" format="fastqsanger,fastqillumina,fastqsolexa" label="Forward FASTQ file" help="Must have ASCII encoded quality scores"/>
255        <param name="pInput2" type="data" format="fastqsanger,fastqillumina,fastqsolexa" label="Reverse FASTQ file" help="File format must match the Forward FASTQ file">
256            <options options_filter_attribute="ext" from_parameter="tool.app.datatypes_registry.datatypes_by_extension" transform_lines="obj.keys()">>
257               <column name="name" index="0"/>
258               <column name="value" index="0"/>
259               <filter type="param_value" ref="pInput1" ref_attribute="ext" column="0"/> 
260           </options>
261        </param>
262        <param name="pMaxInsert" type="integer" value="1000" label="Maximum insert size for valid paired-end alignments (-X)" />
263        <param name="pMateOrient" type="select" label="The upstream/downstream mate orientation for valid paired-end alignment against the forward reference strand (--fr/--rf/--ff)">
264          <option value="fr">FR (for Illumina)</option>
265          <option value="rf">RF</option>
266          <option value="ff">FF (for SOLiD)</option>
267        </param>
268        <conditional name="pParams">
269          <param name="pSettingsType" 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">
270            <option value="preSet">Commonly used</option>
271            <option value="full">Full parameter list</option>
272          </param>
273          <when value="preSet" />
274          <when value="full">
275            <param name="pSkip" type="integer" value="0" label="Skip the first n pairs (-s)" />  
276            <param name="pAlignLimit" type="integer" value="-1" label="Only align the first n pairs (-u)" help="-1 for off" />  
277            <param name="pTrimH" type="integer" value="0" label="Trim n bases from high-quality (left) end of each read before alignment (-5)" />
278            <param name="pTrimL" type="integer" value="0" label="Trim n bases from low-quality (right) end of each read before alignment (-3)" />
279            <param name="pMismatchSeed" type="integer" value="2" label="Maximum number of mismatches permitted in the seed (-n)" help="May be 0, 1, 2, or 3" />
280            <param name="pMismatchQual" type="integer" value="70" label="Maximum permitted total of quality values at mismatched read positions (-e)" />
281            <param name="pSeedLen" type="integer" value="28" label="Seed length (-l)" help="Minimum value is 5" />
282            <param name="pRounding" type="select" label="Whether or not to round to the nearest 10 and saturating at 30 (--nomaqround)">
283              <option value="round">Round to nearest 10</option>
284              <option value="noRound">Do not round to nearest 10</option>
285            </param>
286            <param name="pMaqSoapAlign" type="integer" value="-1" label="Number of mismatches for SOAP-like alignment policy (-v)" help="-1 for default MAQ-like alignment policy" />
287            <param name="pMinInsert" type="integer" value="0" label="Minimum insert size for valid paired-end alignments (-I)" />
288            <param name="pMaxAlignAttempt" 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)" />
289            <param name="pForwardAlign" type="select" label="Choose whether or not to attempt to align the forward reference strand (--nofw)">
290              <option value="forward">Align against the forward reference strand</option>
291              <option value="noForward">Do not align against the forward reference strand</option>
292            </param>
293            <param name="pReverseAlign" type="select" label="Choose whether or not to align against the reverse-complement reference strand (--norc)">
294              <option value="reverse">Align against the reverse-complement reference strand</option>
295              <option value="noReverse">Do not align against the reverse-complement reference strand</option>
296            </param>
297            <param name="pTryHard" 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">
298              <option value="noTryHard">Do not try hard</option>
299              <option value="doTryHard">Try hard</option>
300            </param>
301            <param name="pValAlign" type="integer" value="1" label="Report up to n valid arguments per pair (-k)" />
302            <param name="pAllValAligns" type="select" label="Whether or not to report all valid alignments per pair (-a)">
303              <option value="noAllValAligns">Do not report all valid alignments</option>
304              <option value="doAllValAligns">Report all valid alignments</option>
305            </param>
306            <param name="pSuppressAlign" type="integer" value="-1" label="Suppress all alignments for a pair if more than n reportable alignments exist (-m)" help="-1 for no limit" />
307            <param name="pMaxFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads with a number of valid alignments exceeding the limit set with the -m option to a file (--max)" />
308            <param name="pUnmappedFile" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Write all reads that could not be aligned to a file (--un)" />
309            <conditional name="pBestOption">
310              <param name="pBest" 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">
311                <option value="noBest">Do not use best</option>
312                <option value="doBest">Use best</option>
313              </param>
314              <when value="noBest">
315                <param name="pnMaxBacktracks" type="integer" value="125" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
316              </when>
317              <when value="doBest">
318                <param name="pdMaxBacktracks" type="integer" value="800" label="Maximum number of backtracks permitted when aligning a read (--maxbts)" />
319                <param name="pdStrata" 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)">
320                  <option value="noStrata">Do not use strata option</option>
321                  <option value="doStrata">Use strata option</option>
322                </param>
323              </when>
324            </conditional>
325            <param name="pOffrate" type="integer" value="-1" label="Override the offrate of the index to n (-o)" help="-1 for default" />
326            <param name="pSeed" type="integer" value="-1" label="Seed for pseudo-random number generator (--seed)" help="-1 for default" />
327          </when> <!-- full -->
328        </conditional> <!-- pParams -->
329      </when> <!-- paired -->
330    </conditional> <!-- singlePaired -->
331    <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Suppress the header in the output SAM file" help="Bowtie produces SAM with several lines of header information by default" />
332  </inputs>
333  <outputs>
334    <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads">
335      <actions>
336        <conditional name="refGenomeSource.genomeSource">
337          <when value="indexed">
338            <action type="metadata" name="dbkey">
339              <option type="from_data_table" name="bowtie_indexes" column="1" offset="0">
340                <filter type="param_value" column="0" value="#" compare="startswith" keep="False"/>
341                <filter type="param_value" ref="refGenomeSource.index" column="0"/>
342              </option>
343            </action>
344          </when>
345          <when value="history">
346            <action type="metadata" name="dbkey">
347              <option type="from_param" name="refGenomeSource.ownFile" param_attribute="dbkey" />
348            </action>
349          </when>
350        </conditional>
351      </actions>
352    </data>
353    <data format="fastq" name="output_suppressed_reads_l" label="${tool.name} on ${on_string}: suppressed reads (L)">
354      <filter>((
355          singlePaired['sPaired'] == "single" and
356          singlePaired['sParams']['sSettingsType'] == "full" and
357          singlePaired['sParams']['sMaxFile'] is True
358        ) or (
359          singlePaired['sPaired'] == "paired" and
360          singlePaired['pParams']['pSettingsType'] == "full" and
361          singlePaired['pParams']['pMaxFile'] is True
362        ))
363      </filter>
364      <actions>
365        <conditional name="singlePaired.sPaired">
366          <when value="single">
367            <action type="format">
368              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
369            </action>
370          </when>
371          <when value="paired">
372            <action type="format">
373              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
374            </action>
375          </when>
376        </conditional>
377      </actions>
378    </data>
379    <data format="fastq" name="output_suppressed_reads_r" label="${tool.name} on ${on_string}: suppressed reads (R)">
380      <filter>singlePaired['sPaired'] == "paired"</filter>
381      <filter>singlePaired['pParams']['pSettingsType'] == "full"</filter>
382      <filter>singlePaired['pParams']['pMaxFile'] is True</filter>
383      <actions>
384        <conditional name="singlePaired.sPaired">
385          <when value="single">
386            <action type="format">
387              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
388            </action>
389          </when>
390          <when value="paired">
391            <action type="format">
392              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
393            </action>
394          </when>
395        </conditional>
396      </actions>
397    </data>
398    <data format="fastq" name="output_unmapped_reads_l" label="${tool.name} on ${on_string}: unmapped reads (L)">
399      <filter>
400        ((
401          singlePaired['sPaired'] == "single" and
402          singlePaired['sParams']['sSettingsType'] == "full" and
403          singlePaired['sParams']['sUnmappedFile'] is True
404        ) or (
405          singlePaired['sPaired'] == "paired" and
406          singlePaired['pParams']['pSettingsType'] == "full" and
407          singlePaired['pParams']['pUnmappedFile'] is True
408        ))
409      </filter>
410      <actions>
411        <conditional name="singlePaired.sPaired">
412          <when value="single">
413            <action type="format">
414              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
415            </action>
416          </when>
417          <when value="paired">
418            <action type="format">
419              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
420            </action>
421          </when>
422        </conditional>
423      </actions>
424    </data>
425    <data format="fastq" name="output_unmapped_reads_r" label="${tool.name} on ${on_string}: unmapped reads (R)">
426      <filter>singlePaired['sPaired'] == "paired"</filter>
427      <filter>singlePaired['pParams']['pSettingsType'] == "full"</filter>
428      <filter>singlePaired['pParams']['pUnmappedFile'] is True</filter>
429      <actions>
430        <conditional name="singlePaired.sPaired">
431          <when value="single">
432            <action type="format">
433              <option type="from_param" name="singlePaired.sInput1" param_attribute="ext" />
434            </action>
435          </when>
436          <when value="paired">
437            <action type="format">
438              <option type="from_param" name="singlePaired.pInput1" param_attribute="ext" />
439            </action>
440          </when>
441        </conditional>
442      </actions>
443    </data>
444  </outputs>
445  <tests>
446    <test>
447      <!--
448      Bowtie command:
449      bowtie -q -p 4 -S +sam-nohead chrM_base test-data/bowtie_in2.fastqsanger > bowtie_out6_u.sam
450      sort bowtie_out6_u.sam > bowtie_out6.sam
451      -p is the number of threads, which is hardcoded above. You need to replace the + with 2 dashes. 
452      chrM_base needs to be the base location/name of the index files.
453      -->
454      <param name="genomeSource" value="indexed" />
455      <!-- this is the backwards-compatible "unique value" for this index, not an actual path -->
456      <param name="index" value="equCab2chrM" />
457      <param name="sPaired" value="single" />
458      <param name="sInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
459      <param name="sSettingsType" value="preSet" />
460      <param name="suppressHeader" value="true" />
461      <output name="output" ftype="sam" file="bowtie_out6.sam" sort="True" />
462    </test>
463    <test>
464      <!--
465      Bowtie command:
466      bowtie-build -f test-data/phiX.fasta phiX_base
467      bowtie -q -X 1000 +ff -p 4 -S +sam-nohead -n 2 -e 70 -l 28 +pairtries 100 +maxbts 800 +best +un bowtie_out8_u.fastq phiX_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > bowtie_out7_u.sam
468      sort bowtie_out7_u.sam > bowtie_out7.sam
469      sort bowtie_out8_u_1.sam > bowtie_out8_1.sam
470      sort bowtie_out8_u_2.sam > bowtie_out8_2.sam
471      Then also need to modify bowtie_out8_1.sam and bowtie_out8_2.sam so that all @ lines come before sequence lines.
472      -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
473      The two unmapped output files will be named bowtie_out8_1.fastq and bowtie_out8_2.fastq.
474      chrM_base is the index files' location/base name. 
475      -->
476      <param name="genomeSource" value="history" />
477      <param name="ownFile" value="phiX.fasta" />
478      <param name="indexSettings" value="indexPreSet" />
479      <param name="sPaired" value="paired" />
480      <param name="pInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
481      <param name="pInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
482      <param name="pMaxInsert" value="1000" />
483      <param name="pMateOrient" value="ff" />
484      <param name="pSettingsType" value="full" />
485      <param name="pSkip" value="0" />
486      <param name="pAlignLimit" value="-1" />
487      <param name="pTrimH" value="0" />
488      <param name="pTrimL" value="0" />
489      <param name="pMismatchSeed" value="2" />
490      <param name="pMismatchQual" value="70" />
491      <param name="pSeedLen" value="28" />
492      <param name="pRounding" value="round" />
493      <param name="pMaqSoapAlign" value="-1" />
494      <param name="pMinInsert" value="0" />
495      <param name="pMaxAlignAttempt" value="100" />
496      <param name="pForwardAlign" value="forward" />
497      <param name="pReverseAlign" value="reverse" />
498      <param name="pTryHard" value="noTryHard" />
499      <param name="pValAlign" value="1" />
500      <param name="pAllValAligns" value="noAllValAligns" />
501      <param name="pSuppressAlign" value="-1" />
502      <param name="pUnmappedFile" value="true" />
503      <param name="pMaxFile" value="false" />
504      <param name="pBest" value="doBest" />
505      <param name="pdMaxBacktracks" value="800" />
506      <param name="pdStrata" value="noStrata" />
507      <param name="pOffrate" value="-1" />
508      <param name="pSeed" value="-1" />
509      <param name="suppressHeader" value="true" />
510      <output name="output" ftype="sam" file="bowtie_out7.sam" sort="True" />
511      <output name="output_unmapped_reads_l" ftype="fastqsanger" file="bowtie_out8_1.fastq" sort="True" />
512      <output name="output_unmapped_reads_r" ftype="fastqsanger" file="bowtie_out8_2.fastq" sort="True" />
513    </test>
514    <!-- start testing of non-sanger variant fastq reads -->
515    <test>
516      <param name="genomeSource" value="history" />
517      <param name="ownFile" value="phiX.fasta" />
518      <param name="indexSettings" value="indexPreSet" />
519      <param name="sPaired" value="paired" />
520      <param name="pInput1" ftype="fastqillumina" value="bowtie_in5.fastqillumina" />
521      <param name="pInput2" ftype="fastqillumina" value="bowtie_in6.fastqillumina" />
522      <param name="pMaxInsert" value="1000" />
523      <param name="pMateOrient" value="ff" />
524      <param name="pSettingsType" value="full" />
525      <param name="pSkip" value="0" />
526      <param name="pAlignLimit" value="-1" />
527      <param name="pTrimH" value="0" />
528      <param name="pTrimL" value="0" />
529      <param name="pMismatchSeed" value="2" />
530      <param name="pMismatchQual" value="70" />
531      <param name="pSeedLen" value="28" />
532      <param name="pRounding" value="round" />
533      <param name="pMaqSoapAlign" value="-1" />
534      <param name="pMinInsert" value="0" />
535      <param name="pMaxAlignAttempt" value="100" />
536      <param name="pForwardAlign" value="forward" />
537      <param name="pReverseAlign" value="reverse" />
538      <param name="pTryHard" value="noTryHard" />
539      <param name="pValAlign" value="1" />
540      <param name="pAllValAligns" value="noAllValAligns" />
541      <param name="pSuppressAlign" value="-1" />
542      <param name="pUnmappedFile" value="true" />
543      <param name="pMaxFile" value="false" />
544      <param name="pBest" value="doBest" />
545      <param name="pdMaxBacktracks" value="800" />
546      <param name="pdStrata" value="noStrata" />
547      <param name="pOffrate" value="-1" />
548      <param name="pSeed" value="-1" />
549      <param name="suppressHeader" value="true" />
550      <output name="output" ftype="sam" file="bowtie_out7.sam" sort="True" />
551      <output name="output_unmapped_reads_l" ftype="fastqillumna" file="bowtie_out8_1.fastqillumina.sorted" sort="True" />
552      <output name="output_unmapped_reads_r" ftype="fastqillumna" file="bowtie_out8_2.fastqillumina.sorted" sort="True" />
553    </test>
554    <test>
555      <param name="genomeSource" value="history" />
556      <param name="ownFile" value="phiX.fasta" />
557      <param name="indexSettings" value="indexPreSet" />
558      <param name="sPaired" value="paired" />
559      <param name="pInput1" ftype="fastqsolexa" value="bowtie_in5.fastqsolexa" />
560      <param name="pInput2" ftype="fastqsolexa" value="bowtie_in6.fastqsolexa" />
561      <param name="pMaxInsert" value="1000" />
562      <param name="pMateOrient" value="ff" />
563      <param name="pSettingsType" value="full" />
564      <param name="pSkip" value="0" />
565      <param name="pAlignLimit" value="-1" />
566      <param name="pTrimH" value="0" />
567      <param name="pTrimL" value="0" />
568      <param name="pMismatchSeed" value="2" />
569      <param name="pMismatchQual" value="70" />
570      <param name="pSeedLen" value="28" />
571      <param name="pRounding" value="round" />
572      <param name="pMaqSoapAlign" value="-1" />
573      <param name="pMinInsert" value="0" />
574      <param name="pMaxAlignAttempt" value="100" />
575      <param name="pForwardAlign" value="forward" />
576      <param name="pReverseAlign" value="reverse" />
577      <param name="pTryHard" value="noTryHard" />
578      <param name="pValAlign" value="1" />
579      <param name="pAllValAligns" value="noAllValAligns" />
580      <param name="pSuppressAlign" value="-1" />
581      <param name="pUnmappedFile" value="true" />
582      <param name="pMaxFile" value="false" />
583      <param name="pBest" value="doBest" />
584      <param name="pdMaxBacktracks" value="800" />
585      <param name="pdStrata" value="noStrata" />
586      <param name="pOffrate" value="-1" />
587      <param name="pSeed" value="-1" />
588      <param name="suppressHeader" value="true" />
589      <output name="output" ftype="sam" file="bowtie_out7.sam" sort="True" />
590      <output name="output_unmapped_reads_l" ftype="fastqsolexa" file="bowtie_out8_1.fastqsolexa.sorted" sort="True" />
591      <output name="output_unmapped_reads_r" ftype="fastqsolexa" file="bowtie_out8_2.fastqsolexa.sorted" sort="True" />
592    </test>
593    <!-- end testing of non-sanger variant fastq reads -->    
594    <test>
595      <!--
596      Bowtie command:
597      bowtie -q -p 4 -S +sam-nohead -n 2 -e 70 -l 28 +maxbts 125 -y -k 1 chrM_base test-data/bowtie_in2.fastqsanger > bowtie_out9_u.sam
598      sort bowtie_out9_u.sam > bowtie_out9.sam
599      -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
600      chrM_base is the index files' location/base name. 
601      -->
602      <param name="genomeSource" value="indexed" />
603      <!-- this is the backwards-compatible "unique value" for this index, not an actual path -->
604      <param name="index" value="equCab2chrM" />
605      <param name="sPaired" value="single" />
606      <param name="sInput1" ftype="fastqsanger" value="bowtie_in2.fastqsanger" />
607      <param name="sSettingsType" value="full" />
608      <param name="sSkip" value="0" />
609      <param name="sAlignLimit" value="-1" />
610      <param name="sTrimH" value="0" />
611      <param name="sTrimL" value="0" />
612      <param name="sMismatchSeed" value="2" />
613      <param name="sMismatchQual" value="70" />
614      <param name="sSeedLen" value="28" />
615      <param name="sRounding" value="round" />
616      <param name="sMaqSoapAlign" value="-1" />
617      <param name="sTryHard" value="doTryHard" />
618      <param name="sValAlign" value="1" />
619      <param name="sAllValAligns" value="noAllValAligns" />
620      <param name="sSuppressAlign" value="-1" />
621      <param name="sUnmappedFile" value="false" />
622      <param name="sMaxFile" value="false" />
623      <param name="sBest" value="noBest" />
624      <param name="snMaxBacktracks" value="125" />
625      <param name="sOffrate" value="-1" />
626      <param name="sSeed" value="-1" />
627      <param name="suppressHeader" value="true" />
628      <output name="output" ftype="sam" file="bowtie_out9.sam" sort="True" />
629    </test>
630    <test>
631      <!--
632      Bowtie command:
633      bowtie-build +offrate 5 +ftabchars 10 +little -f test-data/phiX.fasta phiX_base
634      bowtie -q -X 1000 +ff -p 4 -S +sam-nohead phiX_base -1 test-data/bowtie_in5.fastqsanger -2 test-data/bowtie_in6.fastqsanger > bowtie_out10_u.sam
635      sort bowtie_out10_u.sam > bowtie_out10.sam
636      -p is the number of threads, hardcoded above. You need to replace the + with 2 dashes.
637      chrM_base is the index files' location/base name. 
638      -->
639      <param name="genomeSource" value="history" />
640      <param name="ownFile" value="phiX.fasta" />
641      <param name="indexSettings" value="indexFull" />
642      <param name="autoB" value="auto" />
643      <param name="nodc" value="dc" />
644      <param name="noref" value="ref" />
645      <param name="offrate" value="5" />
646      <param name="ftab" value="10" />
647      <param name="ntoa" value="no" />
648      <param name="endian" value="little" />
649      <param name="seed" value="-1" />
650      <param name="cutoff" value="-1" />
651      <param name="sPaired" value="paired" />
652      <param name="pInput1" ftype="fastqsanger" value="bowtie_in5.fastqsanger" />
653      <param name="pInput2" ftype="fastqsanger" value="bowtie_in6.fastqsanger" />
654      <param name="pMaxInsert" value="1000" />
655      <param name="pMateOrient" value="ff" />
656      <param name="pSettingsType" value="preSet" />
657      <param name="suppressHeader" value="true" />
658      <output name="output" ftype="sam" file="bowtie_out10.sam" sort="True" />
659    </test>
660  </tests>
661
662  <help>
663
664**What it does**
665
666Bowtie_ is a short read aligner designed to be ultrafast and memory-efficient. It is developed by Ben Langmead and Cole Trapnell. Please cite: Langmead B, Trapnell C, Pop M, Salzberg SL. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biology 10:R25.
667
668.. _Bowtie: http://bowtie-bio.sourceforge.net/index.shtml
669
670------
671
672**Know what you are doing**
673
674.. class:: warningmark
675
676There is no such thing (yet) as an automated gearshift in short read mapping. It is all like stick-shift driving in San Francisco. In other words = running this tool with default parameters will probably not give you meaningful results. A way to deal with this is to **understand** the parameters by carefully reading the `documentation`__ and experimenting. Fortunately, Galaxy makes experimenting easy.
677
678 .. __: http://bowtie-bio.sourceforge.net/index.shtml
679
680------
681
682**Input formats**
683
684Bowtie accepts files in Sanger FASTQ format. Use the FASTQ Groomer to prepare your files.
685
686------
687
688**A Note on Built-in Reference Genomes**
689
690Some genomes have multiple variants. If only one "type" of genome is listed, it is the Full version, which means that everything that came in the original genome data download (possibly with mitochondrial and plasmid DNA added if it wasn't already included). The Full version is available for every genome. Some genomes also come in the Canonical variant, which contains only the "canonical" (well-defined) chromosomes or segments, such as chr1-chr22, chrX, chrY, and chrM for human. Other variations include gender. These will come in the canonical form only, so the general Canonical variant is actually Canonical Female and the other is Canonical Male (identical to female excluding chrX).
691
692------
693
694**Outputs**
695
696The output is in SAM format, and has the following columns::
697
698    Column  Description
699  --------  --------------------------------------------------------   
700   1 QNAME  Query (pair) NAME
701   2 FLAG   bitwise FLAG
702   3 RNAME  Reference sequence NAME
703   4 POS    1-based leftmost POSition/coordinate of clipped sequence
704   5 MAPQ   MAPping Quality (Phred-scaled)
705   6 CIGAR  extended CIGAR string
706   7 MRNM   Mate Reference sequence NaMe ('=' if same as RNAME)
707   8 MPOS   1-based Mate POSition
708   9 ISIZE  Inferred insert SIZE
709  10 SEQ    query SEQuence on the same strand as the reference
710  11 QUAL   query QUALity (ASCII-33 gives the Phred base quality)
711  12 OPT    variable OPTional fields in the format TAG:VTYPE:VALUE
712  
713The flags are as follows::
714
715    Flag  Description
716  ------  -------------------------------------
717  0x0001  the read is paired in sequencing
718  0x0002  the read is mapped in a proper pair
719  0x0004  the query sequence itself is unmapped
720  0x0008  the mate is unmapped
721  0x0010  strand of the query (1 for reverse)
722  0x0020  strand of the mate
723  0x0040  the read is the first read in a pair
724  0x0080  the read is the second read in a pair
725  0x0100  the alignment is not primary
726
727It looks like this (scroll sideways to see the entire example)::
728
729  QNAME	FLAG	RNAME	POS	MAPQ	CIAGR	MRNM	MPOS	ISIZE	SEQ	QUAL	OPT
730  HWI-EAS91_1_30788AAXX:1:1:1761:343	4	*	0	0	*	*	0	0	AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG	hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
731  HWI-EAS91_1_30788AAXX:1:1:1578:331	4	*	0	0	*	*	0	0	GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG	hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
732
733-------
734
735**Bowtie settings**
736
737All of the options have a default value. You can change any of them. Most of the options in Bowtie have been implemented here.
738
739------
740
741**Bowtie parameter list**
742
743This is an exhaustive list of Bowtie options:
744
745For indexing (bowtie-build)::
746
747  -a                 No auto behavior. Disable the default behavior where bowtie automatically 
748                     selects values for --bmax/--bmaxdivn/--dcv/--packed parameters according 
749                     to the memory available. [off]
750  --packed           Packing. Use a packed representation for DNA strings. [auto] 
751  --bmax INT         Suffix maximum. The maximum number of suffixes allowed in a block. [auto]
752  --bmaxdivn INT     Suffix maximum fraction. The maximum number of suffixes allowed in a block 
753                     expressed as a fraction of the length of the reference. [4]
754  --dcv INT          Difference-cover sample. Use INT as the period for the difference-cover 
755                     sample. [1024]
756  --nodc INT         No difference-cover sample. Disable the difference-cover sample. [off]
757  -r                 No reference indexes. Do not build the NAME.3.ebwt and NAME.4.ebwt portions 
758                     of the index. Used only for paired-end alignment. [off]
759  -o                 Offrate. How many Burrows-Wheeler rows get marked by the indexer. The 
760                     indexer will mark every 2^INT rows. The marked rows correspond to rows on 
761                     the genome. [5]
762  -t INT             Ftab. The lookup table used to calculate an initial Burrows-Wheeler range 
763                     with respect to the first INT characters of the query. Ftab is 4^INT+1 
764                     bytes. [10]
765  --ntoa             N conversion. Convert Ns to As before building the index. Otherwise, Ns are 
766                     simply excluded from the index and Bowtie will not find alignments that 
767                     overlap them. [off]
768  --big              Endianness. Endianness to use when serializing integers to the index file. [off]
769  --little           Endianness. [--little]
770  --seed INT         Random seed. Use INT as the seed for the pseudo-random number generator. [off]
771  --cutoff INT       Cutoff. Index only the first INT bases of the reference sequences (cumulative 
772                     across sequences) and ignore the rest. [off]
773
774For aligning (bowtie)::
775
776  -s INT             Skip. Do not align the first INT reads or pairs in the input. [off]
777  -u INT             Align limit. Only align the first INT reads/pairs from the input. [no limit]
778  -5 INT             High-quality trim. Trim INT bases from the high-quality (left) end of each 
779                     read before alignment. [0]
780  -3 INT             Low-quality trim. Trim INT bases from the low-quality (right) end of each 
781                     read before alignment. [0]
782  -n INT             Mismatch seed. Maximum number of mismatches permitted in the seed (defined 
783                     with seed length option). Can be 0, 1, 2, or 3. [2]
784  -e INT             Mismatch quality. Maximum permitted total of quality values at mismatched 
785                     read positions. Bowtie rounds quality values to the nearest 10 and saturates 
786                     at 30. [70]
787  -l INT             Seed length. The number of bases on the high-quality end of the read to 
788                     which the -n ceiling applies. Must be at least 5. [28]
789  --nomaqround       Suppress MAQ rounding. Values are internally rounded to the nearest 10 and 
790                     saturate at 30. This options turns off that rounding. [off] 
791  -v INT             MAQ- or SOAP-like alignment policy. This option turns off the default 
792                     MAQ-like alignment policy in favor of a SOAP-like one. End-to-end alignments 
793                     with at most INT mismatches. [off]
794  -I INT             Minimum insert. The minimum insert size for valid paired-end alignments. 
795                     Does checking on untrimmed reads if -5 or -3 is used. [0]
796  -X INT             Maximum insert. The maximum insert size for valid paired-end alignments. 
797                     Does checking on untrimmed reads if -5 or -3 is used. [250]
798  --fr               Mate orientation. The upstream/downstream mate orientations for a valid 
799                     paired-end alignment against the forward reference strand. [--fr]
800  --rf               Mate orientation. [off]
801  --ff               Mate orientation. [off]
802  --pairtries INT    Maximum alignment attempts for paired-end data. [100] 
803  --nofw             No forward aligning. Choosing this option means that Bowtie will not attempt 
804                     to align against the forward reference strand. [off]
805  --norc             No reverse-complement aligning. Setting this will mean that Bowtie will not 
806                     attempt to align against the reverse-complement reference strand. [off]
807  --un FILENAME      Write all reads that could not be aligned to file [off]
808  --max FILENAME     Write all reads with a number of valid alignments exceeding the limit
809                     set with the -m option to file [off]
810  --maxbts INT       Maximum backtracks. The maximum number of backtracks permitted when aligning 
811                     a read in -n 2 or -n 3 mode. [125 without --best] [800 with --best]
812  -y                 Try hard. Try as hard as possible to find valid alignments when they exist, 
813                     including paired-end alignments. [off]
814  --chunkmbs INT     Thread memory. The number of megabytes of memory a given thread is given to 
815                     store path descriptors in --best mode. [32]
816  -k INT             Valid alignments. The number of valid alignments per read or pair. [off] 
817  -a                 All valid alignments. Choosing this means that all valid alignments per read 
818                     or pair will be reported. [off]
819  -m INT             Suppress alignments. Suppress all alignments for a particular read or pair 
820                     if more than INT reportable alignments exist for it. [no limit]
821  --best             Best mode. Make Bowtie guarantee that reported singleton alignments are 
822                     "best" in terms of stratum (the number of mismatches) and quality values at 
823                     mismatched position. [off]
824  --strat…

Large files files are truncated, but you can click here to view the full file