annotate paired_fastq_filtering.xml @ 10:768883847008 draft

Uploaded
author petr-novak
date Mon, 03 Feb 2020 06:44:58 -0500
parents c2c69c6090f0
children 58807b35777a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
1 <tool id="paired_fastq_filtering" name="Preprocessing of FASTQ paired-end reads">
5
378565f5a875 Uploaded
petr-novak
parents: 0
diff changeset
2 <stdio>
378565f5a875 Uploaded
petr-novak
parents: 0
diff changeset
3 <exit_code range="1:" level="fatal" description="Error" />
378565f5a875 Uploaded
petr-novak
parents: 0
diff changeset
4 </stdio>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
5 <description>
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
6 Preprocessing of paired-end reads in FASTQ format
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
7 including trimming, quality filtering, cutadapt filtering and interlacing. Broken
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
8 pairs are discarded.
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
9 </description>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
10 <requirements>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
11 <requirement type="package">blast</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
12 <requirement type="package">cutadapt</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
13 <requirement type="package">bioconductor-shortread</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
14 <requirement type="package">r-optparse</requirement>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
15 </requirements>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
16 <command interpreter="bash">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
17 paired_fastq_filtering_wrapper.sh -a ${A} -b ${B} -o ${paired} -c ${cut_off} -p ${percent_above} -N ${max_n} $rename -G ${png_output}
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
18
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
19 #if $sampling.sequence_sampling :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
20 -n $sampling.sample_size
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 $trimming.sequence_trimming :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
24 -e $trimming.trim_end -s $trimming.trim_start
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 $cutadapt.use_custom :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
28 -C "${cutadapt.custom_options}"
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 #if $similarity_filtering.include :
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
32 -F "${similarity_filtering.filter_database}"
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
33 #end if
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
34
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
35 </command>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
36
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
37 <inputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
38 <param format="fastq,fastq.gz" type="data" name="A" label="Left-hand reads" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
39
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
40 <param format="fastq,fastq.gz" type="data" name="B" label="Right-hand reads" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
41
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
42 <conditional name="sampling">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
43 <param name="sequence_sampling" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Read sampling"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
44 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
45 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
46 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
47 <when value="true">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
48 <param name="sample_size" type="integer" label="Sample size (number of pairs)" help="How many read pairs should be sampled" value="500000" min="0"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
49 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
50 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
51
10
768883847008 Uploaded
petr-novak
parents: 9
diff changeset
52 <param type="integer" name="cut_off" label="Quality cutoff" value="10" min="0" help="See below how to correctly set the quality cutoff" />
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
53 <param type="integer" name="percent_above" label="Percent above cutoff" value="95" min="0"
10
768883847008 Uploaded
petr-novak
parents: 9
diff changeset
54 help="Percentage of bases in the read that must have quality equal to or higher than the cutoff value" />
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
55
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
56 <conditional name="trimming">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
57 <param name="sequence_trimming" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Trim reads"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
58 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
59 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
60 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
61 <when value="true">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
62 <param type="integer" name="trim_start" label="Start position" value="1" min="1"
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
63 help="Reads are trimmed at the specified start" />
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
64 <param type="integer" name="trim_end" label="End position" value="100" min="1"
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
65 help="Reads are trimmed to the specified end position, shorted sequences are discarded" />
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
66 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
67
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
68 </conditional>
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
69 <param name="max_n" type="integer" label="Maximum Ns" help="Maximal number of Ns allowed in reads" value="0" min="0" max="10"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
70
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
71 <conditional name="cutadapt">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
72 <param name="use_custom" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Custom cutadapt options"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
73 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
74 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
75 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
76 <when value="true">
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
77 <param name="custom_options" type="text" area="True" size="8x30" label="Custom options" help="Consult cutadapt for usage" value="">
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
78 <sanitizer sanitize="False"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
79 </param>>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
80 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
81 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
82
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
83 <conditional name="similarity_filtering">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
84 <param name="include" type="boolean" truevalue="true" falsevalue="false" checked="False" label="Use similarity search filtering"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
85 <when value="false">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
86 <!-- do nothing here -->
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
87 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
88 <when value="true">
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
89
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
90 <param name="filter_database" format="fasta" type="data" label="Sequence filter database" help="Provide DNA sequences in FASTA format. Reads that have at least 90% similarity over 90% of their length to sequence in the filter database will be removed. This option is suitable for removing organellar or other contaminating sequences."/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
91 </when>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
92 </conditional>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
93
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
94 <param name="rename" type="boolean" truevalue="-R" falsevalue="" checked="True" label="Rename reads" help="By default, original read names are used. In case your reads do not follow proper naming scheme to label paired-end mates, use this option. All read pairs must be complete!"/>
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
95 </inputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
96
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
97
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
98 <outputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
99 <data format="fasta" name="paired" label="Interlaced paired reads from datasets ${A.hid} and ${B.hid} "/>
9
c2c69c6090f0 Uploaded
petr-novak
parents: 6
diff changeset
100 <data format="png" name="png_output" label="Nucleotide composition after filtering of ${A.hid} and ${B.hid} "/>"
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
101 </outputs>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
102
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
103
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
104 <tests>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
105 <test>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
106 <param name="A" value="ERR215189_1_part.fastq.gz" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
107 <param name="B" value="ERR215189_2_part.fastq.gz" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
108 <param name="max_n" value="0"/>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
109 <param name="cut_off" value="10" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
110 <param name="percent_above" value="95" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
111 <output name="output" value="paired_output.fasta" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
112 <output name="png_output" value="paired_output.png" />
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
113 </test>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
114 </tests>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
115
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
116 <help>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
117 **What it does**
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
118
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
119 This tool is designed to make memory efficient preprocessing of two
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
120 fastq files. Output of this file can be used as input of RepeatExplorer clustering.
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
121 Input files can be in GNU zipped archive (.gz extension).
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
122 Reads are filtered based on the quality, presence of N bases and
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
123 adapters. Two input fastq files are procesed in parallel. Only complete pair
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
124 are kept. As the input files are process in chunks, it is required that
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
125 pair reads are complete and in the same order in both input files. All
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
126 reads which pass the quality filter fill be writen into output files.
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
127 If sampling is specified, only sample of sequences will be
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
128 returned. Cutadapt us run with this options::
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
129
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
130 --anywhere='AATGATACGGCGACCACCGAGATCTACACTCTTTCCCTACACGACGCTCTTCCGATCT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
131 --anywhere='AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
132 --anywhere='GATCGGAAGAGCACACGTCTGAACTCCAGTCAC'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
133 --anywhere='ATCTCGTATGCCGTCTTCTGCTTG'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
134 --anywhere='CAAGCAGAAGACGGCATACGAGAT'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
135 --anywhere='GTGACTGGAGTTCAGACGTGTGCTCTTCCGATC'
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
136 --error-rate=0.05
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
137 --times=1 --overlap=15 --discard
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
138
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
139
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
140 **Order of fastq files processing**
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
141
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
142 1. Trimming (optional)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
143 #. Filter by quality
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
144 #. Discard single reads, keep complete pairs
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
145 #. Cutadapt filtering
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
146 #. Discard single reads, keep complete pairs
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
147 #. Sampling (optional)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
148 #. Interlacing two fasta files
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
149
10
768883847008 Uploaded
petr-novak
parents: 9
diff changeset
150 **Quality setting cutoff**
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
151
10
768883847008 Uploaded
petr-novak
parents: 9
diff changeset
152 To correctly set quality cutoff, you need to know how the quality is encoded in your fastq file, default
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
153 filtering which is suitable for Sanger and Illumina 1.8 encoding is shown below::
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
154
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
155
10
768883847008 Uploaded
petr-novak
parents: 9
diff changeset
156 Default filtering cutoff
0
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
157 |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
158 |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
159 V
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
160 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.....................................................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
161 ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
162 ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
163 .................................JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ......................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
164 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL....................................................
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
165 !"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
166 | | | | | |
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
167 33 59 64 73 104 126
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
168 0........................26...31.......40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
169 -5....0........9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
170 0........9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
171 3.....9.............................40
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
172 0.2......................26...31........41
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
173
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
174 S - Sanger Phred+33, raw reads typically (0, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
175 X - Solexa Solexa+64, raw reads typically (-5, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
176 I - Illumina 1.3+ Phred+64, raw reads typically (0, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
177 J - Illumina 1.5+ Phred+64, raw reads typically (3, 40)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
178 with 0=unused, 1=unused, 2=Read Segment Quality Control Indicator (bold)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
179 (Note: See discussion above).
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
180 L - Illumina 1.8+ Phred+33, raw reads typically (0, 41)
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
181
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
182 </help>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
183 </tool>
a4cd8608ef6b Uploaded
petr-novak
parents:
diff changeset
184