0
|
1
|
|
2 <!-- Author: Johannes T. Roehr -->
|
|
3
|
|
4 <tool id="flexbar2.3" name="Flexbar" version="2.3" force_history_refresh="True">
|
|
5
|
4
|
6 <description>flexible barcode and adapter removal</description>
|
0
|
7
|
|
8 <requirements>
|
5
|
9 <requirement type="binary" version="2.3">flexbar</requirement>
|
0
|
10 </requirements>
|
|
11
|
5
|
12 <version_command>flexbar --version</version_command>
|
0
|
13
|
|
14 <command interpreter="perl">
|
|
15
|
|
16 flexbar.pl flexbar
|
|
17
|
|
18 --threads 1
|
|
19
|
|
20 --reads $reads
|
|
21
|
|
22 #if $cReads2.select == "on":
|
|
23 #if $cReads2.reads2.ext == $reads.ext:
|
|
24 --reads2 $cReads2.reads2
|
|
25 #end if
|
|
26 #end if
|
|
27
|
|
28
|
|
29 #if $reads.ext == "fasta":
|
|
30 --format fasta
|
|
31 #end if
|
|
32 #if $reads.ext == "fastq":
|
|
33 --format fastq
|
|
34 #end if
|
|
35 #if $reads.ext == "fastqsanger":
|
|
36 --format fastq-sanger
|
|
37 #end if
|
|
38 #if $reads.ext == "fastqsolexa":
|
|
39 --format fastq-solexa
|
|
40 #end if
|
|
41 #if $reads.ext == "fastqillumina":
|
|
42 --format fastq-i1.3
|
|
43 #end if
|
|
44 #if $reads.ext == "csfasta":
|
|
45 --format csfasta
|
|
46 #end if
|
|
47 #if $reads.ext == "fastqcssanger":
|
|
48 --format csfastq
|
|
49 #end if
|
|
50
|
|
51
|
|
52 --max-uncalled $maxUncalled
|
|
53 --min-readlength $minReadLen
|
|
54
|
|
55 #if $trimEnds.select == "on":
|
|
56 --pre-trim-left $trimEnds.trimLeft
|
|
57 --pre-trim-right $trimEnds.trimRight
|
|
58 #end if
|
|
59
|
|
60 #if $cTrimPhred.select == "on":
|
|
61 --pre-trim-phred $cTrimPhred.trimPhred
|
|
62 #end if
|
|
63
|
|
64 #if $cTrimLen.select == "on":
|
|
65 --post-trim-length $cTrimLen.trimLen
|
|
66 #end if
|
|
67
|
|
68
|
|
69 #if $cBarcodes.select == "on":
|
|
70 --barcodes $cBarcodes.barcodes
|
|
71
|
|
72 #if $cBarcodes.cbReads.select == "yes":
|
|
73 --barcode-reads $cBarcodes.cbReads.bReads
|
|
74 #end if
|
|
75
|
|
76 #if $cBarcodes.cbReads.select == "no":
|
|
77 $cBarcodes.cbReads.bKeep
|
|
78 #end if
|
|
79
|
|
80 --barcode-trim-end $cBarcodes.bTrimEnd
|
|
81
|
|
82 #if $cBarcodes.cbTailLen.select == "yes":
|
|
83 --barcode-tail-length $cBarcodes.cbTailLen.bTailLen
|
|
84 #end if
|
|
85
|
|
86 #if $cBarcodes.cbMinOverlap.select == "yes":
|
|
87 --barcode-min-overlap $cBarcodes.cbMinOverlap.bMinOverlap
|
|
88 #end if
|
|
89
|
|
90 --barcode-threshold $cBarcodes.bThresh
|
|
91
|
|
92 #if $cBarcodes.cbAlignScores.select == "yes":
|
|
93 --barcode-match $bMatch
|
|
94 --barcode-mismatch $bMismatch
|
|
95 --barcode-gap $bGap
|
|
96 #end if
|
|
97
|
|
98 #end if
|
|
99
|
|
100
|
|
101 #if $cAdapters.select == "yes":
|
|
102
|
|
103 #if $cAdapters.ccAdapters.select == "data":
|
|
104 --adapters $cAdapters.ccAdapters.adaptersData
|
|
105 #end if
|
|
106
|
|
107 #if $cAdapters.ccAdapters.select == "seq":
|
|
108 --adapter-seq $cAdapters.ccAdapters.adapterSeq
|
|
109 #end if
|
|
110
|
|
111 --adapter-trim-end $cAdapters.aTrimEnd
|
|
112
|
|
113 #if $cAdapters.caTailLen.select == "yes":
|
|
114 --adapter-tail-length $cAdapters.caTailLen.aTailLen
|
|
115 #end if
|
|
116
|
|
117 --adapter-min-overlap $cAdapters.aMinOverlap
|
|
118 --adapter-threshold $cAdapters.aThresh
|
|
119
|
|
120 #if $cAdapters.caAlignScores.select == "on":
|
|
121 --adapter-match $aMatch
|
|
122 --adapter-mismatch $aMismatch
|
|
123 --adapter-gap $aGap
|
|
124 #end if
|
|
125
|
|
126 #end if
|
|
127
|
|
128
|
|
129 #if $cLogging.select == "show"
|
|
130 $cLogging.logLevel
|
|
131 $cLogging.noLenDist
|
|
132 $cLogging.remTag
|
|
133 #end if
|
|
134
|
|
135 #if $cLogging.select == "off"
|
|
136 --no-length-dist
|
|
137 #end if
|
|
138
|
|
139
|
|
140 $output $output.id $__new_file_path__ $reads.ext
|
|
141
|
|
142 </command>
|
|
143
|
|
144 <inputs>
|
|
145
|
|
146 <param format="fasta,fastq,fastqsanger,fastqsolexa,fastqillumina,csfasta,fastqcssanger" name="reads" type="data" label="Sequencing reads" optional="false"/>
|
|
147
|
|
148
|
|
149 <conditional name="cReads2">
|
|
150 <param name="select" type="select" label="2nd read set (paired)">
|
|
151 <option value="off" selected="true">Off</option>
|
|
152 <option value="on">On</option>
|
|
153 </param>
|
|
154 <when value="on">
|
|
155 <param format="fasta,fastq,fastqsanger,fastqsolexa,fastqillumina,csfasta,fastqcssanger" name="reads2" type="data" label="Reads 2" optional="false" help="same format as first read set"/>
|
|
156 </when>
|
|
157 </conditional>
|
|
158
|
|
159
|
|
160 <param name="maxUncalled" size="4" type="integer" value="0" label="1) Max uncalled" optional="false" help="allowed uncalled bases per read"/>
|
|
161
|
|
162 <conditional name="trimEnds">
|
|
163 <param name="select" type="select" label="2) Trimming of ends">
|
|
164 <option value="off" selected="true">Off</option>
|
|
165 <option value="on">On</option>
|
|
166 </param>
|
|
167 <when value="on">
|
|
168 <param name="trimLeft" size="4" type="integer" value="0" label="Left" optional="false"/>
|
|
169 <param name="trimRight" size="4" type="integer" value="0" label="Right" optional="false" help="trims specified number of bases from read ends"/>
|
|
170 </when>
|
|
171 </conditional>
|
|
172
|
|
173 <conditional name="cTrimPhred">
|
|
174 <param name="select" type="select" label="3) Phred-trimming">
|
|
175 <option value="off" selected="true">Off</option>
|
|
176 <option value="on">On</option>
|
|
177 </param>
|
|
178 <when value="on">
|
|
179 <param name="trimPhred" size="4" type="integer" value="10" label="Threshold" optional="false" help="trim right end until specified or higher quality reached"/>
|
|
180 </when>
|
|
181 </conditional>
|
|
182
|
|
183
|
|
184 <conditional name="cBarcodes">
|
|
185 <param name="select" type="select" label="4) Barcode detection">
|
|
186 <option value="off" selected="true">Off</option>
|
|
187 <option value="on">On</option>
|
|
188 </param>
|
|
189 <when value="on">
|
|
190 <param format="fasta" name="barcodes" type="data" label="Barcodes" optional="false"/>
|
|
191 <conditional name="cbReads">
|
|
192 <param name="select" type="select" label="Separate barcode reads">
|
|
193 <option value="no" selected="true">No</option>
|
|
194 <option value="yes">Yes</option>
|
|
195 </param>
|
|
196 <when value="yes">
|
|
197 <param format="fasta,fastq,fastqsanger,fastqsolexa,fastqillumina,csfasta,fastqcssanger" name="bReads" type="data" label="Separate barcode reads" optional="false"/>
|
|
198 </when>
|
|
199 <when value="no">
|
|
200 <param name="bKeep" type="select" label="Remove barcodes within reads">
|
|
201 <option value="" selected="true">Yes</option>
|
|
202 <option value="--barcode-keep">No</option>
|
|
203 </param>
|
|
204 </when>
|
|
205 </conditional>
|
|
206 <param name="bTrimEnd" type="select" label="Trim-end mode" optional="false">
|
|
207 <option value="ANY" selected="true">Any</option>
|
|
208 <option value="RIGHT">Right</option>
|
|
209 <option value="RIGHT_TAIL">Right tail</option>
|
|
210 <option value="LEFT">Left</option>
|
|
211 <option value="LEFT_TAIL">Left tail</option>
|
|
212 </param>
|
|
213 <conditional name="cbTailLen">
|
|
214 <param name="select" type="select" label="Change tail length">
|
|
215 <option value="no" selected="true">No</option>
|
|
216 <option value="yes">Yes</option>
|
|
217 </param>
|
|
218 <when value="yes">
|
|
219 <param name="bTailLen" size="4" type="integer" value="10" label="Tail length" optional="false"/>
|
|
220 </when>
|
|
221 </conditional>
|
|
222
|
|
223 <conditional name="cbMinOverlap">
|
|
224 <param name="select" type="select" label="Change min-overlap" help="default: barcode length">
|
|
225 <option value="no" selected="true">No</option>
|
|
226 <option value="yes">Yes</option>
|
|
227 </param>
|
|
228 <when value="yes">
|
|
229 <param name="bMinOverlap" size="4" type="integer" value="8" label="Min-overlap" optional="false"/>
|
|
230 </when>
|
|
231 </conditional>
|
|
232
|
|
233 <param name="bThresh" size="4" type="integer" value="1" label="Threshold" optional="false" help="allowed mismatches and indels per 10 bases"/>
|
|
234
|
|
235 <conditional name="cbAlignScores">
|
|
236 <param name="select" type="select" label="Modify alignment scores">
|
|
237 <option value="no" selected="true">No</option>
|
|
238 <option value="yes">Yes</option>
|
|
239 </param>
|
|
240 <when value="yes">
|
|
241 <param name="bMatch" size="3" type="integer" value="1" label="Match" optional="false"/>
|
|
242 <param name="bMismatch" size="3" type="integer" value="-1" label="Mismatch" optional="false"/>
|
|
243 <param name="bGap" size="3" type="integer" value="-7" label="Gap" optional="false"/>
|
|
244 </when>
|
|
245 </conditional>
|
|
246 </when>
|
|
247 </conditional>
|
|
248
|
|
249
|
|
250 <conditional name="cAdapters">
|
|
251 <param name="select" type="select" label="5) Adapter removal">
|
|
252 <option value="off" selected="true">Off</option>
|
|
253 <option value="on">On</option>
|
|
254 </param>
|
|
255
|
|
256 <when value="on">
|
|
257 <conditional name="ccAdapters">
|
|
258 <param name="select" type="select" label="Adapter source">
|
|
259 <option value="data" selected="true">Fasta</option>
|
|
260 <option value="seq">Sequence</option>
|
|
261 <!-- <option value="file">File</option> -->
|
|
262 </param>
|
|
263 <when value="data">
|
|
264 <param format="fasta" name="adaptersData" type="data" label="Adapters" optional="false"/>
|
|
265 </when>
|
|
266 <when value="seq">
|
|
267 <param name="adapterSeq" size="40" label="Adapter" type="text" value="AAAAAAAAAAAAAA" optional="false"/>
|
|
268 </when>
|
|
269 <!-- <when value="file">
|
|
270 <param name="adaptersFile" type="file" label="Adapters file" optional="false"/>
|
|
271 </when> -->
|
|
272 </conditional>
|
|
273
|
|
274 <param name="aTrimEnd" type="select" label="Trim-end mode" optional="false">
|
|
275 <option value="ANY">Any</option>
|
|
276 <option value="RIGHT" selected="true">Right</option>
|
|
277 <option value="RIGHT_TAIL">Right tail</option>
|
|
278 <option value="LEFT">Left</option>
|
|
279 <option value="LEFT_TAIL">Left tail</option>
|
|
280 </param>
|
|
281
|
|
282 <conditional name="caTailLen">
|
|
283 <param name="select" type="select" label="Change tail length">
|
|
284 <option value="no" selected="true">No</option>
|
|
285 <option value="yes">Yes</option>
|
|
286 </param>
|
|
287 <when value="yes">
|
|
288 <param name="aTailLen" size="4" type="integer" value="10" label="Tail length" optional="false"/>
|
|
289 </when>
|
|
290 </conditional>
|
|
291
|
|
292 <param name="aMinOverlap" size="4" type="integer" value="1" label="Min-overlap" optional="false"/>
|
|
293 <param name="aThresh" size="4" type="integer" value="3" label="Threshold" optional="false" help="allowed mismatches and indels per 10 bases"/>
|
|
294
|
|
295 <conditional name="caAlignScores">
|
|
296 <param name="select" type="select" label="Modify alignment scores">
|
|
297 <option value="no" selected="true">No</option>
|
|
298 <option value="yes">Yes</option>
|
|
299 </param>
|
|
300 <when value="yes">
|
|
301 <param name="aMatch" size="3" type="integer" value="1" label="Match" optional="false"/>
|
|
302 <param name="aMismatch" size="3" type="integer" value="-1" label="Mismatch" optional="false"/>
|
|
303 <param name="aGap" size="3" type="integer" value="-7" label="Gap" optional="false"/>
|
|
304 </when>
|
|
305 </conditional>
|
|
306 </when>
|
|
307 </conditional>
|
|
308
|
|
309
|
|
310 <conditional name="cTrimLen">
|
|
311 <param name="select" type="select" label="6) Trimming to length">
|
|
312 <option value="off" selected="true">Off</option>
|
|
313 <option value="on">On</option>
|
|
314 </param>
|
|
315 <when value="on">
|
|
316 <param name="trimLen" size="4" type="integer" value="30" label="Length" optional="false" help="trim reads to certain length from right"/>
|
|
317 </when>
|
|
318 </conditional>
|
|
319
|
|
320 <param name="minReadLen" size="4" type="integer" value="18" label="7) Minimum read length" optional="false" help="shorter reads are discarded"/>
|
|
321
|
|
322
|
|
323 <conditional name="cLogging">
|
|
324 <param name="select" type="select" label="Logging and tagging options">
|
|
325 <option value="off" selected="true">Off</option>
|
|
326 <option value="show">Show</option>
|
|
327 </param>
|
|
328 <when value="show">
|
|
329 <param name="logLevel" type="select" label="Alignment logging">
|
|
330 <option value="" selected="true">Off</option>
|
|
331 <option value="--log-level ALL">All</option>
|
|
332 <option value="--log-level MOD">Modified</option>
|
|
333 <option value="--log-level TAB">Tabular</option>
|
|
334 </param>
|
|
335
|
|
336 <param name="noLenDist" type="select" label="Read length distribution">
|
|
337 <option value="--no-length-dist" selected="true">Off</option>
|
|
338 <option value="">On</option>
|
|
339 </param>
|
|
340
|
|
341 <param name="remTag" type="select" label="Read tagging">
|
|
342 <option value="" selected="true">Off</option>
|
|
343 <option value="--removal-tag">Removal tags</option>
|
|
344 </param>
|
|
345 </when>
|
|
346 </conditional>
|
|
347
|
|
348 </inputs>
|
|
349
|
|
350 <stdio>
|
|
351 <exit_code range="1:" level="fatal" description="Error!" />
|
|
352 </stdio>
|
|
353
|
|
354 <outputs>
|
|
355 <data format="txt" name="output" metadata_source="reads"/>
|
|
356 </outputs>
|
|
357
|
|
358
|
|
359 <help>
|
|
360 **Flexbar help**
|
|
361
|
|
362 Flexbar_ is a program to preprocess sequencing data. It demultiplexes barcoded runs and removes adapter sequences. Further, basic read trimming and filtering options are provided. Flexbar increases mapping rates and improves genome and transcriptome assemblies. It supports next-generation sequencing data in fasta/q and csfasta/q format from Illumina, Roche 454, and the SOLiD platform.
|
|
363
|
|
364 .. _Flexbar: https://sourceforge.net/projects/flexbar
|
|
365
|
|
366 ------
|
|
367
|
|
368 **Reference**
|
|
369
|
|
370 Matthias Dodt, Johannes T. Roehr, Rina Ahmed, Christoph Dieterich: Flexbar — flexible barcode and adapter processing for next-generation sequencing platforms. Biology 2012, 1(3):895-905.
|
|
371
|
|
372 ------
|
|
373
|
|
374 **Trim-end modes**
|
|
375
|
|
376 **Any:** longer part of read remains
|
|
377
|
|
378 **Left:** align before or at read end, right part remains
|
|
379
|
|
380 **Right:** align after or at read start, left part remains
|
|
381
|
|
382 **Left tail:** consider first n bases, see tail-length options
|
|
383
|
|
384 **Right tail:** use only last n bases of reads in alignment
|
|
385
|
|
386 ------
|
|
387
|
|
388 **Documentation**
|
|
389
|
|
390 .. class:: warningmark
|
|
391
|
|
392 Further documentation is available on the `manual`__ wiki and via the command line help screen.
|
|
393
|
3
|
394 .. __: http://sourceforge.net/p/flexbar/wiki
|
0
|
395 </help>
|
|
396
|
|
397 </tool>
|
|
398
|