0
|
1 <?xml version="1.0"?>
|
|
2 <tool id="STACKSprocrad" name="STACKS : Process radtags" force_history_refresh="True" version="1.1.0">
|
|
3 <description>Run the STACKS cleaning script</description>
|
|
4 <configfiles>
|
|
5 <configfile name="input_single">
|
|
6 #if str( $options_type.options_type_selector ) == "single":
|
|
7 #for $input in $options_type.inputs_single:
|
|
8 ${input.display_name}::${input}
|
|
9 #end for
|
|
10 #end if
|
|
11 </configfile>
|
|
12 <configfile name="input_paired1">
|
|
13 #if str( $options_type.options_type_selector ) == "paired":
|
|
14 #for $input in $options_type.inputs_paired1:
|
|
15 ${input.display_name}::${input}
|
|
16 #end for
|
|
17 #end if
|
|
18 </configfile>
|
|
19 <configfile name="input_paired2">
|
|
20 #if str( $options_type.options_type_selector ) == "paired":
|
|
21 #for $input in $options_type.inputs_paired2:
|
|
22 ${input.display_name}::${input}
|
|
23 #end for
|
|
24 #end if
|
|
25 </configfile>
|
|
26 </configfiles>
|
|
27 <requirements>
|
|
28 <requirement type="package" version="1.18">stacks</requirement>
|
|
29 </requirements>
|
|
30 <command interpreter="python">
|
|
31
|
|
32 STACKS_procrad.py
|
|
33 --input_type $options_type.options_type_selector
|
|
34 #if str( $options_type.options_type_selector ) == "single":
|
|
35 --input_single $input_single
|
|
36 #else
|
|
37 --input_paired1 $input_paired1
|
|
38 --input_paired2 $input_paired2
|
|
39 #end if
|
|
40 --inputype $inputype
|
|
41 --barcode $barcode
|
|
42 --sample_name $sample_name
|
|
43 --output_choice $options_output_infos_selector
|
|
44 #if str( $options_output_infos_selector ) != "1":
|
|
45 --output_archive $output_archive
|
|
46 #end if
|
|
47 --input_enzyme $options_enzyme.options_enzyme_selector
|
|
48 --enzyme1 $options_enzyme.enzyme
|
|
49 #if str( $options_enzyme.options_enzyme_selector ) == "2":
|
|
50 --enzyme2 $options_enzyme.enzyme2
|
|
51 #end if
|
|
52 --outype $outype
|
|
53 --qualitenc $options_quality.qualitenc
|
|
54 #if $capture:
|
|
55 -D
|
2
|
56 --discard_file $discard_file
|
0
|
57 #end if
|
|
58 --activate_advanced_options $activate_advanced_options
|
|
59 -t $options_advanced.truncate
|
|
60 #if $options_advanced.discard:
|
|
61 -q
|
|
62 #end if
|
|
63 #if $options_advanced.rescue:
|
|
64 -r
|
|
65 #end if
|
|
66 -w $options_advanced.sliding
|
|
67 -s $options_advanced.score
|
|
68 #if $options_advanced.remove:
|
|
69 -c
|
|
70 #end if
|
|
71 #if $options_advanced.inline:
|
|
72 --inline_null
|
|
73 #end if
|
|
74 #if $options_advanced.index:
|
|
75 --index_null
|
|
76 #end if
|
|
77 #if $options_advanced.inlinein:
|
|
78 --inline_inline
|
|
79 #end if
|
|
80 #if $options_advanced.indexind:
|
|
81 --index_index
|
|
82 #end if
|
|
83 #if $options_advanced.inlineind:
|
|
84 --inline_index
|
|
85 #end if
|
|
86 #if $options_advanced.indexin:
|
|
87 --index_inline
|
|
88 #end if
|
|
89 --logfile $output
|
|
90
|
|
91 </command>
|
|
92
|
|
93 <inputs>
|
|
94
|
|
95 <conditional name="options_type">
|
|
96 <param name="options_type_selector" type="select" label="Single-end or paired-end reads files">
|
|
97 <option value="single" selected="True">Single-end files</option>
|
|
98 <option value="paired">Paired-end files</option>
|
|
99 </param>
|
|
100 <when value="single">
|
|
101 <param name="inputs_single" format="fastq,fastq.gz" type="data" multiple="true" label="singles-end reads infile(s)" help="input files" />
|
|
102 </when>
|
|
103 <when value="paired">
|
|
104 <param name="inputs_paired1" format="fastq,fastq.gz" type="data" multiple="true" label="paired-end reads infile(s) 1" help="Files must have this syntax : name_R1_001.fastq" />
|
|
105 <param name="inputs_paired2" format="fastq,fastq.gz" type="data" multiple="true" label="paired-end reads infile(s) 2" help="Files must have this syntax : name_R2_001.fastq" />
|
|
106 </when>
|
|
107 </conditional>
|
|
108 <param name="inputype" type="select" format="text" label="Inputs format">
|
|
109 <option value="fastq" selected="True">fastq</option>
|
|
110 <option value="gzfastq">fastq.gz</option>
|
|
111 <option value="bustard">Illumina BUSTARD</option>
|
|
112 </param>
|
|
113 <param name="barcode" type="data" format="tabular,txt" label="Barcode file" help="Barcode file" />
|
|
114
|
|
115 <param name="sample_name" type="text" value="sample" label="Sample name" help="Precise the sample name if using several NGS runs" />
|
|
116
|
|
117 <conditional name="options_enzyme">
|
|
118 <param name="options_enzyme_selector" type="select" label="Number of enzymes">
|
|
119 <option value="1" >One</option>
|
|
120 <option value="2">Two</option>
|
|
121 </param>
|
|
122 <when value="1">
|
|
123 <param name="enzyme" type="select" format="text" label="Enzyme" help="provide the restriction enzyme used" >
|
|
124 <option value="apeKI">apeKI</option>
|
|
125 <option value="bamHI">bamHI</option>
|
|
126 <option value="claI">claI</option>
|
|
127 <option value="dpnII">dpnII</option>
|
|
128 <option value="eaeI">eaeI</option>
|
|
129 <option value="ecoRI">ecoRI</option>
|
|
130 <option value="ecoT22I">ecoT22I</option>
|
|
131 <option value="hindIII">hindIII</option>
|
|
132 <option value="mluCI">mluCI</option>
|
|
133 <option value="mseI">mseI</option>
|
|
134 <option value="mspI">mspI</option>
|
|
135 <option value="ndeI">ndeI</option>
|
|
136 <option value="nlaIII">nlaIII</option>
|
|
137 <option value="notI">notI</option>
|
|
138 <option value="nsiI">nsiI</option>
|
|
139 <option value="pstI">pstI</option>
|
|
140 <option value="sau3AI">sau3AI</option>
|
|
141 <option value="sbfI">sbfI</option>
|
|
142 <option value="sexAI">sexAI</option>
|
|
143 <option value="sgrAI">sgrAI</option>
|
|
144 <option value="sphI">sphI</option>
|
|
145 <option value="taqI">taqI</option>
|
|
146 <option value="xbaI">xbaI</option>
|
|
147 </param>
|
|
148 </when>
|
|
149 <when value="2">
|
|
150 <param name="enzyme" type="select" format="text" label="Enzyme" help="provide the restriction enzyme used" >
|
|
151 <option value="apeKI">apeKI</option>
|
|
152 <option value="bamHI">bamHI</option>
|
|
153 <option value="claI">claI</option>
|
|
154 <option value="dpnII">dpnII</option>
|
|
155 <option value="eaeI">eaeI</option>
|
|
156 <option value="ecoRI">ecoRI</option>
|
|
157 <option value="ecoT22I">ecoT22I</option>
|
|
158 <option value="hindIII">hindIII</option>
|
|
159 <option value="mluCI">mluCI</option>
|
|
160 <option value="mseI">mseI</option>
|
|
161 <option value="mspI">mspI</option>
|
|
162 <option value="ndeI">ndeI</option>
|
|
163 <option value="nlaIII">nlaIII</option>
|
|
164 <option value="notI">notI</option>
|
|
165 <option value="nsiI">nsiI</option>
|
|
166 <option value="pstI">pstI</option>
|
|
167 <option value="sau3AI">sau3AI</option>
|
|
168 <option value="sbfI">sbfI</option>
|
|
169 <option value="sexAI">sexAI</option>
|
|
170 <option value="sgrAI">sgrAI</option>
|
|
171 <option value="sphI">sphI</option>
|
|
172 <option value="taqI">taqI</option>
|
|
173 <option value="xbaI">xbaI</option>
|
|
174 </param>
|
|
175 <param name="enzyme2" type="select" format="text" label="Second enzyme" help="provide the second restriction enzyme used" >
|
|
176 <option value="apeKI">apeKI</option>
|
|
177 <option value="bamHI">bamHI</option>
|
|
178 <option value="claI">claI</option>
|
|
179 <option value="dpnII">dpnII</option>
|
|
180 <option value="eaeI">eaeI</option>
|
|
181 <option value="ecoRI">ecoRI</option>
|
|
182 <option value="ecoT22I">ecoT22I</option>
|
|
183 <option value="hindIII">hindIII</option>
|
|
184 <option value="mluCI">mluCI</option>
|
|
185 <option value="mseI">mseI</option>
|
|
186 <option value="mspI">mspI</option>
|
|
187 <option value="ndeI">ndeI</option>
|
|
188 <option value="nlaIII">nlaIII</option>
|
|
189 <option value="notI">notI</option>
|
|
190 <option value="nsiI">nsiI</option>
|
|
191 <option value="pstI">pstI</option>
|
|
192 <option value="sau3AI">sau3AI</option>
|
|
193 <option value="sbfI">sbfI</option>
|
|
194 <option value="sexAI">sexAI</option>
|
|
195 <option value="sgrAI">sgrAI</option>
|
|
196 <option value="sphI">sphI</option>
|
|
197 <option value="taqI">taqI</option>
|
|
198 <option value="xbaI">xbaI</option>
|
|
199 </param>
|
|
200 </when>
|
|
201 </conditional>
|
|
202 <param name="capture" type="boolean" label="Capture discarded reads to a file" />
|
|
203 <section name="options_quality" title="quality options" expanded="False">
|
|
204 <param name="qualitenc" type="select" format="text" label="Quality encoded type" help="specify how quality scores are encoded, 'phred33' (Illumina 1.8+, Sanger, default) or 'phred64' (Illumina 1.3 - 1.5)" >
|
|
205 <option value="phred33">phred33</option>
|
|
206 <option value="phred64">phred64</option>
|
|
207 </param>
|
|
208 </section>
|
|
209 <param name="activate_advanced_options" type="boolean" label="Activate advanced options" help="advanced options are defined below" />
|
|
210 <section name="options_advanced" title="advanced options" expanded="False">
|
|
211 <param name="sliding" type="float" value="0.15" label="set the size of the sliding window as a fraction of the read length, between 0 and 1 (default 0.15)" />
|
|
212 <param name="score" type="integer" value="10" label="Set the score limit. If the average score within the sliding window drops below this value, the read is discarded (default 10)" />
|
|
213 <param name="remove" type="boolean" checked="false" default="false" label="Clean data, remove any read with an uncalled base" />
|
|
214 <param name="discard" type="boolean" checked="false" default="false" label="Discard reads with low quality scores"/>
|
|
215 <param name="rescue" type="boolean" checked="false" default="false" label="Rescue barcodes and RAD-Tags?"/>
|
|
216 <param name="truncate" type="integer" value="-1" label="Truncate final read length to this value" help="default = -1" />
|
|
217 <param name="inline" type="boolean" checked="true" default="true" label="Barcode options -> inline_null" help="barcode is inline with sequence, occurs only on single-end read" />
|
|
218 <param name="index" type="boolean" checked="false" default="false" label="Barcode options -> index_null" help="barcode is provided in FASTQ header, occurs only on single-end read"/>
|
|
219 <param name="inlinein" type="boolean" checked="false" default="false" label="Barcode options -> inline_inline" help="barcode is inline with sequence, occurs on single and paired-end read" />
|
|
220 <param name="indexind" type="boolean" checked="false" default="false" label="Barcode options -> index_index" help="barcode is provided in FASTQ header, occurs on single and paired-end read" />
|
|
221 <param name="inlineind" type="boolean" checked="false" default="false" label="Barcode options -> inline_index" help="barcode is inline with sequence on single-end read, occurs in FASTQ header for paired-end read" />
|
|
222 <param name="indexin" type="boolean" checked="false" default="false" label="Barcode options -> index_inline" help="barcode occurs in FASTQ header for single-end read, is inline with sequence on paired-end read" />
|
|
223 </section>
|
|
224 <param name="outype" type="select" format="text" label="Output format" help="output type, either 'fastq' or 'fasta' (default fastq)" >
|
|
225 <option value="fastq">fastq</option>
|
|
226 <option value="fasta">fasta</option>
|
|
227 </param>
|
|
228
|
|
229 <param name="options_output_infos_selector" type="select" label="Output type">
|
|
230 <option value="1">Normal (a fastq file by barcode)</option>
|
|
231 <option value="2" selected="True">Additional zip archive with all files (Normal + one archive with all fastq files)</option>
|
|
232 <option value="3">Only a zip archive with all files (one archive with all fastq files)</option>
|
|
233 </param>
|
|
234
|
|
235 </inputs>
|
|
236 <outputs>
|
|
237
|
|
238 <data format="txt" name="output" label="results.log with ${tool.name} on ${on_string}: demultiplexed and cleaned reads" />
|
3
|
239 <data format="txt" name="additional" label="fasta/fastq file with ${tool.name}" hidden="true">
|
0
|
240 <discover_datasets pattern="__designation_and_ext__" directory="galaxy_outputs" visible="true" />
|
|
241 </data>
|
|
242 <data format="zip" name="output_archive" label="all_files.zip with ${tool.name} on ${on_string}: demultiplexed and cleaned reads ">
|
|
243 <filter>options_output_infos_selector != "1"</filter>
|
|
244 </data>
|
|
245 <data format="fastq" name="discard_file" label="discard.fastq with ${tool.name} on ${on_string}: demultiplexed and cleaned reads ">
|
|
246 <filter>capture</filter>
|
|
247 </data>
|
|
248 </outputs>
|
|
249
|
|
250 <stdio>
|
|
251 <exit_code range="1" level="fatal" description="Error in Stacks Process radtag execution" />
|
|
252 </stdio>
|
|
253
|
|
254
|
|
255 <help>
|
|
256
|
|
257 .. class:: infomark
|
|
258
|
|
259 **What it does**
|
|
260
|
|
261 This program examines raw reads from an Illumina sequencing run and first, checks that the barcode and the RAD cutsite are intact, and demultiplexes the data. If there are
|
|
262 errors in the barcode or the RAD site within a certain allowance process_radtags can correct them. Second, it slides a window down the length of the read and checks the
|
|
263 average quality score within the window. If the score drops below 90% probability of being correct (a raw phred score of 10), the read is discarded. This allows for some
|
|
264 seqeuncing errors while elimating reads where the sequence is degrading as it is being sequenced. By default the sliding window is 15% of the length of the read, but can be
|
|
265 specified on the command line (the threshold and window size can be adjusted).
|
|
266 The process_radtags program can:
|
|
267 handle data that is barcoded, either inline or using an index, or unbarcoded.
|
|
268 use combinatorial barcodes.
|
|
269 check and correct for a restriction enzyme cutsite for single or double-digested
|
|
270 data.
|
|
271 filter adapter sequence while allowing for sequencing error in the adapter pattern.
|
|
272 process individual files or whole directories of files.
|
|
273 directly read gzipped data
|
|
274 filter reads based on Illumina's Chastity filter
|
|
275
|
|
276 --------
|
|
277
|
|
278 **Help**
|
|
279
|
|
280 Input files:
|
|
281
|
|
282 - FASTQ, FASTA, zip, tar.gz
|
|
283
|
|
284 - Barcode File Format
|
|
285
|
|
286 The barcode file is a very simple format : one barcode per line.
|
|
287
|
|
288 CGATA
|
|
289 CGGCG
|
|
290 GAAGC
|
|
291 GAGAT
|
|
292 CGATA
|
|
293 CGGCG
|
|
294 GAAGC
|
|
295 GAGAT
|
|
296
|
|
297 Combinatorial barcodes are specified, one per column, separated by a tab::
|
|
298
|
|
299 CGATA ACGTA
|
|
300 CGGCG CGTA
|
|
301 GAAGC CGTA
|
|
302 GAGAT CGTA
|
|
303 CGATA AGCA
|
|
304 CGGCG AGCA
|
|
305 GAAGC AGCA
|
|
306 GAGAT AGCA
|
|
307
|
|
308
|
|
309 Instructions to add the functionality of archives management in Galaxy on the `eBiogenouest HUB wiki <https://www.e-biogenouest.org/wiki/ManArchiveGalaxy>`_ .
|
|
310
|
|
311 --------
|
|
312
|
|
313
|
|
314 **Created by:**
|
|
315
|
|
316 Stacks was developed by Julian Catchen with contributions from Angel Amores, Paul Hohenlohe, and Bill Cresko
|
|
317
|
|
318 --------
|
|
319
|
|
320 **Project links:**
|
|
321
|
|
322 `STACKS website <http://creskolab.uoregon.edu/stacks/>`_ .
|
|
323
|
|
324 `STACKS manual <http://creskolab.uoregon.edu/stacks/stacks_manual.pdf>`_ .
|
|
325
|
|
326 `STACKS google group <https://groups.google.com/forum/#!forum/stacks-users>`_ .
|
|
327
|
|
328 --------
|
|
329
|
|
330 **References:**
|
|
331
|
|
332 -J. Catchen, P. Hohenlohe, S. Bassham, A. Amores, and W. Cresko. Stacks: an analysis tool set for population genomics. Molecular Ecology. 2013.
|
|
333
|
|
334 -J. Catchen, S. Bassham, T. Wilson, M. Currey, C. O'Brien, Q. Yeates, and W. Cresko. The population structure and recent colonization history of Oregon threespine stickleback determined using restriction-site associated DNA-sequencing. Molecular Ecology. 2013.
|
|
335
|
|
336 -J. Catchen, A. Amores, P. Hohenlohe, W. Cresko, and J. Postlethwait. Stacks: building and genotyping loci de novo from short-read sequences. G3: Genes, Genomes, Genetics, 1:171-182, 2011.
|
|
337
|
|
338 -A. Amores, J. Catchen, A. Ferrara, Q. Fontenot and J. Postlethwait. Genome evolution and meiotic maps by massively parallel DNA sequencing: Spotted gar, an outgroup for the teleost genome duplication. Genetics, 188:799'808, 2011.
|
|
339
|
|
340 -P. Hohenlohe, S. Amish, J. Catchen, F. Allendorf, G. Luikart. RAD sequencing identifies thousands of SNPs for assessing hybridization between rainbow trout and westslope cutthroat trout. Molecular Ecology Resources, 11(s1):117-122, 2011.
|
|
341
|
|
342 -K. Emerson, C. Merz, J. Catchen, P. Hohenlohe, W. Cresko, W. Bradshaw, C. Holzapfel. Resolving postglacial phylogeography using high-throughput sequencing. Proceedings of the National Academy of Science, 107(37):16196-200, 2010.
|
|
343
|
|
344 --------
|
|
345
|
|
346 **Integrated by:**
|
|
347
|
|
348 Yvan Le Bras and Cyril Monjeaud
|
|
349
|
|
350 GenOuest Bio-informatics Core Facility
|
|
351
|
|
352 UMR 6074 IRISA INRIA-CNRS-UR1 Rennes (France)
|
|
353
|
|
354 support@genouest.org
|
|
355
|
|
356 If you use this tool in Galaxy, please cite :
|
|
357
|
|
358 `Y. Le Bras, A. Roult, C. Monjeaud, M. Bahin, O. Quenez, C. Heriveau, A. Bretaudeau, O. Sallou, O. Collin, Towards a Life Sciences Virtual Research Environment : an e-Science initiative in Western France. JOBIM 2013. <https://www.e-biogenouest.org/resources/128>`_
|
|
359
|
|
360
|
|
361
|
|
362 </help>
|
|
363 <citations>
|
|
364 <citation type="doi">10.1111/mec.12354</citation>
|
|
365 <citation type="doi">10.1111/mec.12330</citation>
|
|
366 <citation type="doi">10.1534/g3.111.000240</citation>
|
|
367 <citation type="doi">10.1534/genetics.111.127324</citation>
|
|
368 <citation type="doi">10.1111/j.1755-0998.2010.02967.x</citation>
|
|
369 <citation type="doi">10.1073/pnas.1006538107</citation>
|
|
370
|
|
371 <citation type="bibtex">@INPROCEEDINGS{JOBIM2013,
|
|
372 author = {Le Bras, Y. and ROULT, A. and Monjeaud, C. and Bahin, M. and Quenez, O. and Heriveau, C. and Bretaudeau, A. and Sallou, O. and Collin, O.},
|
|
373 title = {Towards a Life Sciences Virtual Research Environment: An e-Science initiative in Western France},
|
|
374 booktitle = {JOBIM 2013 Proceedings},
|
|
375 year = {2013},
|
|
376 url = {https://www.e-biogenouest.org/resources/128},
|
|
377 pages = {97-106}
|
|
378 }</citation>
|
|
379 </citations>
|
|
380 </tool>
|
|
381
|