comparison galaxy_tmap_tool/tmap_wrapper.xml @ 10:09951b7d29a4

Uploaded galaxy_tmap_tool.tar
author greg
date Thu, 21 Jul 2011 09:54:55 -0400
parents
children
comparison
equal deleted inserted replaced
9:57045525eba1 10:09951b7d29a4
1 <tool id="tmap_wrapper" name="Map with TMAP" version="0.0.1">
2 <description>for Ion Torrent</description>
3 <parallelism method="basic"></parallelism>
4 <command interpreter="python">
5 tmap_wrapper.py
6
7 ## reference source
8 --fileSource=$genomeSource.refGenomeSource
9 #if $genomeSource.refGenomeSource == "history":
10 ##build index on the fly
11 --ref="${genomeSource.ownFile}"
12 --dbkey=$dbkey
13 #else:
14 ##use precomputed indexes
15 --ref="${ filter( lambda x: str( x[0] ) == str( $genomeSource.indices ), $__app__.tool_data_tables[ 'tmap_indexes' ].get_fields() )[0][-1] }"
16 --do_not_build_index
17 #end if
18
19 ## input fastq
20 --fastq=$input
21
22 ## output file
23 --output=$output
24
25 ## run parameters
26 --params=$params.source_select
27 #if $params.source_select != "pre_set":
28 --mapall=$params.mapall.source_select
29 #if $params.mapall.source_select == "true":
30 --threads=$params.mapall.threads
31 --matchScore=$params.mapall.matchScore
32 --mismatchPenalty=$params.mapall.mismatchPenalty
33 --gapOpenPenalty=$params.mapall.gapOpenPenalty
34 --gapExtensPenalty=$params.mapall.gapExtensPenalty
35 --bandWidth=$params.mapall.bandWidth
36 --globalMap=$params.mapall.globalMap
37 --duplicateWindow=$params.mapall.duplicateWindow
38 --scoringThreshold=$params.mapall.scoringThreshold
39 --queueSize=$params.mapall.queueSize
40 --outputFilter=$params.mapall.outputFilter
41 --rgTag=$params.mapall.rgTag.source_select
42 #if $params.mapall.rgTag.source_select == "true":
43 --rgTagID=$params.mapall.rgTag.rgTagID
44 --rgTagCN=$params.mapall.rgTag.rgTagCN
45 --rgTagDS=$params.mapall.rgTag.rgTagDS
46 --rgTagDT=$params.mapall.rgTag.rgTagDT
47 --rgTagLB=$params.mapall.rgTag.rgTagLB
48 --rgTagPI=$params.mapall.rgTag.rgTagPI
49 --rgTagPL=$params.mapall.rgTag.rgTagPL
50 --rgTagPU=$params.mapall.rgTag.rgTagPU
51 --rgTagSM=$params.mapall.rgTag.rgTagSM
52 #end if
53 --filterIndependently=$params.mapall.filterIndependently
54 #end if
55 --map1=$params.map1.source_select
56 #if $params.map1.source_select == "true":
57 --map1SeedLength=$params.map1.map1SeedLength
58 --map1SeedMismatches=$params.map1.map1SeedMismatches
59 --map1Mismatches=$params.map1.map1Mismatches
60 --map1GapOpens=$params.map1.map1GapOpens
61 --map1GapExtensions=$params.map1.map1GapExtensions
62 --map1MaxCALsDeletion=$params.map1.map1MaxCALsDeletion
63 --map1EndIndels=$params.map1.map1EndIndels
64 --map1MaxOptimalCALs=$params.map1.map1MaxOptimalCALs
65 --map1MaxNodes=$params.map1.map1MaxNodes
66 #end if
67 --map2=$params.map2.source_select
68 #if $params.map2.source_select == "true":
69 --map2Coefficient=$params.map2.map2Coefficient
70 --map2SeedIntervalSize=$params.map2.map2SeedIntervalSize
71 --map2ZBest=$params.map2.map2ZBest
72 --map2ReverseTrigger=$params.map2.map2ReverseTrigger
73 #end if
74 --map3=$params.map3.source_select
75 #if $params.map3.source_select == "true":
76 --map3SeedLength=$params.map3.map3SeedLength
77 --map3SeedMaxHits=$params.map3.map3SeedMaxHits
78 --map3SeedWindow=$params.map3.map3SeedWindow
79 --map3HPEnumeration=$params.map3.map3HPEnumeration
80 #end if
81 --MAP1=$params.MAP1.source_select
82 #if $params.MAP1.source_select == "true":
83 --MAP1SeedLength=$params.MAP1.MAP1SeedLength
84 --MAP1SeedMismatches=$params.MAP1.MAP1SeedMismatches
85 --MAP1Mismatches=$params.MAP1.MAP1Mismatches
86 --MAP1GapOpens=$params.MAP1.MAP1GapOpens
87 --MAP1GapExtensions=$params.MAP1.MAP1GapExtensions
88 --MAP1MaxCALsDeletion=$params.MAP1.MAP1MaxCALsDeletion
89 --MAP1EndIndels=$params.MAP1.MAP1EndIndels
90 --MAP1MaxOptimalCALs=$params.MAP1.MAP1MaxOptimalCALs
91 --MAP1MaxNodes=$params.MAP1.MAP1MaxNodes
92 #end if
93 --MAP2=$params.MAP2.source_select
94 #if $params.MAP2.source_select == "true":
95 --MAP2Coefficient=$params.MAP2.MAP2Coefficient
96 --MAP2SeedIntervalSize=$params.MAP2.MAP2SeedIntervalSize
97 --MAP2ZBest=$params.MAP2.MAP2ZBest
98 --MAP2ReverseTrigger=$params.MAP2.MAP2ReverseTrigger
99 #end if
100 --MAP3=$params.MAP3.source_select
101 #if $params.MAP3.source_select == "true":
102 --MAP3SeedLength=$params.MAP3.MAP3SeedLength
103 --MAP3SeedMaxHits=$params.MAP3.MAP3SeedMaxHits
104 --MAP3SeedWindow=$params.MAP3.MAP3SeedWindow
105 --MAP3HPEnumeration=$params.MAP3.MAP3HPEnumeration
106 #end if
107 #else:
108 --threads="4"
109 --map1="false"
110 --map2="false"
111 --map3="false"
112 --MAP1="false"
113 --MAP2="false"
114 --MAP3="false"
115 #end if
116
117 ## suppress output SAM header
118 --suppressHeader=$suppressHeader
119 </command>
120 <requirements>
121 <requirement type='package'>tmap</requirement>
122 </requirements>
123 <inputs>
124 <conditional name="genomeSource">
125 <param name="refGenomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?">
126 <option value="indexed">Use a built-in index</option>
127 <option value="history">Use one from the history</option>
128 </param>
129 <when value="indexed">
130 <param name="indices" type="select" label="Select a reference genome">
131 <options from_data_table="tmap_indexes">
132 <filter type="sort_by" column="3" />
133 <validator type="no_options" message="No indexes are available for the selected input dataset" />
134 </options>
135 </param>
136 </when>
137 <when value="history">
138 <param name="ownFile" type="data" format="fasta" metadata_name="dbkey" label="Select a reference from history" />
139 </when>
140 </conditional>
141 <param name="input" type="data" format="fastqsanger" label="FASTQ file" help="Must have Sanger-scaled quality values with ASCII offset 33" />
142 <conditional name="params">
143 <param name="source_select" type="select" label="TMAP settings to use" help="For most mapping needs use Commonly Used settings. If you want full control use Full Parameter List">
144 <option value="pre_set">Commonly Used</option>
145 <option value="full">Full Parameter List</option>
146 </param>
147 <when value="pre_set" />
148 <when value="full">
149 <conditional name="mapall">
150 <param name="source_select" type="select" label="Global options to use">
151 <option value="false" selected="true">Commonly Used</option>
152 <option value="true">Full Parameter List</option>
153 </param>
154 <when value="false" />
155 <when value="true">
156 <param name="threads" type="integer" value="4" label="The number of threads (-n)" />
157 <param name="matchScore" type="integer" value="5" label="Match score (-A)" />
158 <param name="mismatchPenalty" type="integer" value="3" label="Mismatch penalty (-M)" />
159 <param name="gapOpenPenalty" type="integer" value="3" label="Gap open penalty (-O)" />
160 <param name="gapExtensPenalty" type="integer" value="1" label="Gap extension penalty (-E)" />
161 <param name="bandWidth" type="integer" value="50" label="The band width (-w)" />
162 <param name="globalMap" type="boolean" truevalue="true" falsevalue="false" checked="no" label="Map globally (-g)" help="Map the full read with no soft-clipping" />
163 <param name="duplicateWindow" type="integer" value="128" label="The duplicate window (-W)" help="Remove duplicate alignments from different algorithms within this bp window (-1 to disable)"/>
164 <param name="scoringThreshold" type="integer" value="30" label="The scoring threshold (-T)" help="The score threshold divided by the match score" />
165 <param name="queueSize" type="integer" value="65536" label="The queue size (-q)" help="The queue size for the reads" />
166 <param name="outputFilter" type="integer" value="1" label="The output filter (-a)" help="The output filter (0 - unique best hits, 1 - random best hit, 2 - all best htis, 3 - all alignments)" />
167 <conditional name="rgTag">
168 <param name="source_select" type="select" label="Include Custom Read Group Tags">
169 <option value="false" selected="true">Default</option>
170 <option value="true">Custom</option>
171 </param>
172 <when value="false" />
173 <when value="true">
174 <param name="rgTagID" type="text" value="" label="The Read Group ID (-R)" help="The RG ID used in the RG record in the SAM header" />
175 <param name="rgTagCN" type="text" value="" label="The Read Group CN (-R)" help="The RG CN used in the RG record in the SAM header" />
176 <param name="rgTagDS" type="text" value="" label="The Read Group DS (-R)" help="The RG DS used in the RG record in the SAM header" />
177 <param name="rgTagDT" type="text" value="" label="The Read Group DT (-R)" help="The RG DT used in the RG record in the SAM header" />
178 <param name="rgTagLB" type="text" value="" label="The Read Group LB (-R)" help="The RG LB used in the RG record in the SAM header" />
179 <param name="rgTagPI" type="text" value="" label="The Read Group PI (-R)" help="The RG PI used in the RG record in the SAM header" />
180 <param name="rgTagPL" type="text" value="" label="The Read Group PL (-R)" help="The RG PL used in the RG record in the SAM header" />
181 <param name="rgTagPU" type="text" value="" label="The Read Group PU (-R)" help="The RG PU used in the RG record in the SAM header" />
182 <param name="rgTagSM" type="text" value="" label="The Read Group SM (-R)" help="The RG SM used in the RG record in the SAM header" />
183 </when>
184 </conditional>
185 <param name="filterIndependently" type="boolean" truevalue="true" falsevalue="false" checked="no" label="Filter algorithm independently (-I)" help="apply the output filter for each algorithm separately" />
186 </when>
187 </conditional>
188 <conditional name="map1">
189 <param name="source_select" type="select" label="Map1 Stage One" help="Turn on mapping algorithm #1 in the first stage">
190 <option value="true">Turn On</option>
191 <option value="false" selected="true">Turn Off</option>
192 </param>
193 <when value="true">
194 <param name="map1SeedLength" type="integer" value="32" label="The k-mer length to seed CALs (-1 to disable) (-l)" />
195 <param name="map1SeedMismatches" type="integer" value="3" label="The maximum number of mismatches in the seed (-s) " />
196 <param name="map1Mismatches" type="float" value="2" label="The maximum number of or (read length) fraction of mismatches (-m) " />
197 <param name="map1GapOpens" type="float" value="1" label="The maximum number of or (read length) fraction of indel starts (-o)" />
198 <param name="map1GapExtensions" type="float" value="6" label="The maximum number of or (read length) fraction of indel extensions (-e)" />
199 <param name="map1MaxCALsDeletion" type="integer" value="10" label="The maximum number of CALs to extend a deletion (-d)" />
200 <param name="map1EndIndels" type="integer" value="5" label="Indels are not allowed within this number of bps from the end of the read (-i)" />
201 <param name="map1MaxOptimalCALs" type="integer" value="32" label="Stop searching when INT optimal CALs have been found (-b)" />
202 <param name="map1MaxNodes" type="integer" value="2000000" label="The maximum number of alignment nodes (-Q)" />
203 </when>
204 <when value="false" />
205 </conditional>
206 <conditional name="map2">
207 <param name="source_select" type="select" label="Map2 Stage One" help="Turn on mapping algorithm #2 in the first stage">
208 <option value="true">Turn On</option>
209 <option value="false" selected="true">Turn Off</option>
210 </param>
211 <when value="true">
212 <param name="map2Coefficient" type="float" value="5.5" label="The coefficient of length-threshold adjustment (-c)" />
213 <param name="map2SeedIntervalSize" type="integer" value="3" label="The maximum seeding interval size (-S)" />
214 <param name="map2ZBest" type="integer" value="1" label="Keep the z-best nodes during prefix trie traversal (-b)" />
215 <param name="map2ReverseTrigger" type="integer" value="5" label="The # seeds to trigger reverse alignment (-N)" />
216 </when>
217 <when value="false" />
218 </conditional>
219 <conditional name="map3">
220 <param name="source_select" type="select" label="Map3 Stage One" help="Turn on mapping algorithm #3 in the first stage">
221 <option value="true">Turn On</option>
222 <option value="false" selected="true">Turn Off</option>
223 </param>
224 <when value="true">
225 <param name="map3SeedLength" type="integer" value="-1" label="The k-mer length to seed CALs (-1 tunes to the genome size) (-l)" />
226 <param name="map3SeedMaxHits" type="integer" value="8" label="The maximum number of hits returned by a seed (-S)" />
227 <param name="map3SeedWindow" type="integer" value="50" label="The window of bases in which to group seeds (-b)" />
228 <param name="map3HPEnumeration" type="integer" value="0" label="The single homopolymer error difference for enumeration (-H)" />
229 </when>
230 <when value="false" />
231 </conditional>
232 <conditional name="MAP1">
233 <param name="source_select" type="select" label="Map1 Stage Two" help="Turn on mapping algorithm #1 in the second stage">
234 <option value="true">Turn On</option>
235 <option value="false" selected="true">Turn Off</option>
236 </param>
237 <when value="true">
238 <param name="MAP1SeedLength" type="integer" value="32" label="The k-mer length to seed CALs (-1 to disable) (-l)" />
239 <param name="MAP1SeedMismatches" type="integer" value="3" label="The maximum number of mismatches in the seed (-s) " />
240 <param name="MAP1Mismatches" type="float" value="2" label="The maximum number of or (read length) fraction of mismatches (-m) " />
241 <param name="MAP1GapOpens" type="float" value="1" label="The maximum number of or (read length) fraction of indel starts (-o)" />
242 <param name="MAP1GapExtensions" type="float" value="6" label="The maximum number of or (read length) fraction of indel extensions (-e)" />
243 <param name="MAP1MaxCALsDeletion" type="integer" value="10" label="The maximum number of CALs to extend a deletion (-d)" />
244 <param name="MAP1EndIndels" type="integer" value="5" label="Indels are not allowed within this number of bps from the end of the read (-i)" />
245 <param name="MAP1MaxOptimalCALs" type="integer" value="32" label="Stop searching when INT optimal CALs have been found (-b)" />
246 <param name="MAP1MaxNodes" type="integer" value="2000000" label="The maximum number of alignment nodes (-Q)" />
247 </when>
248 <when value="false" />
249 </conditional>
250 <conditional name="MAP2">
251 <param name="source_select" type="select" label="Map2 Stage Two" help="Turn on mapping algorithm #2 in the second stage">
252 <option value="true">Turn On</option>
253 <option value="false" selected="true">Turn Off</option>
254 </param>
255 <when value="true">
256 <param name="MAP2Coefficient" type="float" value="5.5" label="The coefficient of length-threshold adjustment (-c)" />
257 <param name="MAP2SeedIntervalSize" type="integer" value="3" label="The maximum seeding interval size (-S)" />
258 <param name="MAP2ZBest" type="integer" value="1" label="Keep the z-best nodes during prefix trie traversal (-b)" />
259 <param name="MAP2ReverseTrigger" type="integer" value="5" label="The # seeds to trigger reverse alignment (-N)" />
260 </when>
261 <when value="false" />
262 </conditional>
263 <conditional name="MAP3">
264 <param name="source_select" type="select" label="Map3 Stage Two" help="Turn on mapping algorithm #3 in the second stage">
265 <option value="true">Turn On</option>
266 <option value="false" selected="true">Turn Off</option>
267 </param>
268 <when value="true">
269 <param name="MAP3SeedLength" type="integer" value="-1" label="The k-mer length to seed CALs (-1 tunes to the genome size) (-l)" />
270 <param name="MAP3SeedMaxHits" type="integer" value="8" label="The maximum number of hits returned by a seed (-S)" />
271 <param name="MAP3SeedWindow" type="integer" value="50" label="The window of bases in which to group seeds (-b)" />
272 <param name="MAP3HPEnumeration" type="integer" value="0" label="The single homopolymer error difference for enumeration (-H)" />
273 </when>
274 <when value="false" />
275 </conditional>
276 </when>
277 </conditional>
278 <param name="suppressHeader" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Suppress the header in the output SAM file" help="TMAP produces SAM with several lines of header information" />
279 </inputs>
280 <outputs>
281 <data format="sam" name="output" label="${tool.name} on ${on_string}: mapped reads">
282 <actions>
283 <conditional name="genomeSource.refGenomeSource">
284 <when value="indexed">
285 <action type="metadata" name="dbkey">
286 <option type="from_data_table" name="tmap_indexes" column="0">
287 <filter type="param_value" ref="genomeSource.indices" column="1"/>
288 </option>
289 </action>
290 </when>
291 </conditional>
292 </actions>
293 </data>
294 </outputs>
295 <help>
296
297 **What it does**
298
299 TMAP is a fast light-weight tool that aligns DNA sequences (small queries) to a sequence database (large sequences), such as the human reference genome. TMAP follows a two-stage approach, with a set of algorithms and associated settings for each stage. If there are no mappings for a read by applying the algorithms in the first stage, then the algorithms in the second stage are applied. For example, a set of algorithms to quickly align near-perfect reads may be used in the first stage, while a set of sensitive algorithms may be used to map difficult reads in the second stage.
300
301 It combines multiple mapping algorithms to give sensitive and accurate alignments quickly. It uses three core algorithms, BWA-short, BWA-long, and a variant of the SSAHA algorithm. These algorithms are described in the following publications:
302 - Li, H. and Durbin, R. (2009). Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics, 25, 1754–1760.
303 - Li, H. and Durbin, R. (2010). Fast and accurate long-read alignment with Burrows-Wheeler
304 - Ning, Z., Cox, A., and Mullikin, J. (2001). SSAHA: a fast search method for large DNA databases. Genome Res., 11, 1725–1729.
305
306 ------
307
308 **Know what you are doing**
309
310 .. class:: warningmark
311
312 There 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.
313
314 .. __: http://www.iontorrent.com/
315
316 ------
317
318 **Input formats**
319
320 TMAP accepts files in Sanger FASTQ format. Use the FASTQ Groomer to prepare your files.
321
322 ------
323
324 **A Note on Built-in Reference Genomes**
325
326 Some 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).
327
328 ------
329
330 **Outputs**
331
332 The output is in SAM format, and has the following columns::
333
334 Column Description
335 -------- --------------------------------------------------------
336 1 QNAME Query (pair) NAME
337 2 FLAG bitwise FLAG
338 3 RNAME Reference sequence NAME
339 4 POS 1-based leftmost POSition/coordinate of clipped sequence
340 5 MAPQ MAPping Quality (Phred-scaled)
341 6 CIGAR extended CIGAR string
342 7 MRNM Mate Reference sequence NaMe ('=' if same as RNAME)
343 8 MPOS 1-based Mate POSition
344 9 ISIZE Inferred insert SIZE
345 10 SEQ query SEQuence on the same strand as the reference
346 11 QUAL query QUALity (ASCII-33 gives the Phred base quality)
347 12 OPT variable OPTional fields in the format TAG:VTYPE:VALU
348
349 The flags are as follows::
350
351 Flag Description
352 ------ -------------------------------------
353 0x0001 the read is paired in sequencing
354 0x0002 the read is mapped in a proper pair
355 0x0004 the query sequence itself is unmapped
356 0x0008 the mate is unmapped
357 0x0010 strand of the query (1 for reverse)
358 0x0020 strand of the mate
359 0x0040 the read is the first read in a pair
360 0x0080 the read is the second read in a pair
361 0x0100 the alignment is not primary
362
363 It looks like this (scroll sideways to see the entire example)::
364
365 QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT
366 HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
367 HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
368
369 -------
370
371 **TMAP settings**
372
373 All of the options have a default value. You can change most of them. Most of the options in TMAP have been implemented here.
374
375 ------
376
377 **TMAP parameter list**
378
379 This is an exhaustive list of TMAP options implemented here:
380
381 For the **global** options::
382
383 -A INT score for a match [5]
384 -M INT the mismatch penalty [3]
385 -O INT the indel start penalty [3]
386 -E INT the indel extend penalty [1]
387 -X INT the flow score penalty [7]
388 -w INT the band width [50]
389 -g map the full read [false]
390 -W INT remove duplicate alignments from different algorithms within this bp window (-1 to disable) [128]
391 -T INT score threshold divided by the match score [30]
392 -q INT the queue size for the reads (-1 disables) [65536]
393 -n INT the number of threads [1]
394 -a INT output filter [1]
395 0 - unique best hits
396 1 - random best hit
397 2 - all best hits
398 3 - all alignments
399 -R STRING the RG tags to add to the SAM header [(null)]
400
401 For **mapall** options::
402
403 -I apply the output filter for each algorithm separately [false]
404
405 For **map1** options::
406
407 -l INT the k-mer length to seed CALs (-1 to disable) [32]
408 -s INT maximum number of mismatches in the seed [3]
409 -m NUM maximum number of or (read length) fraction of mismatches [number: 2]
410 -o NUM maximum number of or (read length) fraction of indel starts [number: 1]
411 -e NUM maximum number of or (read length) fraction of indel extensions [number: 6]
412 -d INT the maximum number of CALs to extend a deletion [10]
413 -i INT indels are not allowed within INT number of bps from the end of the read [5]
414 -b INT stop searching when INT optimal CALs have been found [32]
415 -Q INT maximum number of alignment nodes [2000000]
416
417 For **map2** options::
418
419 -c FLOAT coefficient of length-threshold adjustment [5.5]
420 -S INT maximum seeding interval size [3]
421 -b INT Z-best [1]
422 -N INT # seeds to trigger reverse alignment [5]
423
424 For **map3** options::
425
426 -l INT the k-mer length to seed CALs (-1 tunes to the genome size) [-1]
427 -S INT the maximum number of hits returned by a seed [8]
428 -b INT the window of bases in which to group seeds [50]
429 -H INT single homopolymer error difference for enumeration [0]
430
431 </help>
432 </tool>
433
434