annotate single_fastq_filtering.xml @ 0:a4cd8608ef6b draft

Uploaded
author petr-novak
date Mon, 01 Apr 2019 07:56:36 -0400
parents
children 378565f5a875
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
1 <tool id="single_fastq_filtering" name="Preprocessing of fastq reads">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
2 <description>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
3 Preprocessing of fastq files
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
4 including trimming, quality filtering, cutadapt filtering and sampling
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
5 </description>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
6 <requirements>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
7 <requirement type="package">blast</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
8 <requirement type="package">cutadapt</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
9 <requirement type="package">bioconductor-shortread</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
10 <requirement type="package">r-optparse</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
11 </requirements>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
12 <command interpreter="bash">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
13 single_fastq_filtering_wrapper.sh -a ${A} -o ${output} -c ${cut_off} -p ${percent_above} -N ${max_n} -G ${png_output}
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
14
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
15 #if $sampling.sequence_sampling :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
16 -n $sampling.sample_size
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
17 #end if
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
18
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
19 #if $trimming.sequence_trimming :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
20 -e $trimming.trim_end -s $trimming.trim_start
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
21 #end if
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
22
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
23 #if $cutadapt.use_custom :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
24 -C "${cutadapt.custom_options}"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
25 #end if
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
26
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
27 #if $similarity_filtering.include :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
28 -F "${similarity_filtering.filter_database}"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
29 #end if
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
30
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
31
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
32 </command>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
33
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
34 <inputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
35 <param format="fastq,fastq.gz" type="data" name="A" label="reads in fastq format" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
36 <conditional name="sampling">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
37 <param name="sequence_sampling" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Sequence sampling"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
38 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
39 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
40 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
41 <when value="true">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
42 <param name="sample_size" type="integer" label="Sample size(number of reads" help="How many sequence reads should be in resulting dataset" value="500000" min="0"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
43 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
44 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
45
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
46 <param type="integer" name="cut_off" label="Quality cut-off" value="10" min="0" help="see below how to correctly set quality cut-off" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
47 <param type="integer" name="percent_above" label="percent above cutoff" value="95" min="0"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
48 help="Percent of bases in sequence that must have quality equal to / higher than cut-off value" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
49
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
50 <conditional name="trimming">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
51 <param name="sequence_trimming" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Trim sequences"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
52 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
53 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
54 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
55 <when value="true">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
56 <param type="integer" name="trim_start" label="trimming - start position" value="1" min="1"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
57 help="sequences are trimmed at specified start" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
58 <param type="integer" name="trim_end" label="trimming - end position" value="100" min="1"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
59 help="sequences are trimmed to specified end position, shorted sequences are discarded" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
60 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
61
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
62 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
63 <param name="max_n" type="integer" label="maximum Ns" help="Maximum number of Ns in sequence" value="0" min="0" max="10"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
64
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
65 <conditional name="cutadapt">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
66 <param name="use_custom" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Do you want to use custom cutadapt options"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
67 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
68 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
69 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
70 <when value="true">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
71 <param name="custom_options" type="text" area="True" size="8x30" label="Cutadapt custom options" help="Consult cutadapt for usage" value="">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
72 <sanitizer sanitize="False"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
73 </param>>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
74 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
75 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
76
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
77 <conditional name="similarity_filtering">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
78 <param name="include" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Use similarity search filtering"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
79 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
80 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
81 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
82 <when value="true">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
83
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
84 <param name="filter_database" format="fasta" type="data" label="Sequence filter database" help="Provide DNA sequences in fasta format. Sequence reads which has at least 90% similarity over 90% of length to sequence in filter database will be removed. This is suitable option if you want to remove organele DNA or contamination"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
85 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
86 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
87
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
88 </inputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
89
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
90
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
91 <outputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
92 <data format="fasta" name="output" label="filtered fasta reads from datasets ${A.hid}"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
93 <data format="png" name="png_output" label="nucleotide composition after filtering of ${A.hid}"/>"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
94 </outputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
95
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
96 <tests>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
97 <test>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
98 <param name="A" value="ERR215189_1_part.fastq.gz" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
99 <param name="max_n" value="0"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
100 <param name="cut_off" value="10" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
101 <param name="percent_above" value="95" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
102 <output name="output" value="single_output.fasta" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
103 <output name="png_output" value="single_output.png" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
104 </test>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
105 </tests>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
106
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
107 <help>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
108 **What it does**
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
109
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
110 This tool is designed to perform preprocessing of fastq file. Input files can be
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
111 in GNU zipped archive (.gz extension). Reads are filtered based on the quality,
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
112 presence of N bases and adapters. All reads which pass the quality filter fill
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
113 be writen into output files. If sampling is specified, only sample of sequences
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
114 will be returned.
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
115
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
116 Cutadapt us run with this options::
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
117
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
118 --anywhere='AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
119 --anywhere='AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
120 --anywhere='GATCGGAAGAGCACACGTCTGAACTCCAGTCAC'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
121 --anywhere='ATCTCGTATGCCGTCTTCTGCTTG'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
122 --anywhere='CAAGCAGAAGACGGCATACGAGAT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
123 --anywhere='GTGACTGGAGTTCAGACGTGTGCTCTTCCGATC'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
124 --error-rate=0.05
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
125 --times=1 --overlap=15 --discard
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
126
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
127
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
128 **Order of fastq files processing**
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
129
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
130 1. Trimming (optional)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
131 #. Filter by quality
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
132 #. Cutadapt filtering
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
133 #. Sampling (optional)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
134 #. Interlacing two fasta files
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
135
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
136 **Quality setting cut-off**
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
137
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
138 To correctly set quality cut-off, you need to know how the quality is encoded in your fastq file, default
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
139 filtering which is suitable for Sanger and Illumina 1.8 encoding is shown below::
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
140
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
141
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
142 Default filtering cut-off
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
143 |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
144 |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
145 V
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
146 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.....................................................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
147 ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
148 ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
149 .................................JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
150 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................................................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
151 !"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
152 | | | | | |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
153 33 59 64 73 104 126
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
154 0........................26...31.......40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
155 -5....0........9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
156 0........9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
157 3.....9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
158 0.2......................26...31........41
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
159
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
160 S - Sanger Phred+33, raw reads typically (0, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
161 X - Solexa Solexa+64, raw reads typically (-5, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
162 I - Illumina 1.3+ Phred+64, raw reads typically (0, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
163 J - Illumina 1.5+ Phred+64, raw reads typically (3, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
164 with 0=unused, 1=unused, 2=Read Segment Quality Control Indicator (bold)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
165 (Note: See discussion above).
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
166 L - Illumina 1.8+ Phred+33, raw reads typically (0, 41)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
167
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
168 </help>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
169 </tool>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
170