comparison velvet_optimiser_vlsci.xml @ 1:94dbee11c8a9 draft

Uploaded
author simon-gladman
date Tue, 05 Feb 2013 19:19:15 -0500
parents
children
comparison
equal deleted inserted replaced
0:b559512bebcc 1:94dbee11c8a9
1 <tool id="velvetoptimiser_vlsci" name="Velvet Optimiser vlsci" version="1.0.0">
2 <description>Automatically optimise a de-novo assembly using Velvet.</description>
3
4
5 <command interpreter="perl">
6 velvet_optimiser_wrapper_vlsci.pl
7 '$start_kmer'
8 '$end_kmer'
9 '$kmer_step'
10
11 #for i in $inputs:
12 '$i.__index__'
13 '${i.filetype}'
14 '${i.is_separate.separate}'
15 '${i.is_separate.forwards_file.datatype}'
16 '${i.is_separate.forwards_file}'
17 #if $i.is_separate.separate:
18 '${i.is_separate.reverse_file}'
19 #end if
20 '${i.shortMP}'
21 #end for
22
23 'other:'
24 '$amosfile'
25 '$verbose'
26
27 #if $advanced.is_advanced:
28 'advanced:'
29 '$advanced.optFuncKmer'
30 '$advanced.optFuncCov'
31 '$advanced.velvetg_opts'
32 '$advanced.minCovCutoff'
33 '$advanced.maxCovCutoff'
34 #end if
35
36 '$contigs'
37 '$stats'
38 #if $amosfile:
39 '$afgfile'
40 #end if
41 '$logfile'
42 '$dummyout'
43 '$lastgraph'
44
45 > $dummyout2
46 </command>
47
48 <inputs>
49 ##The k-mer search range setting section.
50 <param name="start_kmer" type="integer" label="Start k-mer value" value="19" help="Odd integer. Lower limit of k-mer size range to search for optimum value"/>
51 <param name="end_kmer" type="integer" label="End k-mer value" value="191" help="Odd integer. Upper limit of k-mer size range to search for optimum value"/>
52 <param name="kmer_step" type="integer" label="k-mer search step size" value="2" help="Step size kmer search over the above range. Must be even."/>
53
54 ##Read files section. No need for zipped or auto format options as the data is already sucked in in a legible format...
55 <repeat name="inputs" title="Input read libraries">
56
57 <param name="filetype" type="select" label="File type">
58 <option value="short" selected="yes">short</option>
59 <option value="shortPaired">shortPaired</option>
60 <option value="long">long</option>
61 <option value="longPaired">longPaired</option>
62 <option value="reference">reference</option>
63 </param>
64
65 <conditional name="is_separate">
66 <param name="separate" type="boolean" checked="false" truevalue="-separate" falsevalue="" label="Are the reads paired and in two different files?" help="Tick this box if this is a paired library with forward and reverse read files.."/>
67 <when value="">
68 <param name="forwards_file" type="data" format="fasta,fastq,raw,sam,bam" label="Read dataset"/>
69 </when>
70 <when value="-separate">
71 <param name="forwards_file" type="data" format="fasta,fastq,raw,sam,bam" label="Read dataset for direction 1"/>
72 <param name="reverse_file" type="data" format="fasta,fastq,raw,sam,bam" label="Read dataset for direction 2"/>
73 </when>
74 </conditional>
75
76 <param name="shortMP" type="boolean" checked="false" truevalue="shortMP_lib" falsevalue="not_shortMP" label="Library is short mate paired." help="Select if read set is from an Illumina mate pair library"/>
77
78 </repeat>
79
80 ##The other options section (amos file, verbose output capture)
81 <param name="amosfile" type="boolean" checked="false" truevalue="amos" falsevalue="no_amos" label="Produce the amos output file?"/>
82 <param name="verbose" type="boolean" checked="false" truevalue="verbose" falsevalue="not_verbose" label="Capture verbose velvet output in log file?"/>
83
84 ##Advanced parameter setting section (optFuncs, other velvetg options, min cov cutoff, max cov cutoff ratio)
85 <conditional name="advanced">
86 <param name="is_advanced" type="boolean" checked="false" truevalue="yes" falsevalue="no" label="Set advanced parameters?"/>
87 <when value="yes">
88 <param name="optFuncKmer" type="text" value="n50" label="K-mer optimisation function" help="See help below for possibilities!"/>
89 <param name="optFuncCov" type="text" value="Lbp" label="Coverage cutoff optimisation function" help="See help below for possibilities!"/>
90 <param name="velvetg_opts" type="text" value="" label="Other velvetg options" help="Add any other required velvetg options from the advanced set"/>
91 <param name="minCovCutoff" type="integer" value="0" label="Minimum coverage cutoff" help="The minimum coverage cutoff to consider in the optimisation"/>
92 <param name="maxCovCutoff" type="float" value="0.8" label="Maximum coverage cutoff" help="The maximum coverage cutoff to consider expressed as a fraction of the calculated expected coverage."/>
93 </when>
94 <when value="no">
95
96 </when>
97 </conditional>
98
99
100 </inputs>
101
102 <outputs>
103 <data name="dummyout" format="tabular" label="${tool.name} on ${on_string}: STDERR" hidden="True"/>
104 <data name="dummyout2" format="tabular" label="${tool.name} on ${on_string}: dummyout" hidden="True"/>
105 <data name="contigs" format="fasta" label="${tool.name} on ${on_string}: Contigs"/>
106 <data name="afgfile" format="afg" label="${tool.name} on ${on_string}: Assembly afg file">
107 <filter>(amosfile)</filter>
108 </data>
109 <data name="stats" format="tabular" label="${tool.name} on ${on_string}: Contig stats"/>
110 <data name="logfile" format="tabular" label="${tool.name} on ${on_string}: VelvetOptimiser Logfile"/>
111 <data name="lastgraph" format="text" label="${tool.name} on ${on_string}: VelvetOptimiser LastGraph" hidden="True"/>
112 </outputs>
113
114 <requirments>
115 <requirement type="binary">velveth</requirement>
116 <requirement type="binary">velvetg</requirement>
117 <requirement type="binary">VelvetOptimiser.pl</requirement>
118 </requirments>
119
120 <tests>
121 <test>
122 <param name="start_kmer" value="21"/>
123 <param name="end_kmer" value="29"/>
124 <param name="${inputs.is_separate.separate}" value="false"/>
125 <param name="${inputs.is_separate.forwards_file}" value="vopt_test_reads.dat" ftype="fasta"/>
126 <output name="contigs" file="vopt_test_contigs.dat"/>
127 </test>
128 </tests>
129
130 <help>
131 **Velvet Optimiser Overview**
132
133 Velvet_ is a de novo genomic assembler specially designed for short read sequencing technologies, such as Solexa or 454, developed by Daniel Zerbino and Ewan Birney at the European Bioinformatics Institute (EMBL-EBI), near Cambridge, in the United Kingdom.
134
135 Velvet currently takes in short read sequences, removes errors then produces high quality unique contigs. It then uses paired-end read and long read information, when available, to retrieve the repeated areas between contigs.
136
137 Read the Velvet `documentation`__ for details on using the Vevlet Assembler.
138
139 .. _Velvet: http://www.ebi.ac.uk/~zerbino/velvet/
140
141 .. __: http://www.ebi.ac.uk/~zerbino/velvet/Manual.pdf
142
143 ------
144
145 **VelvetOptimiser**
146
147 VelvetOptimiser_ was written by Simon Gladman of CSIRO/Monash University.
148
149 VelvetOptimiser performs a number of velveth and velvetg steps to try and optimise an assembly based on the metrics provided below.
150
151 .. _VelvetOptimiser: http://bioinformatics.net.au/software.shtml
152
153 ------
154
155 **Velvet Optimiser VLSCI**
156
157 Galaxy tool wrapper for newer versions (2.5.5) of Velvet Optimiser. Written by Simon Gladman of VBC/VLSCI.
158
159 Written for use on the Genomics Virtual Laboratory.
160
161 ------
162
163 **Outputs**
164
165
166 **Contigs**
167
168 The *contigs.fa* file.
169 This fasta file contains the sequences of the contigs longer than 2k, where k is the word-length used in velveth. If you have specified a min contig lgth threshold, then the contigs shorter than that value are omitted.
170 Note that the length and coverage information provided in the header of each contig should therefore be understood in k-mers and in k-mer coverage (cf. 5.1) respectively.
171 The N's in the sequence correspond to gaps between scaffolded contigs. The number of N's corresponds to the estimated length of the gap. For reasons of compatibility with the archives, any gap shorter than 10bp is represented by a sequence of 10 N's.
172
173 **Stats**
174
175 The *stats.txt* file.
176 This file is a simple tabbed-delimited description of the nodes. The column names are pretty much self-explanatory. Note however that node lengths are given in k-mers. To obtain the length in nucleotides of each node you simply need to add k - 1, where k is the word-length used in velveth.
177 The in and out columns correspond to the number of arcs on the 5' and 3' ends of the contig respectively.
178 The coverages in columns short1 cov, short1 Ocov, short2 cov, and short2 Ocov are provided in k-mer coverage (5.1).
179 Also, the difference between # cov and # Ocov is the way these values are computed. In the first count, slightly divergent sequences are added to the coverage tally. However, in the second, stricter count, only the sequences which map perfectly onto the consensus sequence are taken into account.
180
181 **LastGraph**
182
183 The *LastGraph* file.
184 This file describes in its entirety the graph produced by Velvet.
185
186 **AMOS.afg**
187
188 The *velvet_asm.afg* file.
189 This file is mainly designed to be read by the open-source AMOS genome assembly package. Nonetheless, a number of programs are available to transform this kind of file into other assembly file formats (namely ACE, TIGR, Arachne and Celera). See http://amos.sourceforge.net/ for more information.
190 The file describes all the contigs contained in the contigs.fa file (cf 4.2.1).
191
192 **Logfile**
193
194 The Velvet Optimiser's logfile
195
196 **STDERR**
197
198 The Standard Error output of the Optimiser for error messages etc.
199
200 **Dummyout**
201
202 The workings of the perl script intermediary between galaxy and the optimiser. DEBUG information while testing. Will be removed from final version.
203
204 **Advanced options**
205
206 Other Velvetg Options : Extra velvetg options to pass through. eg. -long_mult_cutoff -max_coverage etc (default '') See below for details.
207
208 Minimum coverage cutoff : The minimum cov_cutoff to be used. (default '0').
209
210 Maximum coverage cutoff : The maximum coverage cutoff to consider as a multiplier of the expected coverage. (default '0.8').
211
212 K-mer optimisation function : The optimisation function used for k-mer choice. (default 'n50').
213
214 Coverage cutoff optimisation function : The optimisation function used for cov_cutoff optimisation. (default 'Lbp').
215
216 Velvet optimiser assembly optimisation function can be built from the following variables.
217
218 LNbp = The total number of Ns in large contigs
219
220 Lbp = The total number of base pairs in large contigs
221
222 Lcon = The number of large contigs
223
224 max = The length of the longest contig
225
226 n50 = The n50
227
228 ncon = The total number of contigs
229
230 tbp = The total number of basepairs in contigs
231
232 Examples are:
233
234 'Lbp' = Just the total basepairs in contigs longer than 1kb
235
236 'n50*Lcon' = The n50 times the number of long contigs.
237
238 'n50*Lcon/tbp+log(Lbp)' = The n50 times the number of long contigs divided by the total bases in all contigs plus the log of the number of bases in long contigs (as an example only.)
239
240 **Hash Length**
241
242 The hash length, also known as k-mer length, corresponds to the length, in base pairs, of the words being hashed.
243
244 The hash length is the length of the k-mers being entered in the hash table. Firstly, you must observe three technical constraints::
245
246 # it must be an odd number, to avoid palindromes. If you put in an even number, Velvet will just decrement it and proceed.
247 # it must be below or equal to MAXKMERHASH length (cf. 2.3.3, by default 31bp), because it is stored on 64 bits
248 # it must be strictly inferior to read length, otherwise you simply will not observe any overlaps between reads, for obvious reasons.
249
250 Now you still have quite a lot of possibilities. As is often the case, it's a trade- off between specificity and sensitivity. Longer kmers bring you more specificity (i.e. less spurious overlaps) but lowers coverage (cf. below). . . so there's a sweet spot to be found with time and experience.
251 We like to think in terms of "k-mer coverage", i.e. how many times has a k-mer been seen among the reads. The relation between k-mer coverage Ck and standard (nucleotide-wise) coverage C is Ck = C # (L - k + 1)/L where k is your hash length, and L you read length.
252 Experience shows that this kmer coverage should be above 10 to start getting decent results. If Ck is above 20, you might be "wasting" coverage. Experience also shows that empirical tests with different values for k are not that costly to run! VelvetOptimiser automates these tests for you.
253
254
255 **Velvetg options**
256
257 -scaffolding yes|no : scaffolding of contigs used paired end information (default: on)
258
259 -max_branch_length integer : maximum length in base pair of bubble (default: 100)
260
261 max_divergence floating-point : maximum divergence rate between two branches in a bubble (default: 0.2)
262
263 -max_gap_count integer : maximum number of gaps allowed in the alignment of the two branches of a bubble (default: 3)
264
265 -min_pair_count integer : minimum number of paired end connections to justify the scaffolding of two long contigs (default: 5)
266
267 -max_coverage floating point : removal of high coverage nodes AFTER tour bus (default: no removal)
268
269 -coverage_mask integer : minimum coverage required for confident regions of contigs (default: 1)
270
271 -long_mult_cutoff integer : minimum number of long reads required to merge contigs (default: 2)
272
273 -paired_exp_fraction double : remove all the paired end connections which less than the specified fraction of the expected count (default: 0.1)
274
275 -conserveLong yes|no : preserve sequences with long reads in them (default no)
276
277
278 **Input Files**
279
280 Velvet works mainly with fasta and fastq formats. For paired-end reads, the assumption is that each read is next to its mate
281 read. In other words, if the reads are indexed from 0, then reads 0 and 1 are paired, 2 and 3, 4 and 5, etc.
282
283 Supported file formats are::
284
285 fasta
286 fastq
287 raw
288 sam
289 bam
290
291 Read categories are::
292
293 short (default)
294 shortPaired
295 long (for Sanger, 454 or even reference sequences)
296 longPaired
297 reference (for pre-mapped sam or bam files - see Velvet manual for details on how to use this option)
298
299 </help>
300 </tool>