comparison velvetoptimiser.xml @ 1:7db5615f4621 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/velvetoptimiser commit 86047b0de9e8a4d26d756049543f87e94e3ec3ae
author iuc
date Thu, 21 Dec 2017 18:23:10 -0500
parents d81360ea69d8
children 0e2b4e3f9ca1
comparison
equal deleted inserted replaced
0:d81360ea69d8 1:7db5615f4621
1 <tool id="velvetoptimiser" name="VelvetOptimiser" version="1.1.0"> 1 <tool id="velvetoptimiser" name="VelvetOptimiser" version="2.2.5">
2 <description>Automatically optimize Velvet assemblies</description>
2 <requirements> 3 <requirements>
3 <requirement type="package" version="1.2.10">velvet</requirement> 4 <requirement type="package" version="1.2.10">velvet</requirement>
4 <requirement type="package" version="2.2.5">velvetoptimiser</requirement> 5 <requirement type="package" version="2.2.5">perl-velvetoptimiser</requirement>
5 </requirements> 6 </requirements>
6 <stdio> 7 <version_command>VelvetOptimiser.pl --version</version_command>
7 <exit_code range="1:" /> 8 <command detect_errors="exit_code"><![CDATA[
8 </stdio> 9 export OMP_NUM_THREADS=2 &&
9 10 export OMP_THREAD_LIMIT=2 &&
10 <command><![CDATA[ 11 VelvetOptimiser.pl
11 export OMP_NUM_THREADS=2 && 12 -t "\${GALAXY_SLOTS:-1}"
12 VelvetOptimiser.pl 13 -s $start_kmer
13 -t \${GALAXY_SLOTS:-2} 14 -e $end_kmer
14 -s $start_kmer 15 -d out
15 -e $end_kmer 16 -f "
16 -d out 17 #for $i in $files:
17 -f " 18 -${i.filetype}
18 #for $i in $files: 19
19 -${i.filetype} 20 #if str($i.paired_type.paired_type_selector) == "paired":
20 21
21 #if str($i.paired_type.paired_type_selector) == "paired": 22 #if $i.__index__ > 1:
22 23 -shortPaired$i.__index__
23 #if $i.__index__ > 1: 24 #else
24 -shortPaired$i.__index__ 25 -shortPaired
25 #else 26 #end if
26 -shortPaired 27
27 #end if 28 -separate '$i.paired_type.input1' '$i.paired_type.input2'
28 29 #end if
29 -separate $i.paired_type.input1 $i.paired_type.input2 30
30 #end if 31 #if str($i.paired_type.paired_type_selector) == "single"
31 32
32 #if str($i.paired_type.paired_type_selector) == "single" 33 #if $i.__index__ > 1
33 34 -short$i.__index__
34 #if $i.__index__ > 1 35 #else
35 -short$i.__index__ 36 -short
36 #else 37 #end if
37 -short 38
38 #end if 39 '$i.paired_type.input1'
39 40 #end if
40 $i.paired_type.input1 41
41 #end if 42 #if str($i.paired_type.paired_type_selector) == "paired_collection"
42 43 #if $i.__index__ > 1
43 #if str($i.paired_type.paired_type_selector) == "paired_collection" 44 -shortPaired$i.__index__
44 #if $i.__index__ > 1 45 #else
45 -shortPaired$i.__index__ 46 -shortPaired
46 #else 47 #end if
47 -shortPaired 48 -separate '$i.paired_type.input1.forward' '$i.paired_type.input1.reverse'
48 #end if 49 #end if
49 -separate $i.paired_type.input1.forward $i.paired_type.input1.reverse 50 #if str($i.paired_type.paired_type_selector) == "paired_iv"
50 #end if 51 #if $i.__index__ > 1
51 #if str($i.paired_type.paired_type_selector) == "paired_iv" 52 -shortPaired$i.__index__
52 #if $i.__index__ > 1 53 #else
53 -shortPaired$i.__index__ 54 -shortPaired
54 #else 55 #end if
55 -shortPaired 56 '$i.paired_type.input1'
56 #end if 57 #end if
57 $i.paired_type.input1 58 #end for
58 #end if 59 "
59 #end for 60
60 " 61 ##if str($advanced.advanced_select) == "advanced"
61 62 $advanced.verbose
62 #if str($advanced.advanced_select) == "advanced" 63 -k '$advanced.optFuncKmer'
63 $advanced.verbose 64 -c '$advanced.optFuncCov'
64 -k $advanced.optFuncKmer 65 #if str($advanced.velvetg_opts) != ""
65 -c $advanced.optFuncCov 66 -o '$advanced.velvetg_opts'
66 #if str($advanced.velvetg_opts) != "" 67 #end if
67 -o "$advanced.velvetg_opts" 68 -m $advanced.minCutoff
68 #end if 69 -z $advanced.maxCutoff
69 -m $advanced.minCovCutoff 70 ##end if
70 -z $advanced.maxCovCutoff
71 #end if
72 ##&> $stderr
73 71
74 ]]></command> 72 ]]></command>
75 <inputs> 73 <inputs>
76 <param name="start_kmer" type="integer" value="31" label="Start k-mer size" help="Odd integer, Lower limit of k-mer size range to search for optimum value" /> 74 <param name="start_kmer" type="integer" value="31" label="Start k-mer size" help="Odd integer, Lower limit of k-mer size range to search for optimum value" />
77 <param name="end_kmer" type="integer" value="191" label="End k-mer size" help="Odd integer, Upper limit of k-mer size range to search for optimum value" /> 75 <param name="end_kmer" type="integer" value="191" label="End k-mer size" help="Odd integer, Upper limit of k-mer size range to search for optimum value" />
78 <param name="kmer_step" type="integer" value="2" label="K-mer search step size" help="Even integer, the k-mer value step size when searching the range" /> 76 <param name="kmer_step" type="integer" value="2" label="K-mer search step size" help="Even integer, the k-mer value step size when searching the range" />
79 77
80 <repeat name="files" title="Input files" min="1"> 78 <repeat name="files" title="Input files" min="1">
81 <param name="filetype" label="Input file type" type="select" help="Input file type"> 79 <param name="filetype" label="Input file type" type="select" help="Input file type">
82 <option value="fastq">Fastq</option> 80 <option value="fastq">Fastq</option>
83 <option value="fasta">Fasta</option> 81 <option value="fasta">Fasta</option>
84 <option value="bam">Bam</option> 82 <option value="bam">Bam</option>
85 </param> 83 </param>
86 <conditional name="paired_type"> 84 <conditional name="paired_type">
87 <param name="paired_type_selector" type="select" label="Single or paired end reads" help="Select between paired and single end data"> 85 <param name="paired_type_selector" type="select" label="Single or paired end reads" help="Select between paired and single end data">
88 <option value="paired">Paired</option> 86 <option value="paired">Paired</option>
89 <option value="single">Single</option> 87 <option value="single">Single</option>
90 <option value="paired_collection">Paired Collection</option> 88 <option value="paired_collection">Paired Collection</option>
91 <option value="paired_iv">Paired Interleaved</option> 89 <option value="paired_iv">Paired Interleaved</option>
92 </param> 90 </param>
93 <when value="paired"> 91 <when value="paired">
94 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select first set of reads" help="Specify dataset with forward reads"/> 92 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select first set of reads" help="Specify dataset with forward reads"/>
95 <param name="input2" type="data" format="fastqsanger,fasta,bam" label="Select second set of reads" help="Specify dataset with reverse reads"/> 93 <param name="input2" type="data" format="fastqsanger,fasta,bam" label="Select second set of reads" help="Specify dataset with reverse reads"/>
96 </when> 94 </when>
97 <when value="single"> 95 <when value="single">
98 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select the reads" help="Specify dataset with the reads"/> 96 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select the reads" help="Specify dataset with the reads"/>
99 </when> 97 </when>
100 <when value="paired_collection"> 98 <when value="paired_collection">
101 <param name="input1" format="fastqsanger,fasta" type="data_collection" collection_type="paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/> 99 <param name="input1" format="fastqsanger,fasta" type="data_collection" collection_type="paired" label="Select a paired collection" help="See help section for an explanation of dataset collections"/>
102 </when> 100 </when>
103 <when value="paired_iv"> 101 <when value="paired_iv">
104 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select set of interleaved reads" help="Specify dataset with interleaved paired reads"/> 102 <param name="input1" type="data" format="fastqsanger,fasta,bam" label="Select set of interleaved reads" help="Specify dataset with interleaved paired reads"/>
105 </when> 103 </when>
106 </conditional> 104 </conditional>
107 </repeat> 105 </repeat>
108 106
109 <conditional name="advanced"> 107 <section name="advanced" title="Advanced Options" expanded="false">
110 <param name="advanced_select" type="select" label="Set advanced parameters?" help="Set more advanced Velvet Optimiser parameters - see help for details"> 108 <param name="verbose" type="boolean" checked="false" truevalue="-v" falsevalue="" label="Verbose" help="Include verbose velvet output in log file" />
111 <option value="basic">Basic</option> 109 <param name="optFuncKmer" type="text" value="n50" label="K-mer optimisation function" help="See help below for possibilities!"/>
112 <option value="advanced">Advanced</option> 110 <param name="optFuncCov" type="text" value="Lbp" label="Coverage cutoff optimisation function" help="See help below for possibilities!"/>
113 </param> 111 <param name="velvetg_opts" type="text" value="" label="Other velvetg options" help="Add any other required velvetg options from the advanced set"/>
114 <when value="basic"></when> 112 <param name="minCutoff" type="integer" value="0" label="Minimum coverage cutoff" help="The minimum coverage cutoff to consider in the optimisation"/>
115 <when value="advanced"> 113 <param name="maxCutoff" 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."/>
116 <param name="verbose" type="boolean" checked="false" truevalue="-v" falsevalue="" label="Verbose" help="Include verbose velvet output in log file" /> 114 </section>
117 <param name="optFuncKmer" type="text" value="n50" label="K-mer optimisation function" help="See help below for possibilities!"/>
118 <param name="optFuncCov" type="text" value="Lbp" label="Coverage cutoff optimisation function" help="See help below for possibilities!"/>
119 <param name="velvetg_opts" type="text" value="" label="Other velvetg options" help="Add any other required velvetg options from the advanced set"/>
120 <param name="minCovCutoff" type="integer" value="0" label="Minimum coverage cutoff" help="The minimum coverage cutoff to consider in the optimisation"/>
121 <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."/>
122 </when>
123 </conditional>
124 </inputs> 115 </inputs>
125 116
126 <outputs> 117 <outputs>
127 <data format="fasta" name="contigs" label="${tool.name} on ${on_string}: Contigs" from_work_dir="out/contigs.fa"/> 118 <data format="fasta" name="contigs" label="${tool.name} on ${on_string}: Contigs" from_work_dir="out/contigs.fa"/>
128 <data format="tabular" name="stats" label="${tool.name} on ${on_string}: Contig Stats" from_work_dir="out/stats.txt"/> 119 <data format="tabular" name="stats" label="${tool.name} on ${on_string}: Contig Stats" from_work_dir="out/stats.txt"/>
129 <data format="tabular" name="logfile" label="${tool.name} on ${on_string}: Log file" hidden="True"> 120 <data format="tabular" name="logfile" label="${tool.name} on ${on_string}: Log file" hidden="true" from_work_dir="*_Logfile.txt"/>
130 <discover_datasets pattern=".+Logfile.+" dir="out" visible="True" />
131 </data>
132 <!-- <data format="tabular" name="stderr" label="${tool.name} on ${on_string}: STDERR" hidden="True" /> -->
133 </outputs> 121 </outputs>
134 122
135 <tests> 123 <tests>
136 <test> 124 <test>
137 <param name="start_kmer" value="21" /> 125 <param name="start_kmer" value="21" />
138 <param name="end_kmer" value="31" /> 126 <param name="end_kmer" value="31" />
139 <param name="files_0|filetype" value="fasta" /> 127 <param name="files_0|filetype" value="fasta" />
140 <param name="files_0|paired_type|paired_type_selector" value="single" /> 128 <param name="files_0|paired_type|paired_type_selector" value="single" />
141 <param name="files_0|paired_type|input1" value="test_reads.fa" ftype="fasta" /> 129 <param name="files_0|paired_type|input1" value="test_reads.fa" ftype="fasta" />
142 <output name="contigs" ftype="fasta" file="test-contigs.fa" /> 130 <output name="contigs" ftype="fasta" file="test-contigs.fa" compare="sim_size"/>
143 </test> 131 </test>
144 </tests> 132 </tests>
145 133
146 <help><![CDATA[ 134 <help><![CDATA[
147 **Velvet Optimiser Overview** 135 **Velvet Optimiser Overview**
148 136
149 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. 137 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.
150 138
151 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. 139 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.
152 140
160 148
161 VelvetOptimiser_ was written by Simon Gladman of CSIRO/Melbourne University. 149 VelvetOptimiser_ was written by Simon Gladman of CSIRO/Melbourne University.
162 150
163 VelvetOptimiser performs a number of velveth and velvetg steps to try and optimise an assembly based on the metrics provided below. 151 VelvetOptimiser performs a number of velveth and velvetg steps to try and optimise an assembly based on the metrics provided below.
164 152
165 .. _VelvetOptimiser: http://bioinformatics.net.au/software.shtml 153 .. _VelvetOptimiser: http://github.com/Slugger70/VelvetOptimiser
166 154
167 **Velvet Optimiser** 155 Galaxy tool wrapper for newer versions (2.5.5) of Velvet Optimiser. Written by Simon Gladman of Melbourne University.
168 156
169 Galaxy tool wrapper for newer versions (2.5.5) of Velvet Optimiser. Written by Simon Gladman of VBC/VLSCI. 157 **Outputs**
170
171 Written for use on the Genomics Virtual Laboratory.
172
173 **Outputs**
174 158
175 159
176 **Contigs** 160 **Contigs**
177 161
178 The *contigs.fa* file. 162 The *contigs.fa* file.
213 197
214 K-mer optimisation function : The optimisation function used for k-mer choice. (default 'n50'). 198 K-mer optimisation function : The optimisation function used for k-mer choice. (default 'n50').
215 199
216 Coverage cutoff optimisation function : The optimisation function used for cov_cutoff optimisation. (default 'Lbp'). 200 Coverage cutoff optimisation function : The optimisation function used for cov_cutoff optimisation. (default 'Lbp').
217 201
218 Velvet optimiser assembly optimisation function can be built from the following variables. 202 Velvet optimiser **assembly optimisation functions** can be built from the following variables.
219 203
220 LNbp = The total number of Ns in large contigs 204 *LNbp* = The total number of Ns in large contigs
221 205
222 Lbp = The total number of base pairs in large contigs 206 *Lbp* = The total number of base pairs in large contigs
223 207
224 Lcon = The number of large contigs 208 *Lcon* = The number of large contigs
225 209
226 max = The length of the longest contig 210 *max* = The length of the longest contig
227 211
228 n50 = The n50 212 *n50* = The n50
229 213
230 ncon = The total number of contigs 214 *ncon* = The total number of contigs
231 215
232 tbp = The total number of basepairs in contigs 216 *tbp* = The total number of basepairs in contigs
233 217
234 Examples are: 218 Examples are:
235 219
236 'Lbp' = Just the total basepairs in contigs longer than 1kb 220 'Lbp' = Just the total basepairs in contigs longer than 1kb
237 221
238 'n50*Lcon' = The n50 times the number of long contigs. 222 'n50*Lcon' = The n50 times the number of long contigs.
239 223
240 '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.) 224 '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.)
225
226 Defaults are:
227
228 *n50* for k-mer length optimisation &
229
230 *Lbp* for coverage cutoff
241 231
242 **Hash Length** 232 **Hash Length**
243 233
244 The hash length, also known as k-mer length, corresponds to the length, in base pairs, of the words being hashed. 234 The hash length, also known as k-mer length, corresponds to the length, in base pairs, of the words being hashed.
245 235
246 The hash length is the length of the k-mers being entered in the hash table. Firstly, you must observe three technical constraints:: 236 The hash length is the length of the k-mers being entered in the hash table. Firstly, you must observe three technical constraints::
247 237 - it must be an odd number, to avoid palindromes. If you put in an even number, Velvet will just decrement it and proceed.
248 # it must be an odd number, to avoid palindromes. If you put in an even number, Velvet will just decrement it and proceed. 238 - it must be below or equal to MAXKMERHASH length (cf. 2.3.3, by default 31bp), because it is stored on 64 bits
249 # it must be below or equal to MAXKMERHASH length (cf. 2.3.3, by default 31bp), because it is stored on 64 bits 239 - it must be strictly inferior to read length, otherwise you simply will not observe any overlaps between reads, for obvious reasons.
250 # it must be strictly inferior to read length, otherwise you simply will not observe any overlaps between reads, for obvious reasons. 240
251 241 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.
252 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. 242 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.
253 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.
254 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. 243 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.
255 244
256 245
257 **Velvetg options** 246 **Velvetg options**
258 247
259 -scaffolding yes|no : scaffolding of contigs used paired end information (default: on) 248 -scaffolding yes|no : scaffolding of contigs used paired end information (default: on)
260 249
261 -max_branch_length integer : maximum length in base pair of bubble (default: 100) 250 -max_branch_length integer : maximum length in base pair of bubble (default: 100)
262 251
263 max_divergence floating-point : maximum divergence rate between two branches in a bubble (default: 0.2) 252 -max_divergence floating-point : maximum divergence rate between two branches in a bubble (default: 0.2)
264 253
265 -max_gap_count integer : maximum number of gaps allowed in the alignment of the two branches of a bubble (default: 3) 254 -max_gap_count integer : maximum number of gaps allowed in the alignment of the two branches of a bubble (default: 3)
266 255
267 -min_pair_count integer : minimum number of paired end connections to justify the scaffolding of two long contigs (default: 5) 256 -min_pair_count integer : minimum number of paired end connections to justify the scaffolding of two long contigs (default: 5)
268 257
298 287
299 288
300 ]]></help> 289 ]]></help>
301 <citations> 290 <citations>
302 <citation type="bibtex">@UNPUBLISHED{GLADMAN2012, 291 <citation type="bibtex">@UNPUBLISHED{GLADMAN2012,
303 author = "Gladman Simon", 292 author = "Gladman Simon",
304 title = "VelvetOptimiser", 293 title = "VelvetOptimiser",
305 year = "2012", 294 year = "2012",
306 note = "https://github.com/slugger70/VelvetOptimiser"} 295 note = "https://github.com/slugger70/VelvetOptimiser"}
307 </citation> 296 </citation>
308 <citation type="doi">10.1101/gr.074492.107</citation> 297 <citation type="doi">10.1101/gr.074492.107</citation>
309 <citation type="doi">10.1371/journal.pone.0008407</citation> 298 <citation type="doi">10.1371/journal.pone.0008407</citation>
310 </citations> 299 </citations>
311 </tool> 300 </tool>