comparison spades.xml @ 14:74f20c988994 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/spades commit 8734db131db6f76697b500b30f18ee7723d61813"
author iuc
date Sun, 23 Jan 2022 21:31:26 +0000
parents b7829778729f
children d2d1df21dfb9
comparison
equal deleted inserted replaced
13:b7829778729f 14:74f20c988994
1 <tool id="spades" name="SPAdes" version="@TOOL_VERSION@+galaxy1"> 1 <tool id="spades" name="SPAdes" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.01">
2 <description>genome assembler for regular and single-cell projects</description> 2 <description>genome assembler for genomes of regular and single-cell projects</description>
3 <xrefs>
4 <xref type="bio.tools">spades</xref>
5 </xrefs>
6 <macros> 3 <macros>
7 <import>macros.xml</import> 4 <import>macros.xml</import>
8 </macros> 5 </macros>
9 <requirements> 6 <expand macro="requirements"/>
10 <requirement type="package" version="@TOOL_VERSION@">spades</requirement> 7 <expand macro="stdio"/>
11 </requirements> 8 <expand macro="version_command"/>
12 <stdio> 9 <command detect_errors="exit_code"><![CDATA[
13 <exit_code range="1:" /> 10
14 <regex match="Cannot allocate memory" 11 #set $library = 1
15 source="stdout" 12
16 level="fatal_oom" 13 @PREPROCESS_INPUT_FILES_MAIN@
17 description="Out of memory error occurred" /> 14 #if $additional_reads.selector == 'true'
18 <regex match="The reads contain too many k-mers to fit into available memory" 15 @PREPROCESS_INPUT_FILES_ADDITIONAL@
19 source="stdout" 16 #end if
20 level="fatal_oom" 17 @PREPROCESS_NANOPORE_PACBIO_FILES@
21 description="Out of memory error occurred" /> 18 @PREPROCESS_CONTIGS_FILES@
22 </stdio> 19 @PREPROCESS_SANGER_FILES@
23 <command> 20
24 <![CDATA[ 21 ## run
25 ## A real command looks like: spades.py -k 21,33,55,77,99,127 --careful -1 Y.fastq.gz -2 X.fastq.gz -t 24 -o output 22 spades.py
26 23 $operation_mode
27 if [ -n "\$GALAXY_MEMORY_MB" ]; then 24 -o 'output'
28 GALAXY_MEMORY_GB=\$(( GALAXY_MEMORY_MB / 1024 )); 25 @RESOURCES@
29 fi && 26 @INPUT_READS_MAIN@
30 27 #if $additional_reads.selector == 'true'
31 spades.py -o . --tmp-dir "\${TMPDIR:-.}" --disable-gzip-output $sc $onlyassembler $careful -t \${GALAXY_SLOTS:-16} -m \${GALAXY_MEMORY_GB:-250} 28 @INPUT_READS_ADDITIONAL@
32 #if not $kmer_choice.auto_kmer_choice:
33 -k "$kmer_choice.kmers"
34 #end if 29 #end if
35 #if $cov.state == "auto": 30 ## additional reads
36 --cov-cutoff 'auto' 31 @NANOPORE_PACBIO@
37 #elif $cov.state == "value": 32 @SANGER@
38 --cov-cutoff '$cov.cutoff' 33 @CONTIGS@
39 #end if 34 ## parameter
40 $iontorrent 35 --cov-cutoff $cov_cond.cov_cutoff
41 ## Sequence files, libraries 36 @KMER@
42 #for $i, $library in enumerate( $libraries, start=1 ) 37 @PIPELINE_OPTIONS@
43 #if str( $library.lib_type ) == "paired_end": 38 @PHREDOFFSET@
44 #set prefix = 'pe' 39
45 #elif str( $library.lib_type ) == "mate_paired": 40 ## postprocessing
46 #set prefix = 'mp' 41 @STATS@
47 #elif str( $library.lib_type ) == "nxmate_paired": 42 @CORRECTED@
48 #set prefix = 'nxmate' 43 ]]></command>
49 #else:
50 #set prefix = 'hqmp'
51 #end if
52 --$prefix$i-$library.orientation
53 #for $file in $library.files
54 #if $file.file_type.type == "separate"
55 --$prefix$i-1 $file.file_type.fwd_reads.extension.replace('fastqsanger', 'fastq'):$file.file_type.fwd_reads
56 --$prefix$i-2 $file.file_type.fwd_reads.extension.replace('fastqsanger', 'fastq'):$file.file_type.rev_reads
57 #elif $file.file_type.type == "interleaved"
58 --$prefix$i-12 $file.file_type.interleaved_reads.extension.replace('fastqsanger', 'fastq'):$file.file_type.interleaved_reads
59 #elif $file.file_type.type == "merged"
60 --$prefix$i-m $file.file_type.merged_reads.extension.replace('fastqsanger', 'fastq'):$file.file_type.merged_reads
61 #elif $file.file_type.type == "unpaired"
62 --$prefix$i-s $file.file_type.unpaired_reads.extension.replace('fastqsanger', 'fastq'):$file.file_type.unpaired_reads
63 #elif $file.file_type.type == "paired-collection"
64 --$prefix$i-1 $file.file_type.fastq_collection.forward.extension.replace('fastqsanger', 'fastq'):$file.file_type.fastq_collection.forward
65 --$prefix$i-2 $file.file_type.fastq_collection.reverse.extension.replace('fastqsanger', 'fastq'):$file.file_type.fastq_collection.reverse
66 #end if
67 #end for
68 #end for
69 #for $read in $pacbio_reads:
70 #if $read:
71 --pacbio fastq:$read
72 #end if
73 #end for
74 #for $read in $nanopore_reads:
75 #if $read:
76 --nanopore fastq:$read
77 #end if
78 #end for
79 #for $read in $sanger_reads:
80 #if $read:
81 --sanger $read.extension.replace('fastqsanger', 'fastq'):$read
82 #end if
83 #end for
84 #for $contig in $trusted_contigs:
85 #if $contig:
86 --trusted-contigs $contig.extension.replace('fastqsanger', 'fastq'):$contig
87 #end if
88 #end for
89 #for $contig in $untrusted_contigs:
90 #if $contig:
91 --untrusted-contigs $contig.extension.replace('fastqsanger', 'fastq'):$contig
92 #end if
93 #end for
94 && python '$write_tsv_script' < contigs.fasta > '$out_contig_stats'
95 && python '$write_tsv_script' < scaffolds.fasta > '$out_scaffold_stats'
96 ]]>
97 </command>
98
99 <configfiles>
100 <configfile name="write_tsv_script"><![CDATA[#!/usr/bin/env python
101 import sys,re
102 search_str = r'^>(NODE|\S+)_(\d+)(?:_|\s)length_(\d+)_cov_(\d+\.*\d*).*\$'
103 replace_str = r'\1_\2\t\3\t\4'
104 cmd = re.compile(search_str)
105 sys.stdout.write('#name\tlength\tcoverage\n')
106 for i,line in enumerate(sys.stdin):
107 if cmd.match(line):
108 sys.stdout.write(cmd.sub(replace_str,line))
109 ]]>
110 </configfile>
111 </configfiles>
112
113 <inputs> 44 <inputs>
114 <param argument="--sc" falsevalue="" help="This option is required for MDA (single-cell) data." label="Single-cell?" name="sc" truevalue="--sc" type="boolean"> 45 <expand macro="operation_mode" help="To run read error correction, reads should be in FASTQ format."/>
115 <option value="false">No</option> 46 <expand macro="input_files_all" format="fastq,fastq.gz,fastqsanger.gz,fasta,fasta.gz" label="FASTA/FASTQ file(s)"/>
116 <option value="true">Yes</option> 47 <expand macro="input_additional_files_all" format="fastq,fastq.gz,fastqsanger.gz,fasta,fasta.gz" label="FASTA/FASTQ file(s)"/>
117 </param> 48 <section name="arf" title="Additional read files">
118 <param argument="--only-assembler" checked="False" falsevalue="" label="Run only assembly? (without read error correction)" name="onlyassembler" truevalue="--only-assembler" type="boolean" /> 49 <expand macro="nanopore_pacbio"/>
119 <param argument="--careful" checked="True" falsevalue="" help="Tries to reduce number of mismatches and short indels. Also runs MismatchCorrector &#8211; a post processing tool, which uses BWA tool (comes with SPAdes)." label="Careful correction?" name="careful" truevalue="--careful" type="boolean" /> 50 <expand macro="sanger"/>
120 <conditional name="kmer_choice"> 51 <expand macro="contigs"/>
121 <param checked="False" falsevalue="false" help="k-mer choices can be chosen by SPAdes instead of being entered manually" label="Automatically choose k-mer values" name="auto_kmer_choice" truevalue="true" type="boolean" /> 52 </section>
122 <when value="false"> 53 <expand macro="pipeline_options">
123 <param help="Comma-separated list of k-mer sizes to be used (all values must be odd, less than 128, listed in ascending order, and smaller than the read length). The default value is 21,33,55." label="K-mers to use, separated by commas" name="kmers" type="text" value="21,33,55" /> 54 <option value="--sc">Single cell mode: required for MDA (single-cell) data (--sc)</option>
124 </when> 55 <option value="--isolate">Isolate: highly recommended for high-coverage isolate and multi-cell data (--isolate)</option>
125 <when value="true" /> 56 <option value="--careful">Careful: ties to reduce the number of mismatches and short indels. Only recommended for small genomes (--careful)</option>
126 </conditional> 57 <option value="--iontorrent">Iontorrent: required when assembling IonTorrent data (--iontorrent)</option>
127 <conditional name="cov"> 58 </expand>
128 <param label="Coverage Cutoff" name="state" type="select"> 59 <expand macro="covcutoff"/>
129 <option value="off">Off</option> 60 <expand macro="kmer" help="If --sc is set the default values are 21,33,55. For multicell datasets K values are automatically selected using maximum read length."/>
130 <option value="value">User Specific</option> 61 <expand macro="phred"/>
131 <option value="auto">Auto</option> 62 <expand macro="optional_output"/>
132 </param>
133 <when value="off" />
134 <when value="value">
135 <param help="coverage cutoff value (a positive float number, or 'auto', or 'off') [default: 'off']" label="Coverage cutoff value" name="cutoff" type="float" value="" />
136 </when>
137 <when value="auto" />
138 </conditional>
139 <param checked="False" falsevalue="" label="Libraries are IonTorrent reads?" name="iontorrent" truevalue="--iontorrent" type="boolean" />
140 <repeat help="It is not possible to specify only mate-pair libraries. Scaffolds are not produced if neither a paired-end nor a mate-pair library is provided." min="1" max="9" name="libraries" title="Libraries">
141 <param label="Library type" name="lib_type" type="select">
142 <option value="paired_end">Paired-end / Single reads</option>
143 <option value="mate_paired">Mate pairs</option>
144 <option value="high_mate_paired">High Quality Mate pairs</option>
145 <option value="nxmate_paired">Lucigen NxMate pairs</option>
146 </param>
147 <param label="Orientation" name="orientation" type="select">
148 <option selected="true" value="fr"><![CDATA[-> <- (fr)]]></option>
149 <option value="rf"><![CDATA[<- -> (rf)]]></option>
150 <option value="ff"><![CDATA[-> -> (ff)]]></option>
151 </param>
152 <repeat min="1" name="files" title="Files">
153 <conditional name="file_type">
154 <param label="Select file format" name="type" type="select">
155 <option value="separate">Separate input files</option>
156 <option value="interleaved">Interleaved files</option>
157 <option value="merged">Merged files</option>
158 <option value="unpaired">Unpaired/Single reads</option>
159 <option value="paired-collection">Paired List Collection</option>
160 </param>
161 <when value="separate">
162 <param format="@INTYPES@" help="FASTQ format" label="Forward reads" name="fwd_reads" type="data" />
163 <param format="@INTYPES@" help="FASTQ format" label="Reverse reads" name="rev_reads" type="data" />
164 </when>
165 <when value="interleaved">
166 <param format="@INTYPES@" help="FASTQ format" label="Interleaved paired reads" name="interleaved_reads" type="data" />
167 </when>
168 <when value="merged">
169 <param format="@INTYPES@" help="FASTQ format" label="Merged paired reads" name="merged_reads" type="data" />
170 </when>
171 <when value="unpaired">
172 <param format="@INTYPES@" help="FASTQ format" label="Unpaired reads" name="unpaired_reads" type="data" />
173 </when>
174 <when value="paired-collection">
175 <param collection_type="paired" format="@INTYPES@" help="FASTQ format" label="Paired-end reads collection" name="fastq_collection" optional="false" type="data_collection" />
176 </when>
177 </conditional>
178 </repeat>
179 </repeat>
180 <param optional="true" format="@INTYPES@" label="PacBio CLR reads" multiple="true" name="pacbio_reads" type="data" />
181 <param optional="true" format="@INTYPES@" label="Nanopore reads" multiple="true" name="nanopore_reads" type="data" />
182 <param optional="true" format="@INTYPES@" label="Sanger reads" multiple="true" name="sanger_reads" type="data" />
183 <param optional="true" format="@INTYPES@" label="Trusted contigs" multiple="true" name="trusted_contigs" type="data" />
184 <param optional="true" format="@INTYPES@" label="Untrusted contigs" multiple="true" name="untrusted_contigs" type="data" />
185 <param name="contig_graph_out" type="boolean" checked="False" label="Output final assembly graph (contigs)?" help="Will output the final assembly graph (contigs) in fastg format for visualisation" />
186 <param name="scaffold_graph_out" type="boolean" checked="False" label="Output final assembly graph with scaffolds?" help="Will output the final assembly graph with scaffold information in gfa format for visualisation" />
187 </inputs> 63 </inputs>
188
189 <outputs> 64 <outputs>
190 <data format="tabular" label="${tool.name} on ${on_string}: contig stats" name="out_contig_stats" > 65 <expand macro="out_ag"/>
191 <actions> 66 <expand macro="out_ags"/>
192 <action name="column_names" type="metadata" default="name,length,coverage"/> 67 <expand macro="out_cn"/>
193 </actions> 68 <expand macro="out_cp"/>
194 </data> 69 <expand macro="out_cr"/>
195 <data format="tabular" label="${tool.name} on ${on_string}: scaffold stats" name="out_scaffold_stats" > 70 <expand macro="out_cs"/>
196 <actions> 71 <expand macro="out_l"/>
197 <action name="column_names" type="metadata" default="name,length,coverage"/> 72 <expand macro="out_sc"/>
198 </actions> 73 <expand macro="out_sp"/>
199 </data> 74 <expand macro="out_ss"/>
200 <data format="fasta" from_work_dir="contigs.fasta" label="${tool.name} on ${on_string}: contigs (fasta)" name="out_contigs" />
201 <data format="fasta" from_work_dir="scaffolds.fasta" label="${tool.name} on ${on_string}: scaffolds (fasta)" name="out_scaffolds" />
202 <data format="txt" from_work_dir="spades.log" label="${tool.name} on ${on_string}: log" name="out_log" />
203 <data format="txt" from_work_dir="assembly_graph.fastg" label="${tool.name} on ${on_string}: assembly graph" name="contig_graph">
204 <filter>contig_graph_out</filter>
205 </data>
206 <data format="txt" from_work_dir="assembly_graph_with_scaffolds.gfa" label="${tool.name} on ${on_string}: assembly graph with scaffolds" name="scaffold_graph">
207 <filter>scaffold_graph_out</filter>
208 </data>
209 </outputs> 75 </outputs>
210 <tests> 76 <tests>
211 <test> <!-- Test 1 - basic test with k=33 --> 77 <!--
212 <param name="sc" value="false" /> 78 used in a test:
213 <param name="careful" value="false" /> 79 single library: 12, 1, 2
214 <param name="kmers" value="33" /> 80 multiple libraries: s, pe#-12, pe#-1, pe#-2, pe#-<or>
215 <param name="lib_type" value="paired_end" /> 81 k, phred-offset, disablerr, iontorrent, careful, isolate, only-assembler, only-error-correction, sc
216 <param ftype="fastq" name="fwd_reads" value="ecoli_1K_1.fq" /> 82
217 <param ftype="fastq" name="rev_reads" value="ecoli_1K_2.fq" /> 83 not used in a test:
218 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 84 multiple libraries: pe#-m, pe#-s, mp#-12, mp#-1, mp#-2, mp#-<or>, mp#-s, hqmp#-12, hqmp#-1, hqmp#-2, hqmp#-s, hqmp#-<or>, nxmate#-1, nxmate-#2
219 <output name="out_contig_stats"> 85 -->
220 <assert_contents> 86
221 <has_text_matching expression="NODE_1\t1000"/> 87 <!-- #1 single, interlaced, fastq.gz, default parameters -->
222 </assert_contents> 88 <test expect_num_outputs="4">
223 </output> 89 <conditional name="singlePaired">
224 </test> 90 <param name="sPaired" value="paired_interlaced"/>
225 <test> <!-- Test 2 - basic test with k=33 fasta input --> 91 <param name="input1" value="ecoli_1K.fastq.gz"/>
226 <param name="sc" value="false" /> 92 </conditional>
227 <param name="onlyassembler" value="true"/> 93 <output name="out_ag">
228 <param name="careful" value="false" /> 94 <assert_contents>
229 <param name="kmers" value="33" /> 95 <has_n_lines n="36"/>
230 <param name="lib_type" value="paired_end" /> 96 <has_text_matching expression=">EDGE_.+"/>
231 <param ftype="fasta" name="fwd_reads" value="ecoli_1K_1.fasta" /> 97 </assert_contents>
232 <param ftype="fasta" name="rev_reads" value="ecoli_1K_2.fasta" /> 98 </output>
233 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 99 <output name="out_ags">
234 <output name="out_contig_stats"> 100 <assert_contents>
235 <assert_contents> 101 <has_n_lines n="2"/>
236 <has_text_matching expression="NODE_1\t1000"/> 102 <has_text_matching expression="S.+"/>
237 </assert_contents> 103 </assert_contents>
238 </output> 104 </output>
239 </test> 105 <output name="out_cn">
240 <test> <!-- Test 3 - basic test with k=33 and gzipped input --> 106 <assert_contents>
241 <param name="sc" value="false" /> 107 <has_n_lines n="18"/>
242 <param name="careful" value="false" /> 108 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
243 <param name="kmers" value="33" /> 109 </assert_contents>
244 <param name="lib_type" value="paired_end" /> 110 </output>
245 <param ftype="fastq.gz" name="fwd_reads" value="ecoli_1K_1.fq.gz" /> 111 <output name="out_sc">
246 <param ftype="fastq.gz" name="rev_reads" value="ecoli_1K_2.fq.gz" /> 112 <assert_contents>
247 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 113 <has_n_lines n="18"/>
248 <output name="out_contig_stats"> 114 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
249 <assert_contents> 115 </assert_contents>
250 <has_text_matching expression="NODE_1\t1000"/> 116 </output>
251 </assert_contents> 117 </test>
252 </output> 118 <!-- #2 single, separate, fastq, custom parameters -->
253 </test> 119 <test expect_num_outputs="9">
254 <test> <!-- Test 4 - auto k --> 120 <conditional name="singlePaired">
255 <param name="sc" value="false" /> 121 <param name="sPaired" value="paired"/>
256 <param name="careful" value="false" /> 122 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
257 <param name="auto_kmer_choice" value="true" /> 123 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
258 <param name="lib_type" value="paired_end" /> 124 </conditional>
259 <param ftype="fastq" name="fwd_reads" value="ecoli_1K_1.fq" /> 125 <param name="mode_sel" value="--isolate,--disable-rr,--iontorrent"/>
260 <param ftype="fastq" name="rev_reads" value="ecoli_1K_2.fq" /> 126 <conditional name="cov_cond">
261 <output compare="re_match" file="auto_kmer_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 127 <param name="cov_cutoff" value="auto"/>
262 </test> 128 </conditional>
263 <test> <!-- Test 5 - k=77 --> 129 <conditional name="kmer_cond">
264 <param name="sc" value="false" /> 130 <param name="kmer_sel" value="manual"/>
265 <param name="careful" value="false" /> 131 <param name="manual" value="33"/>
266 <param name="kmers" value="77" /> 132 </conditional>
267 <param name="lib_type" value="paired_end" /> 133 <param name="phred_offset" value="33"/>
268 <param ftype="fastq" name="fwd_reads" value="ecoli_1K_1.fq" /> 134 <param name="optional_output" value="ag,ags,cn,cp,cs,sc,sp,ss,l"/>
269 <param ftype="fastq" name="rev_reads" value="ecoli_1K_2.fq" /> 135 <output name="out_ag">
270 <output compare="re_match" file="kmer_77_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 136 <assert_contents>
271 </test> 137 <has_n_lines n="36"/>
272 <test> <!-- Test 6 - test for extra graph outputs --> 138 <has_text_matching expression=">EDGE_.+"/>
273 <param name="sc" value="false" /> 139 </assert_contents>
274 <param name="careful" value="false" /> 140 </output>
275 <param name="kmers" value="33" /> 141 <output name="out_ags">
276 <param name="lib_type" value="paired_end" /> 142 <assert_contents>
277 <param ftype="fastq" name="fwd_reads" value="ecoli_1K_1.fq" /> 143 <has_n_lines n="1"/>
278 <param ftype="fastq" name="rev_reads" value="ecoli_1K_2.fq" /> 144 <has_text_matching expression="S.+"/>
279 <param name="contig_graph_out" value="true" /> 145 </assert_contents>
280 <param name="scaffold_graph_out" value="true" /> 146 </output>
281 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 147 <output name="out_cn">
282 <output name="out_contig_stats"> 148 <assert_contents>
283 <assert_contents> 149 <has_n_lines n="18"/>
284 <has_text_matching expression="NODE_1\t1000"/> 150 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
285 </assert_contents> 151 </assert_contents>
286 </output> 152 </output>
287 <output name="contig_graph"> 153 <output name="out_cp">
288 <assert_contents> 154 <assert_contents>
289 <has_text text=">EDGE_"/> 155 <has_n_lines n="0"/>
290 </assert_contents> 156 </assert_contents>
291 </output> 157 </output>
292 <output name="scaffold_graph"> 158 <output name="out_cs">
293 <assert_contents> 159 <assert_contents>
294 <has_text text="NODE_"/> 160 <has_n_lines n="1"/>
295 </assert_contents> 161 <has_text_matching expression="#name&#009;length&#009;coverage"/>
296 </output> 162 </assert_contents>
297 </test> 163 </output>
298 <test> <!-- Test 7 - basic test with k=33 and fastsanger input --> 164 <output name="out_l">
299 <param name="sc" value="false" /> 165 <assert_contents>
300 <param name="careful" value="false" /> 166 <has_text_matching expression="Thank you for using SPAdes!"/>
301 <param name="kmers" value="33" /> 167 </assert_contents>
302 <param name="lib_type" value="paired_end" /> 168 </output>
303 <param ftype="fastqsanger" name="fwd_reads" value="ecoli_1K_1.fq" /> 169 <output name="out_sc">
304 <param ftype="fastqsanger" name="rev_reads" value="ecoli_1K_2.fq" /> 170 <assert_contents>
305 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 171 <has_n_lines n="0"/>
306 <output name="out_contig_stats"> 172 </assert_contents>
307 <assert_contents> 173 </output>
308 <has_text_matching expression="NODE_1\t1000"/> 174 <output name="out_sp">
309 </assert_contents> 175 <assert_contents>
310 </output> 176 <has_n_lines n="0"/>
311 </test> 177 </assert_contents>
312 <test> <!-- Test 8 - basic test with k=33 and fastsanger.gz input --> 178 </output>
313 <param name="sc" value="false" /> 179 <output name="out_ss">
314 <param name="careful" value="false" /> 180 <assert_contents>
315 <param name="kmers" value="33" /> 181 <has_n_lines n="0"/>
316 <param name="lib_type" value="paired_end" /> 182 </assert_contents>
317 <param ftype="fastqsanger.gz" name="fwd_reads" value="ecoli_1K_1.fq.gz" /> 183 </output>
318 <param ftype="fastqsanger.gz" name="rev_reads" value="ecoli_1K_2.fq.gz" /> 184 </test>
319 <output compare="re_match" file="kmer_33_output.fa" ftype="fasta" lines_diff="1" name="out_contigs" /> 185 <!-- #3 single, separate, fasta, default parameters -->
320 <output name="out_contig_stats"> 186 <test expect_num_outputs="4">
321 <assert_contents> 187 <param name="operation_mode" value="--only-assembler"/>
322 <has_text_matching expression="NODE_1\t1000"/> 188 <conditional name="singlePaired">
189 <param name="sPaired" value="paired"/>
190 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
191 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
192 </conditional>
193 <output name="out_ag">
194 <assert_contents>
195 <has_n_lines n="36"/>
196 <has_text_matching expression=">EDGE_.+"/>
197 </assert_contents>
198 </output>
199 <output name="out_ags">
200 <assert_contents>
201 <has_n_lines n="2"/>
202 <has_text_matching expression="S.+"/>
203 </assert_contents>
204 </output>
205 <output name="out_cn">
206 <assert_contents>
207 <has_n_lines n="18"/>
208 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
209 </assert_contents>
210 </output>
211 <output name="out_sc">
212 <assert_contents>
213 <has_n_lines n="18"/>
214 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
215 </assert_contents>
216 </output>
217 </test>
218 <!-- #4 multiple, single & paired-end within same library: careful mode -->
219 <test expect_num_outputs="4">
220 <conditional name="singlePaired">
221 <param name="sPaired" value="single"/>
222 <param name="input1" value="ecoli_1K.fastq.gz"/>
223 </conditional>
224 <conditional name="additional_reads">
225 <param name="selector" value="true"/>
226 <conditional name="singlePaired">
227 <param name="sPaired" value="paired"/>
228 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
229 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
230 </conditional>
231 </conditional>
232 <param name="mode_sel" value="--careful"/>
233 <output name="out_ag">
234 <assert_contents>
235 <has_n_lines n="36"/>
236 <has_text_matching expression=">EDGE_.+"/>
237 </assert_contents>
238 </output>
239 <output name="out_ags">
240 <assert_contents>
241 <has_n_lines n="2"/>
242 <has_text_matching expression="S.+"/>
243 </assert_contents>
244 </output>
245 <output name="out_cn">
246 <assert_contents>
247 <has_n_lines n="18"/>
248 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
249 </assert_contents>
250 </output>
251 <output name="out_sc">
252 <assert_contents>
253 <has_n_lines n="18"/>
254 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
255 </assert_contents>
256 </output>
257 </test>
258 <!-- #5 multiple, single & paired-end in different libraries -->
259 <test expect_num_outputs="4">
260 <param name="operation_mode" value="--only-assembler"/>
261 <conditional name="singlePaired">
262 <param name="sPaired" value="single"/>
263 <param name="input1" value="ecoli_1K.fastq.gz"/>
264 </conditional>
265 <conditional name="additional_reads">
266 <param name="selector" value="true"/>
267 <conditional name="singlePaired">
268 <param name="sPaired" value="paired"/>
269 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
270 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
271 </conditional>
272 </conditional>
273 <param name="mode_sel" value="--careful"/>
274 <output name="out_ag">
275 <assert_contents>
276 <has_n_lines n="36"/>
277 <has_text_matching expression=">EDGE_.+"/>
278 </assert_contents>
279 </output>
280 <output name="out_ags">
281 <assert_contents>
282 <has_n_lines n="2"/>
283 <has_text_matching expression="S.+"/>
284 </assert_contents>
285 </output>
286 <output name="out_cn">
287 <assert_contents>
288 <has_n_lines n="18"/>
289 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
290 </assert_contents>
291 </output>
292 <output name="out_sc">
293 <assert_contents>
294 <has_n_lines n="18"/>
295 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
296 </assert_contents>
297 </output>
298 </test>
299 <!-- #6 only corrected reads are created as an output -->
300 <test expect_num_outputs="2">
301 <param name="operation_mode" value="--only-error-correction"/>
302 <conditional name="singlePaired">
303 <param name="sPaired" value="paired_interlaced"/>
304 <param name="input1" value="ecoli_1K.fastq.gz"/>
305 </conditional>
306 <param name="mode_sel" value="--careful"/>
307 <param name="optional_output" value="cr,l"/>
308 <output_collection name="out_cr" type="list" count="3">
309 <element name="ecoli_1K.fastq.gz_1.00.0_0.cor">
310 <assert_contents>
311 <has_size value="130317" delta="1000"/>
312 </assert_contents>
313 </element>
314 <element name="ecoli_1K.fastq.gz_2.00.0_0.cor">
315 <assert_contents>
316 <has_size value="130317" delta="1000"/>
317 </assert_contents>
318 </element>
319 <element name="ecoli_1K.fastq.gz__unpaired.00.0_0.cor">
320 <assert_contents>
321 <has_size value="20" delta="5"/>
322 </assert_contents>
323 </element>
324 </output_collection>
325 <output name="out_l">
326 <assert_contents>
327 <has_text_matching expression="Thank you for using SPAdes!"/>
328 </assert_contents>
329 </output>
330 </test>
331 <!-- #7 only corrected reads are created as an output -->
332 <test expect_num_outputs="2">
333 <param name="operation_mode" value="--only-error-correction"/>
334 <conditional name="singlePaired">
335 <param name="sPaired" value="paired_interlaced"/>
336 <param name="input1" value="ecoli_1K.fastq.gz"/>
337 </conditional>
338 <param name="mode_sel" value="--careful,--sc"/>
339 <param name="optional_output" value="cr,l"/>
340 <output_collection name="out_cr" type="list" count="3">
341 <element name="ecoli_1K.fastq.gz_1.00.0_0.cor">
342 <assert_contents>
343 <has_size value="130317" delta="1000"/>
344 </assert_contents>
345 </element>
346 <element name="ecoli_1K.fastq.gz_2.00.0_0.cor">
347 <assert_contents>
348 <has_size value="130317" delta="1000"/>
349 </assert_contents>
350 </element>
351 <element name="ecoli_1K.fastq.gz__unpaired.00.0_0.cor">
352 <assert_contents>
353 <has_size value="20" delta="5"/>
354 </assert_contents>
355 </element>
356 </output_collection>
357 <output name="out_l">
358 <assert_contents>
359 <has_text_matching expression="Thank you for using SPAdes!"/>
360 </assert_contents>
361 </output>
362 </test>
363 <!-- #8 -->
364 <test expect_num_outputs="4">
365 <param name="operation_mode" value="--only-assembler"/>
366 <conditional name="singlePaired">
367 <param name="sPaired" value="paired_interlaced"/>
368 <param name="input1" value="ecoli_1K.fastq.gz"/>
369 </conditional>
370 <param name="mode_sel" value="--sc"/>
371 <output name="out_ag">
372 <assert_contents>
373 <has_n_lines n="36"/>
374 <has_text_matching expression=">EDGE_7_length_1000_cov_140.639153"/>
375 </assert_contents>
376 </output>
377 <output name="out_ags">
378 <assert_contents>
379 <has_n_lines n="2"/>
380 <has_text_matching expression="S.+"/>
381 </assert_contents>
382 </output>
383 <output name="out_cn">
384 <assert_contents>
385 <has_n_lines n="18"/>
386 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
387 </assert_contents>
388 </output>
389 <output name="out_sc">
390 <assert_contents>
391 <has_n_lines n="18"/>
392 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
393 </assert_contents>
394 </output>
395 </test>
396 <!-- #9 only corrected reads are created as an output -->
397 <test expect_num_outputs="2">
398 <param name="operation_mode" value="--only-error-correction"/>
399 <conditional name="singlePaired">
400 <param name="sPaired" value="paired_interlaced"/>
401 <param name="input1" value="ecoli_1K.fastq.gz"/>
402 </conditional>
403 <param name="optional_output" value="cr,l"/>
404 <output_collection name="out_cr" type="list" count="3">
405 <element name="ecoli_1K.fastq.gz_1.00.0_0.cor">
406 <assert_contents>
407 <has_size value="130317" delta="1000"/>
408 </assert_contents>
409 </element>
410 <element name="ecoli_1K.fastq.gz_2.00.0_0.cor">
411 <assert_contents>
412 <has_size value="130317" delta="1000"/>
413 </assert_contents>
414 </element>
415 <element name="ecoli_1K.fastq.gz__unpaired.00.0_0.cor">
416 <assert_contents>
417 <has_size value="20" delta="5"/>
418 </assert_contents>
419 </element>
420 </output_collection>
421 <output name="out_l">
422 <assert_contents>
423 <has_text_matching expression="Thank you for using SPAdes!"/>
424 </assert_contents>
425 </output>
426 </test>
427 <!-- #10 only corrected reads are created as an output -->
428 <test expect_num_outputs="2">
429 <param name="operation_mode" value="--only-error-correction"/>
430 <conditional name="singlePaired">
431 <param name="sPaired" value="paired_interlaced"/>
432 <param name="input1" value="ecoli_1K.fastq.gz"/>
433 </conditional>
434 <param name="mode_sel" value="--sc"/>
435 <param name="optional_output" value="cr,l"/>
436 <output_collection name="out_cr" type="list" count="3">
437 <element name="ecoli_1K.fastq.gz_1.00.0_0.cor">
438 <assert_contents>
439 <has_size value="130317" delta="1000"/>
440 </assert_contents>
441 </element>
442 <element name="ecoli_1K.fastq.gz_2.00.0_0.cor">
443 <assert_contents>
444 <has_size value="130317" delta="1000"/>
445 </assert_contents>
446 </element>
447 <element name="ecoli_1K.fastq.gz__unpaired.00.0_0.cor">
448 <assert_contents>
449 <has_size value="20" delta="5"/>
450 </assert_contents>
451 </element>
452 </output_collection>
453 <output name="out_l">
454 <assert_contents>
455 <has_text_matching expression="Thank you for using SPAdes!"/>
456 </assert_contents>
457 </output>
458 </test>
459 <!-- #11 -->
460 <test expect_num_outputs="4">
461 <conditional name="singlePaired">
462 <param name="sPaired" value="paired_interlaced"/>
463 <param name="input1" value="ecoli_1K.fastq.gz"/>
464 </conditional>
465 <param name="mode_sel" value="--sc"/>
466 <output name="out_ag">
467 <assert_contents>
468 <has_n_lines n="36"/>
469 <has_text_matching expression=">EDGE_5_length_1000_cov_140.620106"/>
470 </assert_contents>
471 </output>
472 <output name="out_ags">
473 <assert_contents>
474 <has_n_lines n="2"/>
475 <has_text_matching expression="S.+"/>
476 </assert_contents>
477 </output>
478 <output name="out_cn">
479 <assert_contents>
480 <has_n_lines n="18"/>
481 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
482 </assert_contents>
483 </output>
484 <output name="out_sc">
485 <assert_contents>
486 <has_n_lines n="18"/>
487 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
488 </assert_contents>
489 </output>
490 </test>
491 <!-- #12 -->
492 <test expect_num_outputs="4">
493 <conditional name="singlePaired">
494 <param name="sPaired" value="paired"/>
495 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
496 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
497 </conditional>
498 <param name="mode_sel" value="--sc,--careful"/>
499 <output name="out_ag">
500 <assert_contents>
501 <has_n_lines n="36"/>
502 <has_text_matching expression=">EDGE_5_length_1000_cov_140.620106"/>
503 </assert_contents>
504 </output>
505 <output name="out_ags">
506 <assert_contents>
507 <has_n_lines n="2"/>
508 <has_text_matching expression="S.+"/>
509 </assert_contents>
510 </output>
511 <output name="out_cn">
512 <assert_contents>
513 <has_n_lines n="18"/>
514 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
515 </assert_contents>
516 </output>
517 <output name="out_sc">
518 <assert_contents>
519 <has_n_lines n="18"/>
520 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
521 </assert_contents>
522 </output>
523 </test>
524 <!-- #13 -->
525 <test expect_num_outputs="4">
526 <param name="operation_mode" value="--only-assembler"/>
527 <conditional name="singlePaired">
528 <param name="sPaired" value="paired"/>
529 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
530 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
531 </conditional>
532 <param name="mode_sel" value="--sc,--careful"/>
533 <output name="out_ag">
534 <assert_contents>
535 <has_n_lines n="36"/>
536 <has_text_matching expression=">EDGE\_.+"/>
537 </assert_contents>
538 </output>
539 <output name="out_ags">
540 <assert_contents>
541 <has_n_lines n="2"/>
542 <has_text_matching expression="S.+"/>
543 </assert_contents>
544 </output>
545 <output name="out_cn">
546 <assert_contents>
547 <has_n_lines n="18"/>
548 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
549 </assert_contents>
550 </output>
551 <output name="out_sc">
552 <assert_contents>
553 <has_n_lines n="18"/>
554 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
555 </assert_contents>
556 </output>
557 </test>
558 <!-- #14 interlaced, fastq.gz, hybrid assembly: nanopore, pacbio sanger and trustedcontigs -->
559 <test expect_num_outputs="4">
560 <conditional name="singlePaired">
561 <param name="sPaired" value="paired_interlaced"/>
562 <param name="input1" value="ecoli_1K.fastq.gz"/>
563 </conditional>
564 <section name="arf">
565 <param name="nanopore" value="ecoli_1K.fastq.gz"/>
566 <param name="pacbio" value="ecoli_1K.fastq.gz"/>
567 <param name="sanger" value="ecoli_1K.fastq.gz"/>
568 <param name="trusted_contigs" value="ecoli_1K.fasta.gz"/>
569 </section>
570 <assert_command>
571 <has_text text="--nanopore"/>
572 <has_text text="--pacbio"/>
573 <has_text text="--sanger"/>
574 <has_text text="--trusted-contigs"/>
575 </assert_command>
576 <output name="out_ag">
577 <assert_contents>
578 <has_n_lines n="36"/>
579 <has_text_matching expression=">EDGE_.+"/>
580 </assert_contents>
581 </output>
582 <output name="out_ags">
583 <assert_contents>
584 <has_n_lines n="2"/>
585 <has_text_matching expression="S.+"/>
586 </assert_contents>
587 </output>
588 <output name="out_cn">
589 <assert_contents>
590 <has_n_lines n="18"/>
591 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
592 </assert_contents>
593 </output>
594 <output name="out_sc">
595 <assert_contents>
596 <has_n_lines n="18"/>
597 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
598 </assert_contents>
599 </output>
600 </test>
601 <!-- #15 mate-pair reads orientation rf-->
602 <test expect_num_outputs="4">
603 <conditional name="singlePaired">
604 <param name="sPaired" value="paired"/>
605 <param name="input1" value="ecoli_1K_1.fastq.gz"/>
606 <param name="input2" value="ecoli_1K_2.fastq.gz"/>
607 <param name="type_paired" value="hqmp"/>
608 <param name="orientation" value="rf"/>
609 </conditional>
610 <output name="out_ag">
611 <assert_contents>
612 <has_n_lines n="36"/>
613 <has_text_matching expression=">EDGE_.+"/>
614 </assert_contents>
615 </output>
616 <output name="out_ags">
617 <assert_contents>
618 <has_n_lines n="1"/>
619 </assert_contents>
620 </output>
621 <output name="out_cn">
622 <assert_contents>
623 <has_n_lines n="18"/>
624 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
625 </assert_contents>
626 </output>
627 <output name="out_sc">
628 <assert_contents>
629 <has_n_lines n="0"/>
630 </assert_contents>
631 </output>
632 </test>
633 <!-- #16 high-quality mate-pair reads collection-->
634 <test expect_num_outputs="4">
635 <conditional name="singlePaired">
636 <param name="sPaired" value="paired_collection"/>
637 <param name="input">
638 <collection type="list:paired">
639 <element name="ecoli.fastq">
640 <collection type="paired">
641 <element name="forward" value="ecoli_1K_1.fastq.gz" ftype="fastqsanger.gz"/>
642 <element name="reverse" value="ecoli_1K_2.fastq.gz" ftype="fastqsanger.gz"/>
643 </collection>
644 </element>
645 </collection>
646 </param>
647 <param name="type_paired" value="hqmp"/>
648 </conditional>
649 <output name="out_ag">
650 <assert_contents>
651 <has_n_lines n="36"/>
652 <has_text_matching expression=">EDGE_.+"/>
653 </assert_contents>
654 </output>
655 <output name="out_ags">
656 <assert_contents>
657 <has_n_lines n="2"/>
658 <has_text_matching expression="S.+"/>
659 </assert_contents>
660 </output>
661 <output name="out_cn">
662 <assert_contents>
663 <has_n_lines n="18"/>
664 <has_text_matching expression=">NODE\_1\_length\_1000\_cov\_.+"/>
665 </assert_contents>
666 </output>
667 <output name="out_sc">
668 <assert_contents>
669 <has_n_lines n="18"/>
670 <has_text_matching expression=">NODE\_1\_length\_1000.+"/>
323 </assert_contents> 671 </assert_contents>
324 </output> 672 </output>
325 </test> 673 </test>
326 </tests> 674 </tests>
327 <help> 675 <help><![CDATA[
328 <![CDATA[ 676 .. class:: infomark
677
329 **What it does** 678 **What it does**
330 679
331 SPAdes – St. Petersburg genome assembler – is intended for both standard isolates and single-cell MDA bacteria assemblies. See http://bioinf.spbau.ru/en/spades for more details on SPAdes. 680 @HELP_WID@
332 681
333 This wrapper runs SPAdes, collects the output, and throws away all the temporary files. It also produces a tab file with contig names, length and coverage. 682 **Input**
334 683
335 **License** 684 @HELP_IN@
336 685
337 SPAdes is developed by and copyrighted to Saint-Petersburg Academic University, and is released under GPLv2. 686 **Output**
338 687
339 This wrapper is copyrighted by Philip Mabon and is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. 688 @HELP_OUT_AG@
340 689 @HELP_OUT_AGS@
341 This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 690 @HELP_OUT_C@
342 691 @HELP_OUT_CP@
343 You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. 692 @HELP_OUT_CR@
344 693 @HELP_OUT_CS@
345 ** Acknowledgments ** 694 @HELP_OUT_L@
346 695 @HELP_OUT_S@
347 Original wrapper developed by Lionel Guy. 696 @HELP_OUT_SP@
348 697 @HELP_OUT_SS@
349 Anton Korobeynikov greatlty helped understanding how SPAdes work, and integrated handy features into SPAdes. 698
350 699
351 Nicola Soranzo fixed various bugs. 700 -------------------
352 701
353 Simon Gladman added fastg optional outputs. 702 .. class:: infomark
354 ]]> 703
355 </help> 704 **IonTorrent data**
356 <citations> 705
357 <citation type="doi">10.1089/cmb.2012.0021</citation> 706 @IONTORRENT@
358 </citations> 707
708 -------------------
709
710 .. class:: infomark
711
712 **References**
713
714 More information are available on `github <https://github.com/ablab/spades>`_ and on the `project website <http://cab.spbu.ru/software/spades>`_.
715 ]]></help>
716 <expand macro="citations">
717 <citation type="doi">10.1089/cmb.2012.0021</citation>
718 <citation type="doi">10.1007/978-3-642-37195-0_13</citation>
719 </expand>
359 </tool> 720 </tool>