0
|
1 <tool id="cshl_fastq_quality_filter" version="1.0.0" name="Filter by quality">
|
|
2 <description></description>
|
|
3 <requirements>
|
|
4 <requirement type="package" version="0.0.13">fastx_toolkit</requirement>
|
|
5 </requirements>
|
|
6 <command>zcat -f '$input' | fastq_quality_filter -q $quality -p $percent -v -o $output
|
|
7 #if $input.ext == "fastqsanger":
|
|
8 -Q 33
|
|
9 #end if
|
|
10 </command>
|
|
11
|
|
12 <inputs>
|
|
13 <param format="fastqsolexa,fastqsanger" version="1.0.0" name="input" type="data" label="Library to filter" />
|
|
14
|
|
15 <param version="1.0.0" name="quality" size="4" type="integer" value="20">
|
|
16 <label>Quality cut-off value</label>
|
|
17 </param>
|
|
18
|
|
19 <param version="1.0.0" name="percent" size="4" type="integer" value="90">
|
|
20 <label>Percent of bases in sequence that must have quality equal to / higher than cut-off value</label>
|
|
21 </param>
|
|
22 </inputs>
|
|
23
|
|
24 <tests>
|
|
25 <test>
|
|
26 <!-- Test1: 100% of bases with quality 33 or higher (pretty steep requirement...) -->
|
|
27 <param version="1.0.0" name="input" value="fastq_qual_filter1.fastq" ftype="fastqsolexa" />
|
|
28 <param version="1.0.0" name="quality" value="33"/>
|
|
29 <param version="1.0.0" name="percent" value="100"/>
|
|
30 <output version="1.0.0" name="output" file="fastq_qual_filter1a.out" />
|
|
31 </test>
|
|
32 <test>
|
|
33 <!-- Test2: 80% of bases with quality 20 or higher -->
|
|
34 <param version="1.0.0" name="input" value="fastq_qual_filter1.fastq" ftype="fastqsolexa"/>
|
|
35 <param version="1.0.0" name="quality" value="20"/>
|
|
36 <param version="1.0.0" name="percent" value="80"/>
|
|
37 <output version="1.0.0" name="output" file="fastq_qual_filter1b.out" />
|
|
38 </test>
|
|
39 </tests>
|
|
40
|
|
41 <outputs>
|
|
42 <data format="input" version="1.0.0" name="output" metadata_source="input" />
|
|
43 </outputs>
|
|
44
|
|
45 <help>
|
|
46 **What it does**
|
|
47
|
|
48 This tool filters reads based on quality scores.
|
|
49
|
|
50 .. class:: infomark
|
|
51
|
|
52 Using **percent = 100** requires all cycles of all reads to be at least the quality cut-off value.
|
|
53
|
|
54 .. class:: infomark
|
|
55
|
|
56 Using **percent = 50** requires the median quality of the cycles (in each read) to be at least the quality cut-off value.
|
|
57
|
|
58 --------
|
|
59
|
|
60 Quality score distribution (of all cycles) is calculated for each read. If it is lower than the quality cut-off value - the read is discarded.
|
|
61
|
|
62
|
|
63 **Example**::
|
|
64
|
|
65 @CSHL_4_FC042AGOOII:1:2:214:584
|
|
66 GACAATAAAC
|
|
67 +CSHL_4_FC042AGOOII:1:2:214:584
|
|
68 30 30 30 30 30 30 30 30 20 10
|
|
69
|
|
70 Using **percent = 50** and **cut-off = 30** - This read will not be discarded (the median quality is higher than 30).
|
|
71
|
|
72 Using **percent = 90** and **cut-off = 30** - This read will be discarded (90% of the cycles do no have quality equal to / higher than 30).
|
|
73
|
|
74 Using **percent = 100** and **cut-off = 20** - This read will be discarded (not all cycles have quality equal to / higher than 20).
|
|
75
|
|
76 ------
|
|
77
|
|
78 This tool is based on `FASTX-toolkit`__ by Assaf Gordon.
|
|
79
|
|
80 .. __: http://hannonlab.cshl.edu/fastx_toolkit/
|
|
81 </help>
|
|
82 <!-- FASTQ-Quality-Filter is part of the FASTX-toolkit, by A.Gordon (gordon@cshl.edu) -->
|
|
83 </tool>
|