comparison macros.xml @ 4:924e7889aa05 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/stacks2 commit 4e87a14a5479800df9675c1cbcdbe1b11f63653b-dirty
author matthias
date Wed, 27 Feb 2019 09:51:06 -0500
parents 61afc5a3cd8e
children 687f84474d33
comparison
equal deleted inserted replaced
3:61afc5a3cd8e 4:924e7889aa05
5 <requirement type="package" version="@STACKS_VERSION@">stacks</requirement> 5 <requirement type="package" version="@STACKS_VERSION@">stacks</requirement>
6 <yield/> 6 <yield/>
7 </requirements> 7 </requirements>
8 </xml> 8 </xml>
9 9
10 <token name="@STACKS_VERSION@">2.2</token> 10 <token name="@STACKS_VERSION@">2.3c</token>
11 <token name="@WRAPPER_VERSION@">2</token> 11 <token name="@WRAPPER_VERSION@">0</token>
12 12 <!-- fix to 18.01 since https://github.com/galaxyproject/galaxy/pull/7032 -->
13 <xml name="stdio"> 13 <token name="@PROFILE@">18.01</token>
14 <stdio>
15 <exit_code range="1:" level="fatal" description="Error in Stacks execution" />
16 </stdio>
17 </xml>
18 14
19 <xml name="citation"> 15 <xml name="citation">
20 <citations> 16 <citations>
21 <citation type="doi">10.1111/mec.12354</citation> 17 <citation type="doi">10.1111/mec.12354</citation>
22 <citation type="doi">10.1111/mec.12330</citation> 18 <citation type="doi">10.1111/mec.12330</citation>
49 `Stacks manual <http://catchenlab.life.illinois.edu/stacks/manual/>`_ 45 `Stacks manual <http://catchenlab.life.illinois.edu/stacks/manual/>`_
50 46
51 `Stacks google group <http://groups.google.com/group/stacks-users>`_ 47 `Stacks google group <http://groups.google.com/group/stacks-users>`_
52 ]]></token> 48 ]]></token>
53 49
50 <!-- enzyme list for procrad and denovo -->
54 <xml name="enzymes"> 51 <xml name="enzymes">
55
56 <option value="">Unspecified</option> 52 <option value="">Unspecified</option>
57 <option value="aciI">aciI</option> 53 <option value="aciI">aciI</option>
58 <option value="ageI">ageI</option> 54 <option value="ageI">ageI</option>
59 <option value="aluI">aluI</option> 55 <option value="aluI">aluI</option>
60 <option value="apaLI">apaLI</option> 56 <option value="apaLI">apaLI</option>
61 <option value="apeKI">apeKI</option> 57 <option value="apeKI">apeKI</option>
62 <option value="apoI">apoI</option> 58 <option value="apoI">apoI</option>
63 <option value="aseI">aseI</option> 59 <option value="aseI">aseI</option>
64 <option value="bamHI">bamHI</option> 60 <option value="bamHI">bamHI</option>
65 <option value="bbvCI">bbvCI</option> 61 <option value="bbvCI">bbvCI</option>
66 <option value="bfaI">bfaI</option> 62 <option value="bfaI">bfaI</option>
67 <option value="bfuCI">bfuCI</option> 63 <option value="bfuCI">bfuCI</option>
68 <option value="bgIII">bgIII</option> 64 <option value="bgIII">bgIII</option>
69 <option value="bsaHI">bsaHI</option> 65 <option value="bsaHI">bsaHI</option>
91 <option value="ndeI">ndeI</option> 87 <option value="ndeI">ndeI</option>
92 <option value="nheI">nheI</option> 88 <option value="nheI">nheI</option>
93 <option value="nlaIII">nlaIII</option> 89 <option value="nlaIII">nlaIII</option>
94 <option value="notI">notI</option> 90 <option value="notI">notI</option>
95 <option value="nsiI">nsiI</option> 91 <option value="nsiI">nsiI</option>
96 <option value="nspI">nspI</option> 92 <option value="nspI">nspI</option>
97 <option value="pstI">pstI</option> 93 <option value="pstI">pstI</option>
98 <option value="rsaI">rsaI</option> 94 <option value="rsaI">rsaI</option>
99 <option value="sacI">sacI</option> 95 <option value="sacI">sacI</option>
100 <option value="sau3AI">sau3AI</option> 96 <option value="sau3AI">sau3AI</option>
101 <option value="sbfI">sbfI</option> 97 <option value="sbfI">sbfI</option>
114 2>> $output_log && 110 2>> $output_log &&
115 #end if 111 #end if
116 ]]></token> 112 ]]></token>
117 <token name="@CAT_LOG_TO_STDERR@"><![CDATA[ 113 <token name="@CAT_LOG_TO_STDERR@"><![CDATA[
118 #if $output_log 114 #if $output_log
119 cat $output_log 2>&1 115 cat $output_log 2>&1
120 #end if 116 #end if
121 ]]></token> 117 ]]></token>
122 <xml name="in_log"> 118 <xml name="in_log">
123 <param name="add_log" type="boolean" checked="false" truevalue="yes" falsevalue="no" label="Add log output as data set" /> 119 <param name="add_log" type="boolean" checked="false" truevalue="yes" falsevalue="no" label="Add log output as dataset" />
124 </xml> 120 </xml>
125 <xml name="out_log"> 121 <xml name="out_log">
126 <data format="txt" name="output_log" label="${tool.name} on ${on_string} log file"> 122 <data format="txt" name="output_log" label="${tool.name} on ${on_string} log file">
127 <filter>add_log</filter> 123 <filter>add_log</filter>
128 </data> 124 </data>
129 </xml> 125 </xml>
130 126
131 <!-- inputs from previous pipeline steps --> 127 <!-- inputs from previous pipeline steps -->
128 <xml name="input_stacks_macro">
129 <param name="input_stacks" format="tabular,txt" type="data_collection" collection_type="list" label="Loci and polymorphism" help="output from previous Stacks pipeline steps e.g. denovo_map, refmap or ustacks" />
130 </xml>
132 <xml name="input_cat_macro"> 131 <xml name="input_cat_macro">
133 <param name="input_cat" format="tabular,txt" type="data_collection" collection_type="list" label="Catalog files" help="output from a previous Stacks pipeline steps e.g. denovo_map, refmap or cstacks" /> 132 <param name="input_cat" format="tabular,txt" type="data_collection" collection_type="list" label="Catalog of loci" help="output from a previous Stacks pipeline steps e.g. denovo_map, refmap or cstacks" />
134 </xml>
135 <xml name="input_tags_macro">
136 <param name="input_tags" format="tabular,txt" type="data_collection" collection_type="list" label="Samples stacks" help="output from previous Stacks pipeline steps e.g. denovo_map, refmap or ustacks" />
137 </xml> 133 </xml>
138 <xml name="input_matches_macro"> 134 <xml name="input_matches_macro">
139 <param name="input_matches" format="tabular,txt" type="data_collection" collection_type="list" label="Matches to the catalog" help="output from previous Stacks pipeline steps e.g. denovo_map, refmap or sstacks" /> 135 <param name="input_matches" format="tabular,txt" type="data_collection" collection_type="list" label="Matches to the catalog" help="output from previous Stacks pipeline steps e.g. denovo_map, refmap or sstacks" />
140 </xml> 136 </xml>
137 <xml name="bam_input_macro">
138 <param name="input_bam" format="bam" type="data" multiple="true" optional="false" label="Aligned data" help="either the matches to the catalog (bam), i.e. tsv2bam, or reads aligned to a reference" />
139 </xml>
141 <xml name="input_aln_macro"> 140 <xml name="input_aln_macro">
142 <param name="input_aln" format="tabular,txt" type="data_collection" collection_type="list" label="Output from previous Stacks pipeline steps (e.g. gstacks, denovo_map, or refmap)" argument="-P" /> 141 <param name="input_aln" format="tabular,txt" type="data_collection" collection_type="list" label="Assembled contigs and variant sites" help="output from previous Stacks pipeline steps (e.g. gstacks, denovo_map, or refmap)" argument="-P" />
143 </xml> 142 </xml>
144 143
145 144 <!-- code for creating links to the data sets from previous pipeline steps
146 <!-- fastq input --> 145 - stacks (i.e ustacks outputs POP.tags.tsv, POP.alleles.tsv, POP.snps.tsv)
147 <xml name="fastq_input_macro" token_fastq_optional="false"> 146 also stores sample names in list (samples)
147 - cat (cstacks catalog.tags.tsv, catalog.alleles.tsv, catalog.snps.tsv)
148 - matches (sstacks POP.matches.tsv) -->
149 <token name="@LINK_STACKS_INPUT@"><![CDATA[
150 #set $samples = []
151 #for $input_file in $input_stacks
152 #set $filename = str($input_file.element_identifier)
153 #if not filename.endswith('.tsv')
154 #set $filename = $filename + ".tsv"
155 #end if
156 #if re.search('^(?!catalog).+\.(tags|alleles|snps)\.tsv$', $filename)
157 ln -s '${input_file}' 'stacks_inputs/$filename' &&
158 #if $filename.endswith('.tags.tsv')
159 $samples.append($filename[:-9])
160 #end if
161 #end if
162 #end for
163 ]]>
164 </token>
165 <token name="@LINK_CAT_INPUT@"><![CDATA[
166 #for $input_file in $input_cat
167 #set $filename = str($input_file.element_identifier)
168 #if not filename.endswith('.tsv')
169 #set $filename = $filename + ".tsv"
170 #end if
171 #if re.search('^catalog\.(tags|alleles|snps)\.tsv$', $filename)
172 ln -s '${input_file}' 'stacks_inputs/$filename' &&
173 #end if
174 #end for
175 ]]></token>
176 <token name="@LINK_MATCHES_INPUT@"><![CDATA[
177 #for $input_file in $input_matches
178 #set $filename = str($input_file.element_identifier)
179 #if not filename.endswith('.tsv')
180 #set $filename = $filename + ".tsv"
181 #end if
182 #if re.search('matches.tsv$', $filename)
183 ln -s '${input_file}' 'stacks_inputs/$filename' &&
184 #end if
185 #end for
186 ]]></token>
187
188 <!-- fastq input for process_radtags/shortreads (non-batch) and clone/kmerfilter (batch)
189 for batch processing chose multiple=false and paired
190 otherwise multiple=true and listtype=list:paired -->
191 <xml name="fastq_input_bc" token_multiple="false" token_listtype="paired">
148 <conditional name="input_type"> 192 <conditional name="input_type">
149 <param name="input_type_selector" type="select" label="Short read data from individuals" help="Single end data or forward reads. If a paired list is provided only the forward reads are used in ustacks"> 193 <param name="input_type_select" type="select" label="Single-end or paired-end reads">
150 <option value="manual" selected="true">single end or forward reads</option> 194 <option value="single" selected="True">Single-end files</option>
151 <option value="list">(paired) data set list</option> 195 <option value="paired">Paired-end files</option>
152 </param> 196 </param>
153 <when value="manual"> 197 <when value="single">
154 <param name="samples" argument="-f" format="fastqsanger,fastqsanger.gz,fasta,fasta.gz" type="data" label="Reads" multiple="true" optional="@FASTQ_OPTIONAL@"/> 198 <param name="fqinputs" argument="-f" type="data" format="fastqsanger,fastqsanger.gz" multiple="@MULTIPLE@" label="Singles-end reads" />
155 </when> 199 <param name="barcode_encoding" type="select" label="Barcode location">
156 <when value="list"> 200 <expand macro="barcode_encoding_single" type="Barcode" />
157 <param name="samples" argument="-f" type="data_collection" collection_type="list:paired" format="fastqsanger,fastqsanger.gz,fasta,fasta.gz" label="List for forward reads or read pairs" optional="@FASTQ_OPTIONAL@"/> 201 </param>
202 </when>
203 <when value="paired">
204 <param name="fqinputs" type="data_collection" collection_type="@LISTTYPE@" label="Paired-end reads" format="fastqsanger,fastqsanger.gz"/>
205 <param name="barcode_encoding" type="select" label="Barcode location">
206 <expand macro="barcode_encoding_pair" type="Barcode" />
207 </param>
158 </when> 208 </when>
159 </conditional> 209 </conditional>
160 </xml> 210 <yield/>
161 <!-- requires a variable $read_direction=None|"forward"|"reverse" to be set 211 </xml>
162 appends noting/.1/.2 to the link name for accessing the fastq data 212
163 sets variables $name and $data_path--> 213 <xml name="fastq_input_bc_file" token_multiple="false" token_listtype="paired">
164 <token name="@FASTQ_INPUT@"><![CDATA[ 214 <expand macro="fastq_input_bc" multiple="@MULTIPLE@" listtype="@LISTTYPE@">
165 ## TODO should use sample.identidfier if possible (see corresp. preproc macro) 215 <param name="barcode" argument="-b" type="data" format="tabular,txt" label="Barcode file" />
166 #set $name = $clean_ext($sample.name) 216 </expand>
167 #set $data_path = "stacks_inputs/" + $name 217 </xml>
168 #if $sample.is_collection: 218
169 #set $cur_sample=$sample[$read_direction] 219 <!-- fastq input (used in denovomap, tsv2bam, ustacks) -->
170 #else: 220 <xml name="fastq_input" token_fastq_optional="false" token_help="">
171 #set $cur_sample=$sample 221 <conditional name="input_type">
172 #end if 222 <param name="input_type_select" type="select" label="Short read data from individuals" help="@HELP@">
173 #if $read_direction == "forward": 223 <option value="single" selected="true">single end or forward reads</option>
174 #set $data_path = $data_path + ".1" 224 <option value="paired">(paired) dataset list</option>
175 #elif $read_direction == "reverse": 225 </param>
176 #set $data_path = $data_path + ".2" 226 <when value="single">
177 #end if 227 <param name="fqinputs" argument="-f" format="fastqsanger,fastqsanger.gz,fasta,fasta.gz" type="data" label="Reads" multiple="true" optional="@FASTQ_OPTIONAL@"/>
178 #if $cur_sample.is_of_type('fastqsanger') 228 </when>
179 #set $data_path = $data_path + ".fq" 229 <when value="paired">
180 #set inputype = "fastq" 230 <param name="fqinputs" argument="-f" type="data_collection" collection_type="list:paired" format="fastqsanger,fastqsanger.gz,fasta,fasta.gz" label="List for forward reads or read pairs" optional="@FASTQ_OPTIONAL@"/>
181 #else if $cur_sample.is_of_type('fastqsanger.gz') 231 </when>
182 #set $data_path = $data_path + ".fq.gz" 232 </conditional>
183 #set inputype = "gzfastq" 233 </xml>
184 #else if $cur_sample.is_of_type('fasta') 234
185 #set $data_path = $data_path + ".fa" 235 <!-- helper functions for linking fastq data sets -->
186 #set inputype = "fasta" 236 <token name="@FASTQ_INPUT_FUNCTIONS@"><![CDATA[
187 #else 237 #from os.path import splitext
188 #set $data_path = $data_path + ".fa.gz" 238 #import re
189 #set inputype = "gzfasta" 239
190 #end if 240 #def clean_ext($identifier)
191 ln -s '$cur_sample' '${data_path}' && 241 #while $identifier.endswith(('.1', '.2', '.fa', '.fq', '.fasta', '.fastq', '.gz', '.gzip', '.sam', '.bam'))
192 ]]></token> 242 #set $identifier = splitext($identifier)[0]
193 243 #end while
194 <!-- macro and token for BAM input--> 244 $identifier#slurp
195 <xml name="bam_input_macro"> 245 #end def
196 <param name="input_bam" format="bam" type="data" multiple="true" optional="false" label="BAM files" /> 246
197 </xml> 247 #def fastq_input_foo( $sample, $read_direction="", $infix="" )
248 #set $name = $clean_ext($sample.element_identifier)
249 #if $sample.is_collection:
250 #set $cur_sample=$sample[$read_direction]
251 #else:
252 #set $cur_sample=$sample
253 #end if
254
255 #if $cur_sample.is_of_type('fastqsanger')
256 #set $ext = "fastq"
257 #set $inputype = "fastq"
258 #else if $cur_sample.is_of_type('fastqsanger.gz')
259 #set $ext = "fastq.gz"
260 #set $inputype = "gzfastq"
261 #else if $cur_sample.is_of_type('fasta')
262 #set $ext = "fasta"
263 #set $inputype = "fasta"
264 #else if $cur_sample.is_of_type('fasta.gz')
265 #set $ext = "fasta.gz"
266 #set $inputype = "gzfasta"
267 #else
268 #set $inputype = "UNKNOWN"
269 #end if
270 #set $data_path = "stacks_inputs/"+$name+$infix+"."+$ext
271 #set $link_cmd = "ln -s '%s' '%s' &&" % ($cur_sample, $data_path)
272 #return ($link_cmd, $data_path, $name, $inputype)
273 #end def
274
275 ## fastq_input_batch determine link command, access path(s), and input type
276 ## for batch tools
277 ##
278 ## inputs
279 ## - sample data set / pair
280 ## - type "single" / "paired"
281 ## return (link_command, fwd_path, rev_path, inputype)
282 ## - link_command bash command(s) to link the data sets
283 ## - fwd_path file name of the link to the forward data set
284 ## - rev_path file name of the link to the forward data set (if type=paired)
285 ## - inputype input type as used in stacks ([gz]fast(a|q))
286 #def fastq_input_batch($sample, $type)
287 #if $type == "single"
288 #set ($link_cmd, $path, $name, $inputype) = $fastq_input_foo($sample, "", "")
289 #return ($link_cmd, $path, "", $inputype)
290 #else:
291 #set ($fwd_link_cmd, $fwd_path, $name, $inputype) = $fastq_input_foo($sample, "forward", ".1")
292 #set ($rev_link_cmd, $rev_path, $name, $inputype) = $fastq_input_foo($sample, "reverse", ".2")
293 #return ( $fwd_link_cmd+$rev_link_cmd, $fwd_path, $rev_path, $inputype)
294 #end if
295 #end def
296
297 ## fastq_input_nonbatch determine link command, access path(s), and input type
298 ## for non-batch tools (procrad, shortreads, denovomap the former need R[12]_
299 ## and the latter needs .[12])
300 ##
301 ## inputs
302 ## - samples list of data set / pair
303 ## - type "single" / "paired"
304 ## - infix_pattern pattern for the infix of the files (needs to contain %d which is replaced by 1/2)
305 ## return (link_command, inputype)
306 ## - link_command bash command(s) to link the data sets
307 ## - inputype input type as used in stacks ([gz]fast(a|q))
308 #def fastq_input_nonbatch( $samples, $type, $infix_pattern )
309 #set $link_command = ""
310 #for $sample in $samples
311 #if $type == "single"
312 #set ($lc, $path, $name, $inputype) = $fastq_input_foo($sample, "", "")
313 #set link_command += lc
314 #else:
315 #set ($lc, $path, $name, $inputype) = $fastq_input_foo($sample, "forward", $infix_pattern % (1))
316 #set link_command += lc
317 #set ($lc, $path, $name, $inputype) = $fastq_input_foo($sample, "reverse", $infix_pattern % (2))
318 #set link_command += lc
319 #end if
320 #end for
321 #return ($link_command, $inputype)
322 #end def
323 ]]></token>
324
325 <!-- macro and token for BAM input, for each bam file w identifier NAME
326 - creates a link NAME.bam <- bam_inputs/NAME.INFIX.bam
327 - appends -B bam_inputs/NAME.INFIX.bam to variable bamlist
328
329 INFIX is set to"" per default, can be set with optional variable $infix
330 only needed for gstacks in denovo mode which needs .matches.bam -->
198 <token name="@BAM_INPUT@"><![CDATA[ 331 <token name="@BAM_INPUT@"><![CDATA[
199 #set $bamlist = "" 332 #set $bamlist = ""
200 #for $bam in $input_bam: 333 #for $bam in $input_bam:
201 #set $filename = $clean_ext($bam.element_identifier)+".bam" 334 #if $bam.is_of_type('bam')
202 #if re.search('.*\.bam$', $filename) 335 #set $filename = $clean_ext($bam.element_identifier)+".bam"
203 ln -s '$bam' bam_inputs/$filename && 336 ln -s '$bam' bam_inputs/$filename &&
204 #set bamlist += " -B 'bam_inputs/"+$filename+"'" 337 #set bamlist += " -B 'bam_inputs/"+$filename+"'"
205 #end if 338 #end if
206 #end for 339 #end for
207 ]]></token> 340 ]]></token>
208 341
209 <token name="@CLEAN_EXT@"> 342 <token name="@EXTRACT_VCF@"><![CDATA[
210 <![CDATA[ 343 ## the catalog.calls output is a gzip-ed vcf extract it
211 #from os.path import splitext 344 ## to make it usable in Galaxy (with the downside that we
212 #import re 345 ## need to gzip it again for downstream calls like populations)
213 #def clean_ext($identifier) 346 && gunzip -c stacks_outputs/catalog.calls > stacks_outputs/catalog.calls.vcf
214 #while $identifier.endswith(('.1', '.2', '.fa', '.fq', '.fasta', '.fastq', '.gz', '.gzip', '.sam', '.bam')) 347 ]]></token>
215 #set $identifier = splitext($identifier)[0] 348
216 #end while 349
217 $identifier#slurp 350
218 #end def 351 <!-- tokens and macros for gapped alignment options
219 ]]> 352 the _onoff macro gives an empty conditional (which is not so nice
220 </token>
221
222 <!-- tokens and macros for gapped alignment options
223 the _onoff macro gives an empty conditional (which is not so nice
224 but allows to be used also in the full macro) --> 353 but allows to be used also in the full macro) -->
225 <token name="@GAP_OPTIONS@"><![CDATA[ 354 <token name="@GAP_OPTIONS@"><![CDATA[
226 #if $gapped.use_gapped == "yes" 355 #if $gapped.use_gapped == "yes"
227 --max_gaps $gapped.max_gaps 356 --max_gaps $gapped.max_gaps
228 --min_aln_len $gapped.min_aln_len 357 --min_aln_len $gapped.min_aln_len
229 #else 358 #else
230 --disable-gapped 359 --disable-gapped
231 #end if 360 #end if
232 ]]></token> 361 ]]></token>
233 <token name="@GAP_OPTIONS_ONOFF@"><![CDATA[ 362 <token name="@GAP_OPTIONS_ONOFF@"><![CDATA[
234 #if $gapped.use_gapped != "yes" 363 #if $gapped.use_gapped != "yes"
235 --disable-gapped 364 --disable-gapped
236 #end if 365 #end if
237 ]]></token> 366 ]]></token>
238 <xml name="gap_options"> 367 <xml name="gap_options">
239 <expand macro="gap_options_onoff"> 368 <expand macro="gap_options_onoff">
240 <param argument="--max_gaps" type="float" value="2.0" label="Number of gaps allowed between stacks before merging"/> 369 <param argument="--max_gaps" type="float" value="2.0" label="Number of gaps allowed between stacks before merging"/>
241 <param argument="--min_aln_len" type="float" value="0.8" min="0.0" max="1.0" label="Minimum length of aligned sequence in a gapped alignment"/> 370 <param argument="--min_aln_len" type="float" value="0.8" min="0.0" max="1.0" label="Minimum length of aligned sequence in a gapped alignment"/>
242 </expand> 371 </expand>
252 <yield/> 381 <yield/>
253 </when> 382 </when>
254 </conditional> 383 </conditional>
255 </xml> 384 </xml>
256 385
386
257 <!-- ustacks outputs collection containing SAMPLE.tags.tsv, SAMPLE.snps.tsv, SAMPLE.alleles.tsv (SAMPLE!=catalog) --> 387 <!-- ustacks outputs collection containing SAMPLE.tags.tsv, SAMPLE.snps.tsv, SAMPLE.alleles.tsv (SAMPLE!=catalog) -->
258 <!-- TODO tags, snps, and alleles could go to sub collections; same for other tools --> 388 <!-- TODO tags, snps, and alleles could go to sub collections; same for other tools -->
259 <xml name="ustacks_outputs_macro" token_tooladd=""> 389 <xml name="ustacks_outputs_macro" token_tooladd="">
260 <collection name="tabs" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Loci per sample"> 390 <collection name="tabs" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Loci and polymorphism">
261 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.tags)\.tsv$" ext="tabular" directory="stacks_outputs" /> 391 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.tags)\.tsv$" ext="tabular" directory="stacks_outputs" />
262 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.snps)\.tsv$" ext="tabular" directory="stacks_outputs" /> 392 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.snps)\.tsv$" ext="tabular" directory="stacks_outputs" />
263 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.alleles)\.tsv$" ext="tabular" directory="stacks_outputs" /> 393 <discover_datasets pattern="(?P&lt;name&gt;(?!catalog).+\.alleles)\.tsv$" ext="tabular" directory="stacks_outputs" />
264 </collection> 394 </collection>
265 </xml> 395 </xml>
275 <discover_datasets pattern="(?P&lt;name&gt;.+\.matches)\.tsv$" ext="tabular" directory="stacks_outputs" /> 405 <discover_datasets pattern="(?P&lt;name&gt;.+\.matches)\.tsv$" ext="tabular" directory="stacks_outputs" />
276 </collection> 406 </collection>
277 </xml> 407 </xml>
278 <!-- tsv2bam outputs collection containing SAMPLE.matches.bam --> 408 <!-- tsv2bam outputs collection containing SAMPLE.matches.bam -->
279 <xml name="tsv2bam_outputs_macro" token_tooladd=""> 409 <xml name="tsv2bam_outputs_macro" token_tooladd="">
280 <collection name="bams" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Loci"> 410 <collection name="bams" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Matches to the catalog (bam)">
281 <discover_datasets pattern="(?P&lt;name&gt;.+\.matches)\.bam$" ext="bam" directory="stacks_outputs" /> 411 <discover_datasets pattern="(?P&lt;name&gt;.+\.matches)\.bam$" ext="bam" directory="stacks_outputs" />
282 </collection> 412 </collection>
283 </xml> 413 </xml>
284 <!-- gstacks outputs collection containing catalog.calls.vcf and catalog.fa.gz --> 414 <!-- gstacks outputs collection containing catalog.calls.vcf and catalog.fa.gz
415 + optional output alignments.bam (if no popmap is given) and POP.alns.bam otherwise-->
416 <xml name="gstacks_outputs_full_macro" token_tooladd="">
417 <expand macro="gstacks_outputs_macro"/>
418 <data format="txt" name="distribs" label="${tool.name} on ${on_string} log.distribs" from_work_dir="stacks_outputs/gstacks.log.distribs">
419 <filter>add_log_distribs</filter>
420 </data>
421 <collection name="gstacks_alns_out" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Read alignments">
422 <discover_datasets pattern="(?P&lt;name&gt;.*).alns.bam$" ext="bam" directory="stacks_outputs" />
423 <filter>mode_cond['mode_select'] == 'denovo' and mode_cond['advanced_cond']['advanced_select'] == "yes" and mode_cond['advanced_cond']['write_alignments'] != "" and popmap!=None</filter>
424 </collection>
425 <data name="gstacks_aln_out" format="bam" label="${tool.name} @TOOLADD@ on ${on_string} Read alignment" from_work_dir="stacks_outputs/alignments.bam">
426 <filter>mode_cond['mode_select'] == 'denovo' and mode_cond['advanced_cond']['advanced_select'] == "yes" and mode_cond['advanced_cond']['write_alignments'] != "" and popmap==None</filter>
427 </data>
428 </xml>
285 <xml name="gstacks_outputs_macro" token_tooladd=""> 429 <xml name="gstacks_outputs_macro" token_tooladd="">
286 <collection name="gstacks_out" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Assembled contigs and variant sites"> 430 <collection name="gstacks_out" type="list" label="${tool.name} @TOOLADD@ on ${on_string} Assembled contigs and variant sites">
287 <discover_datasets pattern="(?P&lt;name&gt;catalog\.calls\.vcf)$" ext="vcf" directory="stacks_outputs" /> 431 <discover_datasets pattern="(?P&lt;name&gt;catalog\.calls\.vcf)$" ext="vcf" directory="stacks_outputs" />
288 <discover_datasets pattern="(?P&lt;name&gt;catalog\.fa\.gz)$" ext="fasta.gz" directory="stacks_outputs" /> 432 <discover_datasets pattern="(?P&lt;name&gt;catalog\.fa\.gz)$" ext="fasta.gz" directory="stacks_outputs" />
289 </collection> 433 </collection>
300 </xml> 444 </xml>
301 445
302 <xml name="populations_output_full"> 446 <xml name="populations_output_full">
303 <expand macro="populations_output_light"/> 447 <expand macro="populations_output_light"/>
304 448
305 <!-- log_fst_comp populations.fst_summary.tsv populations.phistats_summary.tsv populations.phistats.tsv--> 449 <!-- log_fst_comp populations.fst_summary.tsv populations.phistats_summary.tsv populations.phistats.tsv-->
306 <data format="tabular" name="out_phistats" label="${tool.name} on ${on_string} Phi_st statistics" from_work_dir="stacks_outputs/populations.phistats.tsv"> 450 <data format="tabular" name="out_phistats" label="${tool.name} on ${on_string} Phi_st statistics" from_work_dir="stacks_outputs/populations.phistats.tsv">
307 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter> 451 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter>
308 </data> 452 </data>
309 <data format="tabular" name="out_phistats_sum" label="${tool.name} on ${on_string} Summary of Phi_st statistics" from_work_dir="stacks_outputs/populations.phistats_summary.tsv"> 453 <data format="tabular" name="out_phistats_sum" label="${tool.name} on ${on_string} Summary of Phi_st statistics" from_work_dir="stacks_outputs/populations.phistats_summary.tsv">
310 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter> 454 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter>
311 </data> 455 </data>
312 <data format="tabular" name="out_fststats_sum" label="${tool.name} on ${on_string} Summary of Fst statistics" from_work_dir="stacks_outputs/populations.fst_summary.tsv"> 456 <data format="tabular" name="out_fststats_sum" label="${tool.name} on ${on_string} Summary of Fst statistics" from_work_dir="stacks_outputs/populations.fst_summary.tsv">
313 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter> 457 <filter>advanced_options['log_fst_comp'] and fstats_conditional['fstats']=='yes'</filter>
314 </data> 458 </data>
315 459
316 <!-- fasta_loci populations.loci.fa 460 <!-- fasta_loci populations.loci.fa
317 fasta_samples populations.samples.fa 461 fasta_samples populations.samples.fa
318 fasta_samples_raw populations.samples-raw.fa--> 462 fasta_samples_raw populations.samples-raw.fa-->
319 <data format="tabular" name="out_fasta_strict" label="${tool.name} on ${on_string} per-locus consensus sequences" from_work_dir="stacks_outputs/populations.loci.fa"> 463 <data format="tabular" name="out_fasta_strict" label="${tool.name} on ${on_string} per-locus consensus sequences" from_work_dir="stacks_outputs/populations.loci.fa">
320 <filter>populations_output['fasta_loci']</filter> 464 <filter>populations_output['fasta_loci']</filter>
321 </data> 465 </data>
322 <data format="tabular" name="out_fasta" label="${tool.name} on ${on_string} per-locus, per-haplotpye sequences" from_work_dir="stacks_outputs/populations.samples.fa"> 466 <data format="tabular" name="out_fasta" label="${tool.name} on ${on_string} per-locus, per-haplotpye sequences" from_work_dir="stacks_outputs/populations.samples.fa">
323 <filter>populations_output['fasta_samples']</filter> 467 <filter>populations_output['fasta_samples']</filter>
324 </data> 468 </data>
325 <data format="tabular" name="out_fasta_raw" label="${tool.name} on ${on_string} per-locus, per-haplotpye sequences (regardless of biological plausibility)" from_work_dir="stacks_outputs/populations.samples-raw.fa"> 469 <data format="tabular" name="out_fasta_raw" label="${tool.name} on ${on_string} per-locus, per-haplotpye sequences (regardless of biological plausibility)" from_work_dir="stacks_outputs/populations.samples-raw.fa">
326 <filter>populations_output['fasta_samples_raw']</filter> 470 <filter>populations_output['fasta_samples_raw']</filter>
327 </data> 471 </data>
328 472
329 <!-- phylip populations.fixed.phylip populations.fixed.phylip.log 473 <!-- phylip populations.fixed.phylip populations.fixed.phylip.log
330 phylip_var populations.var.phylip populations.var.phylip.log--> 474 phylip_var populations.var.phylip populations.var.phylip.log-->
331 <data format="tabular" name="out_phylip_all_pop_fix" label="${tool.name} on ${on_string} Phylip nucleotides that are fixed-within, and variant among populations" from_work_dir="stacks_outputs/populations.fixed.phylip"> 475 <data format="tabular" name="out_phylip_all_pop_fix" label="${tool.name} on ${on_string} Phylip nucleotides that are fixed-within, and variant among populations" from_work_dir="stacks_outputs/populations.fixed.phylip">
332 <filter>populations_output['phylip']</filter> 476 <filter>populations_output['phylip']</filter>
333 </data> 477 </data>
334 <data format="tabular" name="out_phylip_all_loci_fix" label="${tool.name} on ${on_string} Phylip (loci) nucleotides that are fixed-within, and variant among populations" from_work_dir="stacks_outputs/populations.fixed.phylip.log"> 478 <data format="tabular" name="out_phylip_all_loci_fix" label="${tool.name} on ${on_string} Phylip (loci) nucleotides that are fixed-within, and variant among populations" from_work_dir="stacks_outputs/populations.fixed.phylip.log">
335 <filter>populations_output['phylip']</filter> 479 <filter>populations_output['phylip']</filter>
339 </data> 483 </data>
340 <data format="tabular" name="out_phylip_all_loci_var" label="${tool.name} on ${on_string} Phylip (loci) all sequence as well as variable sites" from_work_dir="stacks_outputs/populations.var.phylip.log"> 484 <data format="tabular" name="out_phylip_all_loci_var" label="${tool.name} on ${on_string} Phylip (loci) all sequence as well as variable sites" from_work_dir="stacks_outputs/populations.var.phylip.log">
341 <filter>populations_output['phylip_var']</filter> 485 <filter>populations_output['phylip_var']</filter>
342 </data> 486 </data>
343 487
344 <!-- genepop populations.haps.genepop populations.snps.genepop --> 488 <!-- genepop populations.haps.genepop populations.snps.genepop -->
345 <data format="tabular" name="out_genepop_snps" label="${tool.name} on ${on_string} SNPs in GenePop format" from_work_dir="stacks_outputs/populations.snps.genepop"> 489 <data format="tabular" name="out_genepop_snps" label="${tool.name} on ${on_string} SNPs in GenePop format" from_work_dir="stacks_outputs/populations.snps.genepop">
346 <filter>populations_output['genepop']</filter> 490 <filter>populations_output['genepop']</filter>
347 </data> 491 </data>
348 <data format="tabular" name="out_genepop_haps" label="${tool.name} on ${on_string} Haplotypes in GenePop format" from_work_dir="stacks_outputs/populations.haps.genepop"> 492 <data format="tabular" name="out_genepop_haps" label="${tool.name} on ${on_string} Haplotypes in GenePop format" from_work_dir="stacks_outputs/populations.haps.genepop">
349 <filter>populations_output['genepop']</filter> 493 <filter>populations_output['genepop']</filter>
350 </data> 494 </data>
351 495
352 <!-- vcf populations.haps.vcf populations.snps.vcf --> 496 <!-- vcf populations.haps.vcf populations.snps.vcf -->
353 <data format="vcf" name="out_vcf_haplotypes_snps" label="${tool.name} on ${on_string} SNPs in VCF format" from_work_dir="stacks_outputs/populations.snps.vcf"> 497 <data format="vcf" name="out_vcf_haplotypes_snps" label="${tool.name} on ${on_string} SNPs in VCF format" from_work_dir="stacks_outputs/populations.snps.vcf">
354 <filter>populations_output['vcf']</filter> 498 <filter>populations_output['vcf']</filter>
355 </data> 499 </data>
356 <data format="vcf" name="out_vcf_haplotypes_haps" label="${tool.name} on ${on_string} Haplotypes in VCF format" from_work_dir="stacks_outputs/populations.haps.vcf"> 500 <data format="vcf" name="out_vcf_haplotypes_haps" label="${tool.name} on ${on_string} Haplotypes in VCF format" from_work_dir="stacks_outputs/populations.haps.vcf">
357 <filter>populations_output['vcf']</filter> 501 <filter>populations_output['vcf']</filter>
358 </data> 502 </data>
359 503
360 <!--plink populations.plink.map populations.plink.ped--> 504 <!--plink populations.plink.map populations.plink.ped-->
361 <data format="tabular" name="out_plink_markers" label="${tool.name} on ${on_string} PLINK (makers)" from_work_dir="stacks_outputs/populations.plink.map"> 505 <data format="tabular" name="out_plink_markers" label="${tool.name} on ${on_string} PLINK (makers)" from_work_dir="stacks_outputs/populations.plink.map">
362 <filter>populations_output['plink']</filter> 506 <filter>populations_output['plink']</filter>
363 </data> 507 </data>
364 <data format="tabular" name="out_plink_genotypes" label="${tool.name} on ${on_string} PLINK format (genotypes)" from_work_dir="stacks_outputs/populations.plink.ped"> 508 <data format="tabular" name="out_plink_genotypes" label="${tool.name} on ${on_string} PLINK format (genotypes)" from_work_dir="stacks_outputs/populations.plink.ped">
365 <filter>populations_output['plink']</filter> 509 <filter>populations_output['plink']</filter>
366 </data> 510 </data>
367 511
368 <!--structure populations.structure--> 512 <!--structure populations.structure-->
369 <data format="tabular" name="out_structure" label="${tool.name} on ${on_string} Structure format" from_work_dir="stacks_outputs/populations.structure"> 513 <data format="tabular" name="out_structure" label="${tool.name} on ${on_string} Structure format" from_work_dir="stacks_outputs/populations.structure">
370 <filter>populations_output['structure']</filter> 514 <filter>populations_output['structure']</filter>
371 </data> 515 </data>
372 516
373 <!-- radpainter populations.haps.radpainter --> 517 <!-- radpainter populations.haps.radpainter -->
374 <data format="tabular" name="out_radpainter" label="${tool.name} on ${on_string} Radpainter format" from_work_dir="stacks_outputs/populations.haps.radpainter"> 518 <data format="tabular" name="out_radpainter" label="${tool.name} on ${on_string} Radpainter format" from_work_dir="stacks_outputs/populations.haps.radpainter">
375 <filter>populations_output['radpainter']</filter> 519 <filter>populations_output['radpainter']</filter>
376 </data> 520 </data>
377 521
522 <!-- treemix populations.treemix -->
523 <data format="tabular" name="out_treemix" label="${tool.name} on ${on_string} Treemix format" from_work_dir="stacks_outputs/populations.treemix">
524 <filter>populations_output['treemix']</filter>
525 </data>
378 </xml> 526 </xml>
379 527
380 <xml name="snp_options_alpha"> 528 <xml name="snp_options_alpha">
381 <param argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" > 529 <param argument="--alpha" type="select" label="Chi square significance level required to call a heterozygote or homozygote" >
382 <option value="0.1">0.1</option> 530 <option value="0.1">0.1</option>
395 </param> 543 </param>
396 <when value="snp"> 544 <when value="snp">
397 <expand macro="snp_options_alpha"/> 545 <expand macro="snp_options_alpha"/>
398 </when> 546 </when>
399 <when value="bounded"> 547 <when value="bounded">
400 <param argument="--bound_low" type="float" value="0.0" min="0.0" max="1.0" label="lower bound for epsilon, the error rate" help="between 0 and 1.0"/> 548 <param argument="--bound_low" type="float" value="0.0" min="0.0" max="1.0" label="Lower bound for epsilon, the error rate" help="between 0 and 1.0"/>
401 <param argument="--bound_high" type="float" value="1.0" min="0.0" max="1.0" label="upper bound for epsilon, the error rate" help="between 0 and 1.0" /> 549 <param argument="--bound_high" type="float" value="1.0" min="0.0" max="1.0" label="Upper bound for epsilon, the error rate" help="between 0 and 1.0" />
402 <expand macro="snp_options_alpha"/> 550 <expand macro="snp_options_alpha"/>
403 </when> 551 </when>
404 <when value="fixed"> 552 <when value="fixed">
405 <yield/> 553 <yield/>
406 </when> 554 </when>
412 </expand> 560 </expand>
413 </xml> 561 </xml>
414 562
415 <!-- variant calling option for use in gstacks and denovomap --> 563 <!-- variant calling option for use in gstacks and denovomap -->
416 <xml name="variant_calling_options_vg"> 564 <xml name="variant_calling_options_vg">
417 <param argument="--var-alpha" name="var_alpha" type="float" value="0.05" min="0" label="alpha threshold for discovering SNPs" /> 565 <param argument="--var-alpha" name="var_alpha" type="float" value="0.01" min="0" label="Alpha threshold for discovering SNPs" />
418 <expand macro="variant_calling_options_g"/> 566 <param argument="--gt-alpha" name="gt_alpha" type="float" value="0.05" min="0" label="Alpha threshold for calling genotypes" />
419 </xml>
420 <xml name="variant_calling_options_g">
421 <param argument="--gt-alpha" name="gt_alpha" type="float" value="0.05" min="0" label="alpha threshold for calling genotypes" />
422 </xml> 567 </xml>
423 568
424 <xml name="barcode_encoding_single" token_type=""> 569 <xml name="barcode_encoding_single" token_type="">
425 <option value="--inline_null" selected="True">@TYPE@ is inline with sequence, occurs only on single-end read (--inline_null)</option> 570 <option value="--inline_null" selected="True">@TYPE@ is inline with sequence, occurs only on single-end read (--inline_null)</option>
426 <option value="--index_null">@TYPE@ is provded in FASTQ header (Illumina i5 or i7 read) (--index_null)</option> 571 <option value="--index_null">@TYPE@ is provded in FASTQ header (Illumina i5 or i7 read) (--index_null)</option>
427 <yield/> 572 <yield/>
428 </xml> 573 </xml>
429 574
430 <xml name="barcode_encoding_pair" token_type=""> 575 <xml name="barcode_encoding_pair" token_type="">
431 <expand macro="barcode_encoding_single" type="@TYPE@"> 576 <expand macro="barcode_encoding_single" type="@TYPE@">
432 <option value="--null_index">@TYPE@ is provded in FASTQ header (Illumina i7 read if both i5 and i7 read are provided) (--null_index)</option> 577 <option value="--null_index">@TYPE@ is provded in FASTQ header (Illumina i7 read if both i5 and i7 read are provided) (--null_index)</option>
433 <option value="--inline_inline">@TYPE@ is inline with sequence, occurs on single and paired-end read (--inline_inline)</option> 578 <option value="--inline_inline">@TYPE@ is inline with sequence, occurs on single and paired-end read (--inline_inline)</option>
434 <option value="--index_index">@TYPE@ is provded in FASTQ header (Illumina i5 and i7 reads) (--index_index)</option> 579 <option value="--index_index">@TYPE@ is provded in FASTQ header (Illumina i5 and i7 reads) (--index_index)</option>
435 <option value="--inline_index">@TYPE@ is inline with sequence on single-end read and occurs in FASTQ header (from either i5 or i7 read) (--inline_index)</option> 580 <option value="--inline_index">@TYPE@ is inline with sequence on single-end read and occurs in FASTQ header (from either i5 or i7 read) (--inline_index)</option>
436 <option value="--index_inline">@TYPE@ occurs in FASTQ header (Illumina i5 or i7 read) and is inline with sequence on single-end read (if single read data) or paired-end read (if paired data) (--index_inline)</option> 581 <option value="--index_inline">@TYPE@ occurs in FASTQ header (Illumina i5 or i7 read) and is inline with sequence on single-end read (if single read data) or paired-end read (if paired data) (--index_inline)</option>
437 </expand> 582 </expand>
438 </xml> 583 </xml>
439 </macros> 584 </macros>