Mercurial > repos > iuc > fastp
comparison fastp.xml @ 13:dbfc505896e9 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/fastp commit 78e6d7efcb74d3baa4e5611a7be4ad82b51bfe0d
author | iuc |
---|---|
date | Tue, 15 Oct 2024 11:45:19 +0000 |
parents | d60c3f704da0 |
children |
comparison
equal
deleted
inserted
replaced
12:d60c3f704da0 | 13:dbfc505896e9 |
---|---|
1 <tool id="fastp" name="fastp" version="@TOOL_VERSION@+galaxy1" profile="23.1"> | 1 <tool id="fastp" name="fastp" version="@TOOL_VERSION@+galaxy2" profile="23.1"> |
2 <description>fast all-in-one preprocessing for FASTQ files</description> | 2 <description>fast all-in-one preprocessing for FASTQ files</description> |
3 <macros> | 3 <macros> |
4 <import>macros.xml</import> | 4 <import>macros.xml</import> |
5 </macros> | 5 </macros> |
6 <expand macro="biotools" /> | 6 <expand macro="biotools" /> |
11 <command detect_errors="exit_code"><![CDATA[ | 11 <command detect_errors="exit_code"><![CDATA[ |
12 #import re | 12 #import re |
13 | 13 |
14 ## Link input files | 14 ## Link input files |
15 | 15 |
16 #set ext = '.fastq' | 16 #set ext = '.fastqsanger' |
17 | 17 |
18 #if $single_paired.single_paired_selector == 'paired_collection': | 18 #if $single_paired.single_paired_selector == 'paired_collection' |
19 #if $single_paired.paired_input.forward.is_of_type('fastq.gz'): | 19 #if $single_paired.paired_input.forward.is_of_type('fastqsanger.gz') |
20 #set ext = '.fastq.gz' | 20 #set ext = '.fastqsanger.gz' |
21 #elif $single_paired.paired_input.forward.is_of_type('fastqillumina.gz') | |
22 #set ext = '.fastqillumina.gz' | |
21 #end if | 23 #end if |
22 #set $in1 = $single_paired.paired_input.forward | 24 #set $in1 = $single_paired.paired_input.forward |
23 #set $in2 = $single_paired.paired_input.reverse | 25 #set $in2 = $single_paired.paired_input.reverse |
24 #set $in1_name = re.sub('[^\w\-\s]', '_', str($single_paired.paired_input.name)) + $ext | 26 #set $in1_name = re.sub('[^\w\-\s]', '_', str($single_paired.paired_input.name)) + $ext |
25 #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_%s" % ($single_paired.paired_input.name, "R2"))) + $ext | 27 #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_%s" % ($single_paired.paired_input.name, "R2"))) + $ext |
26 #set out1 = $output_paired_coll.forward | 28 #set out1 = $output_paired_coll.forward |
27 #set out2 = $output_paired_coll.reverse | 29 #set out2 = $output_paired_coll.reverse |
28 ln -sf '$in1' '$in1_name' && | 30 ln -sf '$in1' '$in1_name' && |
29 ln -sf '$in2' '$in2_name' && | 31 ln -sf '$in2' '$in2_name' && |
30 #else | 32 #else |
31 #if $in1.is_of_type('fastq.gz') | 33 #if $in1.is_of_type('fastqsanger.gz') |
32 #set ext = '.fastq.gz' | 34 #set ext = '.fastqsanger.gz' |
35 #elif $in1.is_of_type('fastqillumina.gz') | |
36 #set ext = '.fastqillumina.gz' | |
33 #end if | 37 #end if |
34 | 38 |
35 #set $in1_name = re.sub('[^\w\-\s]', '_', str($in1.element_identifier)) + $ext | 39 #set $in1_name = re.sub('[^\w\-\s]', '_', str($in1.element_identifier)) + $ext |
36 ln -sf '$in1' '$in1_name' && | 40 ln -sf '$in1' '$in1_name' && |
37 | 41 |
39 #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_R2" % $in2.element_identifier)) + $ext | 43 #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_R2" % $in2.element_identifier)) + $ext |
40 ln -sf '$in2' '$in2_name' && | 44 ln -sf '$in2' '$in2_name' && |
41 #end if | 45 #end if |
42 #end if | 46 #end if |
43 | 47 |
48 cp '$c1' galaxy.json && | |
44 | 49 |
45 ## Run fastp | 50 ## Run fastp |
46 | 51 |
47 fastp | 52 fastp |
48 | 53 |
52 #if $in1.is_of_type('fastqillumina', 'fastqsolexa', 'fastqillumina.gz', 'fastqsolexa.gz'): | 57 #if $in1.is_of_type('fastqillumina', 'fastqsolexa', 'fastqillumina.gz', 'fastqsolexa.gz'): |
53 --phred64 | 58 --phred64 |
54 #end if | 59 #end if |
55 | 60 |
56 -i '$in1_name' | 61 -i '$in1_name' |
57 -o first${ext} | 62 |
58 | 63 ## Merge reads |
59 #if str($single_paired.single_paired_selector).startswith('paired'): | 64 |
65 #if str($single_paired.single_paired_selector).startswith('paired') | |
60 -I '$in2_name' | 66 -I '$in2_name' |
61 -O second${ext} | 67 #if $single_paired.merge_reads.merge |
62 #end if | 68 $single_paired.merge_reads.merge |
63 | 69 --merged_out '$merged_reads' |
70 #if $single_paired.merge_reads.include_unmerged | |
71 $single_paired.merge_reads.include_unmerged | |
72 #else | |
73 --out1 '$unmerged_out1' | |
74 --out2 '$unmerged_out2' | |
75 --unpaired1 '$unpaired1' | |
76 --unpaired2 '$unpaired2' | |
77 #end if | |
78 #else | |
79 -o first${ext} | |
80 -O second${ext} | |
81 #end if | |
82 #else | |
83 -o first${ext} | |
84 #end if | |
64 | 85 |
65 ## Adapter Trimming Options | 86 ## Adapter Trimming Options |
66 | 87 |
67 $single_paired.adapter_trimming_options.disable_adapter_trimming | 88 $single_paired.adapter_trimming_options.disable_adapter_trimming |
68 | 89 |
198 | 219 |
199 ## Base correction by overlap analysis options | 220 ## Base correction by overlap analysis options |
200 | 221 |
201 $read_mod_options.base_correction_options.correction | 222 $read_mod_options.base_correction_options.correction |
202 | 223 |
203 && | 224 #if str($single_paired.single_paired_selector).startswith('single') |
204 | 225 && |
205 mv first${ext} '${out1}' | 226 mv first${ext} '${out1}' |
206 #if str($single_paired.single_paired_selector).startswith('paired'): | 227 #elif str($single_paired.single_paired_selector).startswith('paired') and not $single_paired.merge_reads.merge: |
228 && | |
229 mv first${ext} '${out1}' | |
207 && | 230 && |
208 mv second${ext} '${out2}' | 231 mv second${ext} '${out2}' |
209 #end if | 232 #end if |
210 ]]></command> | 233 ]]></command> |
234 <configfiles> | |
235 <configfile name="c1"> | |
236 #set $ext1 = "fastqsanger" | |
237 #set $ext2 = "fastqsanger" | |
238 #if str($single_paired.single_paired_selector) == "single" | |
239 #if $in1.ext.endswith("gz") | |
240 #set $ext1 = "fastqsanger.gz" | |
241 #end if | |
242 #elif str($single_paired.single_paired_selector) == "paired" | |
243 #if $in1.ext.endswith("gz") | |
244 #set $ext1 = "fastqsanger.gz" | |
245 #end if | |
246 #if $in2.ext.endswith("gz") | |
247 #set $ext2 = "fastqsanger.gz" | |
248 #end if | |
249 #else | |
250 #if $paired_input.forward.ext.endswith("gz") | |
251 #set $ext1 = "fastqsanger.gz" | |
252 #end if | |
253 #if $paired_input.reverse.ext.endswith("gz") | |
254 #set $ext2 = "fastqsanger.gz" | |
255 #end if | |
256 #end if | |
257 { | |
258 "out1": {"ext": "$ext1"}, | |
259 "out2": {"ext": "$ext2"}, | |
260 "merged_reads": {"ext": "$ext1"}, | |
261 "unmerged_out1": {"ext": "$ext1"}, | |
262 "unmerged_out2": {"ext": "$ext2"}, | |
263 "unpaired1": {"ext": "$ext1"}, | |
264 "unpaired2": {"ext": "$ext2"} | |
265 } | |
266 </configfile> | |
267 </configfiles> | |
211 <inputs> | 268 <inputs> |
212 <conditional name="single_paired"> | 269 <conditional name="single_paired"> |
213 <param name="single_paired_selector" type="select" label="Single-end or paired reads"> | 270 <param name="single_paired_selector" type="select" label="Single-end or paired reads"> |
214 <option value="single" selected="true">Single-end</option> | 271 <option value="single" selected="true">Single-end</option> |
215 <option value="paired">Paired</option> | 272 <option value="paired">Paired</option> |
221 <expand macro="global_trimming_options" /> | 278 <expand macro="global_trimming_options" /> |
222 </when> | 279 </when> |
223 <when value="paired"> | 280 <when value="paired"> |
224 <expand macro="in" read_number="1" argument="-i"/> | 281 <expand macro="in" read_number="1" argument="-i"/> |
225 <expand macro="in" read_number="2" argument="-I"/> | 282 <expand macro="in" read_number="2" argument="-I"/> |
283 <expand macro="merge_reads" /> | |
226 <expand macro="adapter_trimming_options"> | 284 <expand macro="adapter_trimming_options"> |
227 <expand macro="adapter_sequence" read_number="2"/> | 285 <expand macro="adapter_sequence" read_number="2"/> |
228 <expand macro="detect_adapter_for_pe" /> | 286 <expand macro="detect_adapter_for_pe" /> |
229 </expand> | 287 </expand> |
230 <expand macro="global_trimming_options_paired" /> | 288 <expand macro="global_trimming_options_paired" /> |
231 </when> | 289 </when> |
232 <when value="paired_collection"> | 290 <when value="paired_collection"> |
233 <param name="paired_input" type="data_collection" format="fastq,fastq.gz" label="Select paired collection(s)" collection_type="paired"/> | 291 <param name="paired_input" type="data_collection" format="fastqsanger,fastqsanger.gz,fastqillumina,fastqillumina.gz" label="Select paired collection(s)" collection_type="paired"/> |
292 <expand macro="merge_reads" /> | |
234 <expand macro="adapter_trimming_options"> | 293 <expand macro="adapter_trimming_options"> |
235 <expand macro="adapter_sequence" read_number="2"/> | 294 <expand macro="adapter_sequence" read_number="2"/> |
236 <expand macro="detect_adapter_for_pe" /> | 295 <expand macro="detect_adapter_for_pe" /> |
237 </expand> | 296 </expand> |
238 <expand macro="global_trimming_options_paired" /> | 297 <expand macro="global_trimming_options_paired" /> |
313 </section> | 372 </section> |
314 </section> | 373 </section> |
315 | 374 |
316 <section name="output_options" title="Output Options" expanded="False"> | 375 <section name="output_options" title="Output Options" expanded="False"> |
317 <param name="report_html" type="boolean" truevalue="True" falsevalue="False" checked="True" label="Output HTML report" help="fastp provides a QC report for the data Before and After filtering within a single HTML page, which enables comparison of the quality statistics changed by the preprocessing step directly"/> | 376 <param name="report_html" type="boolean" truevalue="True" falsevalue="False" checked="True" label="Output HTML report" help="fastp provides a QC report for the data Before and After filtering within a single HTML page, which enables comparison of the quality statistics changed by the preprocessing step directly"/> |
318 <param name="report_json" type="boolean" truevalue="True" falsevalue="False" checked="False" label="Output JSON report" help="The JSON report contains all the data visualized in the HTML report. The format of the JSON report is manually optimized to be easily readable by humans and is compatible with MultiQC"/> | 377 <param name="report_json" type="boolean" truevalue="True" falsevalue="False" checked="True" label="Output JSON report" help="The JSON report contains all the data visualized in the HTML report. The format of the JSON report is manually optimized to be easily readable by humans and is compatible with MultiQC"/> |
319 </section> | 378 </section> |
320 </inputs> | 379 </inputs> |
321 | 380 |
322 <outputs> | 381 <outputs> |
323 <data name="out1" format_source="in1" label="${tool.name} on ${on_string}: Read 1 output"> | 382 <data name="out1" format="auto" label="${tool.name} on ${on_string}: Read 1 output"> |
324 <filter>single_paired['single_paired_selector'] in ["single", "paired"]</filter> | 383 <filter>single_paired['single_paired_selector'] in ["single", "paired"] and not single_paired['merge_reads']['merge']</filter> |
325 </data> | 384 </data> |
326 <data name="out2" format_source="in2" label="${tool.name} on ${on_string}: Read 2 output"> | 385 <data name="out2" format="auto" label="${tool.name} on ${on_string}: Read 2 output"> |
327 <filter>single_paired['single_paired_selector'] == "paired"</filter> | 386 <filter>single_paired['single_paired_selector'] == "paired" and not single_paired['merge_reads']['merge']</filter> |
328 </data> | 387 </data> |
329 <collection name="output_paired_coll" type="paired" format_source="paired_input['forward']" label="${tool.name} on ${on_string}: Paired-end output"> | 388 <collection name="output_paired_coll" type="paired" format_source="paired_input['forward']" label="${tool.name} on ${on_string}: Paired-end output"> |
330 <filter>single_paired['single_paired_selector'] == "paired_collection"</filter> | 389 <filter>single_paired['single_paired_selector'] == "paired_collection" and not single_paired['merge_reads']['merge']</filter> |
331 </collection> | 390 </collection> |
332 <data name="report_html" format="html" from_work_dir="fastp.html" label="${tool.name} on ${on_string}: HTML report"> | 391 <data name="report_html" format="html" from_work_dir="fastp.html" label="${tool.name} on ${on_string}: HTML report"> |
333 <filter>output_options['report_html'] is True</filter> | 392 <filter>output_options['report_html'] is True</filter> |
334 </data> | 393 </data> |
335 <data name="report_json" format="json" from_work_dir="fastp.json" label="${tool.name} on ${on_string}: JSON report"> | 394 <data name="report_json" format="json" from_work_dir="fastp.json" label="${tool.name} on ${on_string}: JSON report"> |
336 <filter>output_options['report_json'] is True</filter> | 395 <filter>output_options['report_json'] is True</filter> |
337 </data> | 396 </data> |
397 <data name="merged_reads" format="auto" label="${tool.name} on ${on_string}: Merged reads"> | |
398 <filter>single_paired['single_paired_selector'] in ["paired", "paired_collection"] and single_paired['merge_reads']['merge']</filter> | |
399 </data> | |
400 <data name="unmerged_out1" format="auto" label="${tool.name} on ${on_string}: Unmerged filtered reads1"> | |
401 <filter>single_paired['single_paired_selector'] in ["paired", "paired_collection"] and single_paired['merge_reads']['merge'] and not single_paired['merge_reads']['include_unmerged']</filter> | |
402 </data> | |
403 <data name="unmerged_out2" format="auto" label="${tool.name} on ${on_string}: Unmerged filtered reads2"> | |
404 <filter>single_paired['single_paired_selector'] in ["paired", "paired_collection"] and single_paired['merge_reads']['merge'] and not single_paired['merge_reads']['include_unmerged']</filter> | |
405 </data> | |
406 <data name="unpaired1" format="auto" label="${tool.name} on ${on_string}: Unmerged unfiltered reads1"> | |
407 <filter>single_paired['single_paired_selector'] in ["paired", "paired_collection"] and single_paired['merge_reads']['merge'] and not single_paired['merge_reads']['include_unmerged']</filter> | |
408 </data> | |
409 <data name="unpaired2" format="auto" label="${tool.name} on ${on_string}: Unmerged unfiltered reads2"> | |
410 <filter>single_paired['single_paired_selector'] in ["paired", "paired_collection"] and single_paired['merge_reads']['merge'] and not single_paired['merge_reads']['include_unmerged']</filter> | |
411 </data> | |
338 </outputs> | 412 </outputs> |
339 | 413 |
340 <tests> | 414 <tests> |
341 <!-- 1. Ensure default output works --> | 415 <!-- 1. Ensure default output works --> |
342 <test expect_num_outputs="2"> | 416 <test expect_num_outputs="3"> |
343 <param name="in1" ftype="fastqsanger" value="R1.fq"/> | 417 <param name="in1" ftype="fastqsanger" value="R1.fq"/> |
344 <param name="single_paired_selector" value="single"/> | 418 <param name="single_paired_selector" value="single"/> |
345 <output name="out1" ftype="fastqsanger" file="out1.fq"/> | 419 <output name="out1" ftype="fastqsanger" file="out1.fq"/> |
346 <output name="report_html"> | 420 <output name="report_html"> |
421 <assert_contents> | |
422 <has_text text="fastp report"/> | |
423 </assert_contents> | |
424 </output> | |
425 <output name="report_json"> | |
347 <assert_contents> | 426 <assert_contents> |
348 <has_text text="fastp report"/> | 427 <has_text text="fastp report"/> |
349 </assert_contents> | 428 </assert_contents> |
350 </output> | 429 </output> |
351 </test> | 430 </test> |
356 <collection type="paired"> | 435 <collection type="paired"> |
357 <element name="forward" value="bwa-mem-fastq1.fq" ftype="fastqsanger" /> | 436 <element name="forward" value="bwa-mem-fastq1.fq" ftype="fastqsanger" /> |
358 <element name="reverse" value="bwa-mem-fastq2.fq" ftype="fastqsanger" /> | 437 <element name="reverse" value="bwa-mem-fastq2.fq" ftype="fastqsanger" /> |
359 </collection> | 438 </collection> |
360 </param> | 439 </param> |
440 <param name="report_json" value="False" /> | |
361 <output name="report_html"> | 441 <output name="report_html"> |
362 <assert_contents> | 442 <assert_contents> |
363 <has_text text="fastp report"/> | 443 <has_text text="fastp report"/> |
364 </assert_contents> | 444 </assert_contents> |
365 </output> | 445 </output> |
368 <element name="reverse" value="out_bwa2.fq" ftype="fastqsanger"/> | 448 <element name="reverse" value="out_bwa2.fq" ftype="fastqsanger"/> |
369 </output_collection> | 449 </output_collection> |
370 </test> | 450 </test> |
371 <!-- 3. Ensure custom adapter works --> | 451 <!-- 3. Ensure custom adapter works --> |
372 <test expect_num_outputs="2"> | 452 <test expect_num_outputs="2"> |
373 <param name="in1" ftype="fastq" value="R1.fq"/> | 453 <param name="in1" ftype="fastqsanger" value="R1.fq"/> |
374 <param name="single_paired_selector" value="single"/> | 454 <param name="single_paired_selector" value="single"/> |
375 <param name="adapter_sequence1" value="ATCG"/> | 455 <param name="adapter_sequence1" value="ATCG"/> |
376 <output name="out1" ftype="fastq" file="out_a.fq"/> | 456 <param name="report_json" value="False" /> |
457 <output name="out1" ftype="fastqsanger" file="out_a.fq"/> | |
377 </test> | 458 </test> |
378 <!-- 4. Ensure UMI processing works --> | 459 <!-- 4. Ensure UMI processing works --> |
379 <test expect_num_outputs="2"> | 460 <test expect_num_outputs="2"> |
380 <param name="in1" ftype="fastq" value="R1.fq"/> | 461 <param name="in1" ftype="fastqsanger" value="R1.fq"/> |
381 <param name="single_paired_selector" value="single"/> | 462 <param name="single_paired_selector" value="single"/> |
382 <section name="umi_processing"> | 463 <section name="umi_processing"> |
383 <param name="umi" value="true"/> | 464 <param name="umi" value="true"/> |
384 <param name="umi_loc" value="read1"/> | 465 <param name="umi_loc" value="read1"/> |
385 <param name="umi_len" value="8"/> | 466 <param name="umi_len" value="8"/> |
386 </section> | 467 </section> |
387 <output name="out1" ftype="fastq" file="out2.fq"/> | 468 <param name="report_json" value="False" /> |
469 <output name="out1" ftype="fastqsanger" file="out2.fq"/> | |
388 </test> | 470 </test> |
389 <!-- 5. Ensure UMI processing with different lengths works --> | 471 <!-- 5. Ensure UMI processing with different lengths works --> |
390 <test expect_num_outputs="2"> | 472 <test expect_num_outputs="2"> |
391 <param name="in1" ftype="fastq" value="R1.fq"/> | 473 <param name="in1" ftype="fastqsanger" value="R1.fq"/> |
392 <param name="single_paired_selector" value="single"/> | 474 <param name="single_paired_selector" value="single"/> |
393 <section name="umi_processing"> | 475 <section name="umi_processing"> |
394 <param name="umi" value="true"/> | 476 <param name="umi" value="true"/> |
395 <param name="umi_loc" value="read1"/> | 477 <param name="umi_loc" value="read1"/> |
396 <param name="umi_len" value="12"/> | 478 <param name="umi_len" value="12"/> |
397 </section> | 479 </section> |
398 <output name="out1" ftype="fastq" file="out3.fq"/> | 480 <param name="report_json" value="False" /> |
399 </test> | 481 <output name="out1" ftype="fastqsanger" file="out3.fq"/> |
400 <!-- 6. Ensure paired-end fastq works --> | 482 </test> |
483 <!-- 6. Ensure paired-end fastqsanger works --> | |
401 <test expect_num_outputs="3"> | 484 <test expect_num_outputs="3"> |
402 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/> | 485 <param name="in1" ftype="fastqsanger" value="bwa-mem-fastq1.fq"/> |
403 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/> | 486 <param name="in2" ftype="fastqsanger" value="bwa-mem-fastq2.fq"/> |
404 <param name="single_paired_selector" value="paired"/> | 487 <param name="single_paired_selector" value="paired"/> |
405 <output name="out1" ftype="fastq" file="out_bwa1.fq"/> | 488 <param name="report_json" value="False" /> |
406 <output name="out2" ftype="fastq" file="out_bwa2.fq"/> | 489 <output name="out1" ftype="fastqsanger" file="out_bwa1.fq"/> |
490 <output name="out2" ftype="fastqsanger" file="out_bwa2.fq"/> | |
407 </test> | 491 </test> |
408 <!-- 7. Ensure paired-end UMI processing of Read 1 works --> | 492 <!-- 7. Ensure paired-end UMI processing of Read 1 works --> |
409 <test expect_num_outputs="3"> | 493 <test expect_num_outputs="3"> |
410 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/> | 494 <param name="in1" ftype="fastqsanger" value="bwa-mem-fastq1.fq"/> |
411 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/> | 495 <param name="in2" ftype="fastqsanger" value="bwa-mem-fastq2.fq"/> |
412 <param name="single_paired_selector" value="paired"/> | 496 <param name="single_paired_selector" value="paired"/> |
413 <section name="umi_processing"> | 497 <section name="umi_processing"> |
414 <param name="umi" value="true"/> | 498 <param name="umi" value="true"/> |
415 <param name="umi_loc" value="read1"/> | 499 <param name="umi_loc" value="read1"/> |
416 <param name="umi_len" value="8"/> | 500 <param name="umi_len" value="8"/> |
417 </section> | 501 </section> |
418 <output name="out1" ftype="fastq" file="out_bwa_umi_read1_1.fq"/> | 502 <param name="report_json" value="False" /> |
419 <output name="out2" ftype="fastq" file="out_bwa_umi_read1_2.fq"/> | 503 <output name="out1" ftype="fastqsanger" file="out_bwa_umi_read1_1.fq"/> |
504 <output name="out2" ftype="fastqsanger" file="out_bwa_umi_read1_2.fq"/> | |
420 </test> | 505 </test> |
421 <!-- 8. Ensure paired-end UMI processing of Read 2 works --> | 506 <!-- 8. Ensure paired-end UMI processing of Read 2 works --> |
422 <test expect_num_outputs="3"> | 507 <test expect_num_outputs="4"> |
423 <param name="in1" ftype="fastq" value="bwa-mem-fastq1.fq"/> | 508 <param name="in1" ftype="fastqsanger" value="bwa-mem-fastq1.fq"/> |
424 <param name="in2" ftype="fastq" value="bwa-mem-fastq2.fq"/> | 509 <param name="in2" ftype="fastqsanger" value="bwa-mem-fastq2.fq"/> |
425 <param name="single_paired_selector" value="paired"/> | 510 <param name="single_paired_selector" value="paired"/> |
426 <section name="umi_processing"> | 511 <section name="umi_processing"> |
427 <param name="umi" value="true"/> | 512 <param name="umi" value="true"/> |
428 <param name="umi_loc" value="read2"/> | 513 <param name="umi_loc" value="read2"/> |
429 <param name="umi_len" value="8"/> | 514 <param name="umi_len" value="8"/> |
430 </section> | 515 </section> |
431 <output name="out1" ftype="fastq" file="out_bwa_umi_read2_1.fq"/> | 516 <output name="out1" ftype="fastqsanger" file="out_bwa_umi_read2_1.fq"/> |
432 <output name="out2" ftype="fastq" file="out_bwa_umi_read2_2.fq"/> | 517 <output name="out2" ftype="fastqsanger" file="out_bwa_umi_read2_2.fq"/> |
518 <output name="report_json"> | |
519 <assert_contents> | |
520 <has_text text="fastp report"/> | |
521 </assert_contents> | |
522 </output> | |
433 </test> | 523 </test> |
434 <!-- 9. Ensure JSON report output works --> | 524 <!-- 9. Ensure JSON report output works --> |
435 <test expect_num_outputs="2"> | 525 <test expect_num_outputs="2"> |
436 <param name="in1" ftype="fastqsanger" value="R1.fq"/> | 526 <param name="in1" ftype="fastqsanger" value="R1.fq"/> |
437 <param name="single_paired_selector" value="single"/> | 527 <param name="single_paired_selector" value="single"/> |
438 <param name="report_html" value="False"/> | 528 <param name="report_html" value="False"/> |
439 <param name="report_json" value="True"/> | |
440 <output name="out1" ftype="fastqsanger" file="out1.fq"/> | 529 <output name="out1" ftype="fastqsanger" file="out1.fq"/> |
441 <output name="report_json"> | 530 <output name="report_json"> |
442 <assert_contents> | 531 <assert_contents> |
443 <has_text text="fastp report"/> | 532 <has_text text="fastp report"/> |
444 </assert_contents> | 533 </assert_contents> |
445 </output> | 534 </output> |
446 </test> | 535 </test> |
447 <!-- 10. Ensure polyG trimming works --> | 536 <!-- 10. Ensure polyG trimming works --> |
448 <test expect_num_outputs="2"> | 537 <test expect_num_outputs="3"> |
449 <param name="in1" ftype="fastq.gz" value="R1.fq.gz"/> | 538 <param name="in1" ftype="fastqsanger.gz" value="R1.fq.gz"/> |
450 <param name="single_paired_selector" value="single"/> | 539 <param name="single_paired_selector" value="single"/> |
451 <param name="trimming_select" value="-g"/> | 540 <param name="trimming_select" value="-g"/> |
452 <param name="poly_g_min_len" value="10"/> | 541 <param name="poly_g_min_len" value="10"/> |
453 <output name="out1" ftype="fastq.gz" decompress="True" file="out1.fq.gz"/> | 542 <output name="out1" ftype="fastqsanger.gz" decompress="True" file="out1.fq.gz"/> |
543 <output name="report_json"> | |
544 <assert_contents> | |
545 <has_text text="fastp report"/> | |
546 </assert_contents> | |
547 </output> | |
454 </test> | 548 </test> |
455 <!-- 11. Ensure polyX trimming works --> | 549 <!-- 11. Ensure polyX trimming works --> |
456 <test expect_num_outputs="2"> | 550 <test expect_num_outputs="3"> |
457 <param name="in1" ftype="fastq.gz" value="R1.fq.gz"/> | 551 <param name="in1" ftype="fastqsanger.gz" value="R1.fq.gz"/> |
458 <param name="single_paired_selector" value="single"/> | 552 <param name="single_paired_selector" value="single"/> |
459 <param name="trimming_select" value="-G"/> | 553 <param name="trimming_select" value="-G"/> |
460 <param name="polyx_trimming_select" value="-x"/> | 554 <param name="polyx_trimming_select" value="-x"/> |
461 <param name="poly_x_min_len" value="10"/> | 555 <param name="poly_x_min_len" value="10"/> |
462 <output name="out1" ftype="fastq.gz" decompress="True" file="out1.fq.gz"/> | 556 <output name="out1" ftype="fastqsanger.gz" decompress="True" file="out1.fq.gz"/> |
463 </test> | 557 <output name="report_json"> |
464 <!-- 12. Test fastq files with different length --> | 558 <assert_contents> |
559 <has_text text="fastp report"/> | |
560 </assert_contents> | |
561 </output> | |
562 </test> | |
563 <!-- 12. Test fastqsanger files with different length --> | |
465 <test expect_exit_code="255" expect_failure="true"> | 564 <test expect_exit_code="255" expect_failure="true"> |
466 <param name="single_paired_selector" value="paired_collection"/> | 565 <param name="single_paired_selector" value="paired_collection"/> |
467 <param name="paired_input"> | 566 <param name="paired_input"> |
468 <collection type="paired"> | 567 <collection type="paired"> |
469 <element name="forward" value="bwa-mem-fastq1.fq" ftype="fastqsanger" /> | 568 <element name="forward" value="bwa-mem-fastq1.fq" ftype="fastqsanger" /> |
470 <element name="reverse" value="bwa-mem-fastq2_too_long.fq" ftype="fastqsanger" /> | 569 <element name="reverse" value="bwa-mem-fastq2_too_long.fq" ftype="fastqsanger" /> |
471 </collection> | 570 </collection> |
472 </param> | 571 </param> |
473 </test> | 572 </test> |
573 <!-- 13. Test merge reads in combination with paired --> | |
574 <test expect_num_outputs="5"> | |
575 <param name="in1" ftype="fastqsanger" value="bwa-mem-fastq1.fq"/> | |
576 <param name="in2" ftype="fastqsanger" value="bwa-mem-fastq2.fq"/> | |
577 <param name="single_paired_selector" value="paired"/> | |
578 <param name="merge" value="--merge" /> | |
579 <param name="report_html" value="False" /> | |
580 <param name="report_json" value="False" /> | |
581 <output name="merged_reads" ftype="fastqsanger" file="bwa-mem-merged-reads.fastqsanger" /> | |
582 <output name="unmerged_out1" ftype="fastqsanger" file="bwa-mem-unmerged-filtered-reads1.fastqsanger" /> | |
583 <output name="unmerged_out2" ftype="fastqsanger" file="bwa-mem-unmerged-filtered-reads2.fastqsanger" /> | |
584 <output name="unpaired1" ftype="fastqsanger" file="bwa-mem-unmerged-unfiltered-reads1.fastqsanger" /> | |
585 <output name="unpaired2" ftype="fastqsanger"> | |
586 <assert_contents> | |
587 <has_size size="0" /> | |
588 </assert_contents> | |
589 </output> | |
590 </test> | |
591 <!-- 14. Test merge and include_unmerged in combination with paired collection --> | |
592 <test expect_num_outputs="2"> | |
593 <param name="single_paired_selector" value="paired_collection"/> | |
594 <param name="paired_input"> | |
595 <collection type="paired"> | |
596 <element name="forward" value="bwa-mem-fastq1.fq" ftype="fastqsanger" /> | |
597 <element name="reverse" value="bwa-mem-fastq2.fq" ftype="fastqsanger" /> | |
598 </collection> | |
599 </param> | |
600 <param name="merge" value="--merge" /> | |
601 <param name="include_unmerged" value="--include_unmerged" /> | |
602 <param name="report_html" value="False" /> | |
603 <output name="merged_reads" ftype="fastqsanger" file="bwa-mem-merged-read-include-unmerged.fastqsanger" /> | |
604 <output name="report_json"> | |
605 <assert_contents> | |
606 <has_text text="fastp report"/> | |
607 </assert_contents> | |
608 </output> | |
609 </test> | |
610 <!--15. Test paired collection in combination with compressed input--> | |
611 <test expect_num_outputs="4"> | |
612 <param name="single_paired_selector" value="paired_collection"/> | |
613 <param name="paired_input"> | |
614 <collection type="paired"> | |
615 <element name="forward" value="bwa-mem-fastq-paired-collection/input_forward.fastqsanger.gz" ftype="fastqsanger.gz" /> | |
616 <element name="reverse" value="bwa-mem-fastq-paired-collection/input_reverse.fastqsanger.gz" ftype="fastqsanger.gz" /> | |
617 </collection> | |
618 </param> | |
619 <param name="report_json" value="False" /> | |
620 <output name="report_html"> | |
621 <assert_contents> | |
622 <has_text text="fastp report"/> | |
623 </assert_contents> | |
624 </output> | |
625 <output_collection name="output_paired_coll" type="paired"> | |
626 <element name="forward" value="bwa-mem-fastq-paired-collection/output_forward.fastqsanger.gz" decompress="True" ftype="fastqsanger.gz"/> | |
627 <element name="reverse" value="bwa-mem-fastq-paired-collection/output_reverse.fastqsanger.gz" decompress="True" ftype="fastqsanger.gz"/> | |
628 </output_collection> | |
629 </test> | |
474 </tests> | 630 </tests> |
475 <help><![CDATA[ | 631 <help><![CDATA[ |
476 .. class:: infomark | 632 .. class:: infomark |
477 | 633 |
478 **What it does** | 634 **What it does** |
492 | 648 |
493 5. Correct mismatched base pairs in overlapped regions of paired end reads, if one base is with high quality while the other is with ultra-low quality | 649 5. Correct mismatched base pairs in overlapped regions of paired end reads, if one base is with high quality while the other is with ultra-low quality |
494 | 650 |
495 6. Trim polyG in 3' ends, which is commonly seen in NovaSeq/NextSeq data. Trim polyX in 3' ends to remove unwanted polyX tailing (i.e. polyA tailing for mRNA-Seq data) | 651 6. Trim polyG in 3' ends, which is commonly seen in NovaSeq/NextSeq data. Trim polyX in 3' ends to remove unwanted polyX tailing (i.e. polyA tailing for mRNA-Seq data) |
496 | 652 |
497 7. Preprocess unique molecular identifer (UMI) enabled data, shift UMI to sequence name | 653 7. Preprocess unique molecular identifier (UMI) enabled data, shift UMI to sequence name |
498 | 654 |
499 8. Report JSON format result for further interpreting | 655 8. Report JSON format result for further interpreting |
500 | 656 |
501 9. Visualize quality control and filtering results on a single HTML page (like FASTQC but faster and more informative) | 657 9. Visualize quality control and filtering results on a single HTML page (like FASTQC but faster and more informative) |
502 | 658 |
503 10. Split the output to multiple files (0001.R1.gz, 0002.R1.gz...) to support parallel processing. Two modes can be used, limiting the total split file number, or limitting the lines of each split file (*Not enabled in this Galaxy tool*) | 659 10. Split the output to multiple files (0001.R1.gz, 0002.R1.gz...) to support parallel processing. Two modes can be used, limiting the total split file number, or limiting the lines of each split file (*Not enabled in this Galaxy tool*) |
504 | 660 |
505 11. Support long reads (data from PacBio / Nanopore devices) | 661 11. Support long reads (data from PacBio / Nanopore devices) |
506 | 662 |
507 ----- | 663 ----- |
508 | 664 |
509 **Inputs** | 665 **Inputs** |
510 | 666 |
511 Single-end or Paired-end FASTQ or FASTQ.GZ reads | 667 Single-end or Paired-end (compressed) fastqsagnger or fastqillumina files |
512 | 668 |
513 ----- | 669 ----- |
514 | 670 |
515 **Outputs** | 671 **Outputs** |
516 | 672 |
517 * Processed reads | 673 * Processed reads |
674 * Merged reads | |
675 * Unmerged filtered reads1, reads that cannot be merged successfully, but both pass all the filters. | |
676 * Unmerged filtered reads2, reads that cannot be merged successfully, but both pass all the filters. | |
677 * Unmerged unfiltered reads1, reads that cannot be merged, **read1** passes filters but **read2** doesn't. | |
678 * Unmerged unfiltered reads2, reads that cannot be merged, **read2** passes filters but **read1** doesn't. | |
518 | 679 |
519 Optionally, under **Output Options** you can choose to output | 680 Optionally, under **Output Options** you can choose to output |
520 | 681 |
521 * HTML report (default is Yes) | 682 * HTML report (default is Yes) |
522 * JSON report (compatible with MultiQC) | 683 * JSON report (compatible with MultiQC) |