-
Notifications
You must be signed in to change notification settings - Fork 509
Expand file tree
/
Copy pathmacros.xml
More file actions
223 lines (219 loc) · 12.7 KB
/
macros.xml
File metadata and controls
223 lines (219 loc) · 12.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<macros>
<token name="@TOOL_VERSION@">2.2.0</token>
<token name="@VERSION_SUFFIX@">0</token>
<xml name="requirements">
<requirements>
<requirement type="package" version="@TOOL_VERSION@">diamond</requirement>
</requirements>
</xml>
<xml name="stdio">
<stdio>
<regex match="Failed to allocate" source="stderr" level="fatal_oom"/>
</stdio>
</xml>
<xml name="version_command">
<version_command>diamond version | cut -d" " -f 3</version_command>
</xml>
<xml name="output_column_select">
<param argument="--fields" type="select" label="Tabular fields" help="" multiple="true">
<option value="qseqid" selected="true">Query Seq - id</option>
<option value="qlen">Query sequence length</option>
<option value="sseqid" selected="true">Subject Seq - id</option>
<option value="sallseqid">All subject Seq - id(s)</option>
<option value="slen">Subject sequence length</option>
<option value="qstart" selected="true">Start of alignment in query</option>
<option value="qend" selected="true">End of alignment in query</option>
<option value="sstart" selected="true">Start of alignment in subject</option>
<option value="send" selected="true">End of alignment in subject</option>
<option value="qseq">Aligned part of query sequence</option>
<option value="sseq">Aligned part of subject sequence</option>
<option value="evalue" selected="true">Expect value</option>
<option value="bitscore" selected="true">Bit score</option>
<option value="score">Raw score</option>
<option value="length" selected="true">Alignment length</option>
<option value="pident" selected="true">Percentage of identical matches</option>
<option value="nident">Number of identical matches</option>
<option value="mismatch" selected="true">Number of mismatches</option>
<option value="positive">Number of positive - scoring matches</option>
<option value="gapopen" selected="true">Number of gap openings</option>
<option value="gaps">Total number of gaps</option>
<option value="ppos">Percentage of positive - scoring matches</option>
<option value="qframe">Query frame</option>
<option value="btop">Blast traceback operations(BTOP)</option>
<option value="stitle">Subject Title</option>
<option value="salltitles">All Subject Title(s)</option>
<option value="qcovhsp">Query Coverage Per HSP</option>
<option value="qtitle">Query title</option>
<option value="full_sseq">Subject sequence</option>
<option value="qqual">Query quality values for the aligned part of the query</option>
<option value="qnum">Query ordinal id</option>
<option value="snum">Subject ordinal id</option>
<option value="scovhsp">Subject coverage per HSP</option>
<option value="full_qqual">Query quality values</option>
<option value="full_qseq">Query sequence</option>
<option value="qseq_gapped">Aligned part of query sequence (with gaps)</option>
<option value="sseq_gapped">Aligned part of subject sequence (with gaps)</option>
<option value="qstrand">Query strand</option>
<option value="cigar">Cigar</option>
<option value="full_qseq_mate">Query sequence of the mate</option>
<option value="qseq_translated">Translation of the aligned part of query sequence</option>
<option value="hspnum">Number of HSP within the subject</option>
<option value="normalized_bitscore">Bitscore normalized by maximum self alignment score</option>
<option value="normalized_nident">Number of identical matches normalized by maximum length</option>
<option value="approx_pident">Approximate percentage of identical matches</option>
<option value="corrected_bitscore" selected="true">Bit score corrected for edge effects</option>
<yield/>
</param>
</xml>
<xml name="output_type_macro">
<conditional name="output">
<param argument="--outfmt" type="select" label="Format of output file" help="">
<option value="0">BLAST pairwise</option>
<option value="5">BLAST XML</option>
<option value="6">BLAST tabular</option>
<option value="100">DAA</option>
<option value="101">SAM</option>
<option value="102">Taxonomic classification</option>
<option value="104">JSON (flat)</option>
</param>
<when value="0"/>
<when value="5"/>
<when value="6">
<expand macro="output_column_select">
<yield/>
</expand>
<param argument="--header" type="select" label="Use header lines">
<option value="0">No</option>
<option value="simple">Simple</option>
<option value="verbose">Verbose</option>
</param>
</when>
<when value="100">
</when>
<when value="101">
</when>
<when value="102">
<param argument="--include-lineage" type="boolean" truevalue="--include-lineage" falsevalue="" checked="false" label="Include lineage in the taxonomic classification format"/>
</when>
<when value="104">
<expand macro="output_column_select">
<yield/>
</expand>
</when>
</conditional>
</xml>
<xml name="hit_filter_macro">
<conditional name="filter_score">
<param name="filter_score_select" type="select" label="Method to filter?" help="(--evalue/--min-score)">
<option value="evalue" selected="True">Maximum e-value to report alignments</option>
<option value="min-score">Minimum bit score to report alignments</option>
</param>
<when value="evalue">
<param argument="--evalue" type="float" value="0.001" label="Maximum expected value to keep an alignment"/>
</when>
<when value="min-score">
<param argument="--min-score" type="integer" value="0" label="Minimum bit score to keep an alignment" help="(--min-score)"/>
</when>
</conditional>
<conditional name="hit_filter">
<param name="hit_filter_select" type="select" label="Method to restrict the number of hits?">
<option value="max">Maximum number of target sequences</option>
<option value="top">Percentage of top alignment score</option>
</param>
<when value="max">
<param argument="--max-target-seqs" type="integer" value="25" label="The maximum number of target sequences per query to report alignments for" help="Setting this to 0 will report all alignments that were found."/>
</when>
<when value="top">
<param argument="--top" type="integer" value="0" min="0" max="100" label="Keep alignments within the given percentage range of the top alignment score for a query" help="For example, setting this to 10 will report all alignments whose score is at most 10% lower than the best alignment score for a query."/>
</when>
</conditional>
<param argument="--id" type="float" value="0" min="0" max="100" label="Minimum identity percentage to report an alignment" help="Report only alignments above the given percentage of sequence identity"/>
<param argument="--approx-id" type="float" value="0" min="0" max="100" label="Minimum approx. identity% to report an alignment"/>
<param argument="--query-cover" type="float" value="0" min="0" max="100" label="Minimum query cover percentage to report an alignment" help="Report only alignments above the given percentage of query cover"/>
<param argument="--subject-cover" type="float" value="0" min="0" max="100" label="Minimum subject cover percentage to report an alignment" help="Report only alignments above the given percentage of subject cover"/>
</xml>
<xml name="block_size" tokens="value">
<param argument="--block-size" type="float" value="@VALUE@" min="0" label="Block size in billions of sequence letters to be processed at a time"
help="This is the main parameter for controlling the program’s memory and disk space usage. Bigger numbers will increase the use of memory and temporary disk space, but also improve performance"/>
</xml>
<xml name="citations">
<citations>
<citation type="doi">10.1038/s41592-021-01101-x</citation>
</citations>
</xml>
<xml name="output_macro">
<data format="txt" name="blast_pairw" label="${tool.name} on ${on_string}: Blast pairwise">
<filter>output_section["output"]["outfmt"] == "0"</filter>
</data>
<data format="xml" name="blast_xml" label="${tool.name} on ${on_string}: Blast XML">
<filter>output_section["output"]["outfmt"] == "5"</filter>
</data>
<data format="tabular" name="blast_tabular" label="${tool.name} on ${on_string}: Blast Tabular">
<filter>output_section["output"]["outfmt"] == "6"</filter>
</data>
<!-- for daa diamond appends the .daa extension -> hence from_work_dir -->
<data format="daa" name="daa_output" label="${tool.name} on ${on_string}: DAA" from_work_dir="output.daa">
<filter>output_section["output"]["outfmt"] == "100"</filter>
</data>
<data format="sam" name="sam_output" label="${tool.name} on ${on_string}: SAM">
<filter>output_section["output"]["outfmt"] == "101"</filter>
</data>
<data format="tabular" name="tax_output" label="${tool.name} on ${on_string}: Taxonomic classification">
<filter>output_section["output"]["outfmt"] == "102"</filter>
</data>
<data format="json" name="json_output" label="${tool.name} on ${on_string}: Json flat">
<filter>output_section["output"]["outfmt"] == "104"</filter>
</data>
</xml>
<token name="@OUTPUT_ARGS@">
#if $output_section.output.outfmt == "0"
--outfmt '0'
--out '$blast_pairw'
#else if $output_section.output.outfmt == "5"
--outfmt '5'
--out '$blast_xml'
#else if $output_section.output.outfmt == "6"
--outfmt '6' #echo ' '.join(str($output_section.output.fields).split(','))
--header $output_section.output.header
--out '$blast_tabular'
#else if $output_section.output.outfmt == "100"
--outfmt '100'
--out output.daa
#else if $output_section.output.outfmt == "101"
--outfmt '101'
--out '$sam_output'
#else if $output_section.output.outfmt == "102"
--outfmt '102'
--out '$tax_output'
$output_section.output.include_lineage
#else if $output_section.output.outfmt == "104"
--outfmt '104' #echo ' '.join(str($output_section.output.fields).split(','))
--out '$json_output'
#end if
</token>
<token name="@HITFILTER_ARGS@">
#if str($hit_filter.hit_filter_select) == 'max':
--max-target-seqs '$hit_filter.max_target_seqs'
#else:
--top '$hit_filter.top'
#end if
</token>
<xml name="taxon_cond_macro" tokens="cond_name,label,help,argument">
<conditional name="@COND_NAME@">
<param name="tax_select" type="select" label="@LABEL@" help="Any taxonomic rank can be used, and only reference sequences matching one of the specified taxon ids will be searched against.">
<option value="no" selected="True">No</option>
<option value="list">List of taxids entered manually</option>
<option value="file">List of taxids from single column tabular file</option>
</param>
<when value="no"/>
<when value="list">
<param argument="@ARGUMENT@" type="text" value="" label="Taxon IDss" help="Comma separated list">
<validator type="regex" message="Taxonlist needs to be a comma separated list of integers">[0-9,]*</validator>
</param>
</when>
<when value="file">
<param argument="@ARGUMENT@" type="data" format="tabular" label="Taxon id file" help="One taxon ID per line"/>
</when>
</conditional>
</xml>
</macros>