comparison matutils.xml @ 0:79e2ee4e6ebb draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/usher commit c1531745ea5f5c4fbd22ad18e290b47fdcb01bb1"
author iuc
date Tue, 11 May 2021 17:54:51 +0000
parents
children 52fd1d491417
comparison
equal deleted inserted replaced
-1:000000000000 0:79e2ee4e6ebb
1 <tool id='usher_matutils' name='UShER matUtils' version='@TOOL_VERSION@+@GALAXY_TOOL_VERSION@' profile='20.01'>
2 <description>analyze, edit, and manipulate mutation annotated tree files</description>
3 <macros>
4 <import>macros.xml</import>
5 </macros>
6 <expand macro='edam_ontology' />
7 <expand macro='requirements' />
8 <version_command>usher --version</version_command>
9 <command detect_errors='exit_code'><![CDATA[
10 matUtils
11 $matutils_mode.options_mode
12 --input-mat $mutation_annotation_file
13 #if $matutils_mode.options_mode == 'extract'
14 #if $matutils_mode.operation_mode.operation == 'samples'
15 #if $matutils_mode.operation_mode.samples
16 --samples '${matutils_mode.operation_mode.samples}'
17 #end if
18 $matutils_mode.operation_mode.prune
19 #elif $matutils_mode.operation_mode.operation == 'clade'
20 --clade '${matutils_mode.operation_mode.clade}'
21 $matutils_mode.operation_mode.prune
22 #elif $matutils_mode.operation_mode.operation == 'mutation'
23 --mutation '${matutils_mode.operation_mode.mutation}'
24 $matutils_mode.operation_mode.prune
25 #elif $matutils_mode.operation_mode.operation == 'max-epps'
26 --max-epps $matutils_mode.operation_mode.max_epps
27 $matutils_mode.operation_mode.prune
28 #elif $matutils_mode.operation_mode.operation == 'max-parsimony'
29 --max-parsimony $matutils_mode.operation_mode.max_parsimony
30 $matutils_mode.operation_mode.prune
31 #elif $matutils_mode.operation_mode.operation == 'nearest-k'
32 --nearest-k '${matutils_mode.operation_mode.nearest_k}'
33 $matutils_mode.operation_mode.prune
34 #elif $matutils_mode.operation_mode.operation == 'max-branch-length'
35 --max-branch-length $matutils_mode.operation_mode.max_branch_length
36 #end if
37 $matutils_mode.get_representative
38 $matutils_mode.resolve_polytomies
39 #if 'used-samples' in $matutils_mode.outputs_extract
40 --used-samples selected_samples.txt ##$selected_samples
41 #end if
42 #if 'sample-paths' in $matutils_mode.outputs_extract
43 --sample-paths path_mutations.tabular ##$path_mutations
44 #end if
45 #if 'clade-paths' in $matutils_mode.outputs_extract
46 --clade-paths path_clades.tabular ##$path_clades
47 #end if
48 #if 'all-paths' in $matutils_mode.outputs_extract
49 --all-paths all_paths.txt ##$all_paths
50 #end if
51 #if 'write-vcf' in $matutils_mode.outputs_extract
52 --write-vcf subtree_vcf.vcf ##$subtree_vcf
53 #end if
54 #if 'write-vcf-no-genotypes' in $matutils_mode.outputs_extract and 'write-vcf' not in $matutils_mode.outputs_extract
55 --write-vcf subtree_vcf_no_genotypes.vcf --no-genotypes
56 #end if
57 #if 'write-mat' in $matutils_mode.outputs_extract
58 --write-mat mutation_annotated.pb ##$mutation_annotated
59 #end if
60 #if 'write-mat-collapsed' in $matutils_mode.outputs_extract and 'write-mat' not in $matutils_mode.outputs_extract
61 --write-mat mutation_annotated_collapsed.pb --collapsed-tree
62 #end if
63 #if 'write-json' in $matutils_mode.outputs_extract
64 --write-json subtree_json.json ##$subtree_json
65 #end if
66 #if 'write-tree' in $matutils_mode.outputs_extract
67 --write-tree tree_newick.nh ##$tree_newick
68 #end if
69 #if 'write-tree-retain-branch' in $matutils_mode.outputs_extract and 'write-tree' not in $matutils_mode.outputs_extract
70 --write-tree tree_newick_retain_branch.nh --retain-branch-length
71 #end if
72 #elif $matutils_mode.options_mode == 'summary'
73 #if 'samples' in $matutils_mode.summary_options
74 --samples samples_stats.tabular
75 #end if
76 #if 'clades' in $matutils_mode.summary_options
77 --clades clades_stats.tabular
78 #end if
79 #if 'mutations' in $matutils_mode.summary_options
80 --mutations mutations_stats.tabular
81 #end if
82 #if 'aberrant' in $matutils_mode.summary_options
83 --aberrant aberrant_stats.tabular
84 #end if
85 --output-directory ./
86 #elif $matutils_mode.options_mode == 'annotate'
87 #if $matutils_mode.clade_names
88 --clade-names '${matutils_mode.clade_names}'
89 #if $matutils_mode.allele_frequency
90 --allele-frequency $matutils_mode.allele_frequency
91 #end if
92 #if $matutils_mode.set_overlap
93 --set-overlap $matutils_mode.set_overlap
94 #end if
95 #if $matutils_mode.mask_frequency
96 --mask-frequency $matutils_mode.mask_frequency
97 #end if
98 #if $matutils_mode.clip_sample_frequency
99 --clip-sample-frequency $matutils_mode.clip_sample_frequency
100 #end if
101 #end if
102 #if $matutils_mode.clade_to_nid
103 --clade-to-nid '${matutils_mode.clade_to_nid}'
104 #end if
105 $matutils_mode.clear_current
106 --output-mat output_mat.pb ##$output_mat
107 #elif $matutils_mode.options_mode == 'uncertainty'
108 --samples '${matutils_mode.samples}'
109 #if 'get-parsimony' in $matutils_mode.uncertainty_options
110 --get-parsimony
111 #end if
112 #if 'find-epps' in $matutils_mode.uncertainty_options
113 --find-epps equally_parsimonious.tabular
114 #end if
115 #if 'find-neighborhood' in $matutils_mode.uncertainty_options
116 --find-neighborhood neighborhood.tabular
117 #end if
118 #elif $matutils_mode.options_mode == 'mask'
119 #if $matutils_mode.restricted_samples
120 --restricted-samples '${matutils_mode.restricted_samples}'
121 #end if
122 #if $matutils_mode.rename_samples
123 --rename-samples '${matutils_mode.rename_samples}'
124 #end if
125 $$matutils_mode.simplify
126 --output-mat output_mat.pb ##$output_mat
127 #end if
128 --threads \${GALAXY_SLOTS:-1} > output_stdout.txt
129
130 ]]> </command>
131 <inputs>
132 <param name="mutation_annotation_file" type="data" format="protobuf3" label="Mutation-annotated tree object" help="Load a mutation annotated tree file, in protocol-buffers format (protobuf3)."/>
133 <conditional name="matutils_mode">
134 <param name="options_mode" type="select" label="matUtils mode">
135 <option value="extract">Extract: subsetting and converting a MAT pb to other file formats</option>
136 <option value="summary">Summary: get basic statistics and attribute information about the MAT</option>
137 <option value="annotate">Annotate: adding clade annotation information to the MAT</option>
138 <option value="uncertainty">Uncertainty: calculates two specific metrics for sample placement certainty</option>
139 <option value="mask">Mask: mask specific samples out of the MAT, removing their mutations from visibility</option>
140 </param>
141 <when value="extract">
142 <conditional name="operation_mode">
143 <param name="operation" type="select" label="Operation mode">
144 <option value="samples">Select samples by naming them</option>
145 <option value="clade">Select samples by clade(s)</option>
146 <option value="mutation">Select samples by mutation</option>
147 <option value="max-epps">Select samples by parsimonious placements</option>
148 <option value="max-parsimony">Select samples by parsimonious score</option>
149 <option value="nearest-k">Select samples by sample and context</option>
150 <option value="max-branch-length">Remove samples by branch length</option>
151 </param>
152 <when value="samples">
153 <param argument="--samples" type="data" format="txt" optional="True" label="Select samples by explicitly naming them, one per line in a plain text file" />
154 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
155 </when>
156 <when value="clade">
157 <param argument="--clade" type="text" value="" label="Select samples by membership in any of the indicated clade(s), comma delimited- e.g. -c clade1,clade2">
158 <expand macro="sanitize_string" />
159 </param>
160 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
161 </when>
162 <when value="mutation">
163 <param argument="--mutation" type="text" value="" label="Select samples by whether they contain any of the indicated mutation(s), comma delimited- e.g. -m mutation1,mutation2">
164 <expand macro="sanitize_string" />
165 </param>
166 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
167 </when>
168 <when value="max-epps">
169 <param argument="--max-epps" type="integer" min="0" max="1000" value="" label="Select samples by whether they have less than or equal to the maximum number of indicated equally parsimonious placements" />
170 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
171 </when>
172 <when value="max-parsimony">
173 <param argument="--max-parsimony" type="integer" min="0" max="1000" value="" label="Select samples by whether they have less than or equal to the indicated maximum parsimony score (terminal branch length)" />
174 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
175 </when>
176 <when value="nearest-k">
177 <param argument="--nearest-k" type="text" value="" label="Select a specific sample and X context samples, formatted as 'sample_name:X'">
178 <expand macro="sanitize_string" />
179 </param>
180 <param argument="--prune" type="boolean" truevalue="--prune" falsevalue="" label="Remove the selected samples" help="Remove the selected samples instead of keeping them in the output files" />
181 </when>
182 <when value="max-branch-length">
183 <param argument="--max-branch-length" type="integer" min="0" max="1000" value="" label="Remove samples which have branches of greater than the indicated length in their ancestry" />
184 </when>
185 </conditional>
186 <param argument="--get-representative" type="boolean" truevalue="--get-representative" falsevalue="" label="Select two representative samples per clade" help=" Toggle to automatically select two representative samples per clade currently included in the tree, pruning all other samples from the tree. Applies after other selection steps" />
187 <param argument="--resolve-polytomies" type="boolean" truevalue="--resolve-polytomies" falsevalue="" label="Resolve all polytomies" help="Resolve all polytomies by assigning branch length 0 relationships arbitrarily. Applied after selection; prevents recondensing of the MAT" />
188 <param name="outputs_extract" type="select" display="checkboxes" multiple="true" label="Select the desired output">
189 <option value="used-samples">Write a simple text file containing selected sample names (--used-samples)</option>
190 <option value="sample-paths">Write the path of mutations defining each sample in the subtree (--sample-paths)</option>
191 <option value="clade-paths">Write the path of mutations defining each clade in the subtree (--clade-paths)</option>
192 <option value="all-paths">Write mutations assigned to each node in the subtree in depth-first traversal order (--all-paths)</option>
193 <option value="write-vcf">Output VCF file representing selected subtree (--write-vcf)</option>
194 <option value="write-vcf-no-genotypes">Output VCF file representing selected subtree without including genotype column (--write-vcf --no-genotypes) </option>
195 <option value="write-mat">Write the selected subtree as a mutation annotated tree (--write-math)</option>
196 <option value="write-mat-collapsed">Write the selected subtree as a collapsed mutation annotated tree (--write-mat --collapsed)</option>
197 <option value="write-json">Write an Auspice-compatbile json representing the selected subtree (--write-json)</option>
198 <option value="write-tree"> Write a newick string representing the selected subtree (--write-tree)</option>
199 <option value="write-tree-retain-branch"> Write a newick string representing the selected subtree without recalculating branch lengths (--write-tree --retain-branch)</option>
200 </param>
201 </when>
202 <when value="summary">
203 <param name="summary_options" type="select" display="checkboxes" multiple="true" label="Select statistics and attribute information">
204 <option value="general">Number of nodes, number of samples, number of condensed nodes, and total tree parsimony</option>
205 <option value="samples">Samples in the tree and their parsimony score (--samples)</option>
206 <option value="clades">Clades and the count of associated samples in the tree (--clades)</option>
207 <option value="mutations">Mutations in the tree and their occurrence count (--mutations)</option>
208 <option value="aberrant">Potentially problematic nodes (--aberrant)</option>
209 </param>
210 </when>
211 <when value="annotate">
212 <param argument="--clade-names" type="data" format="tabular" optional="True" label="File containing clade asssignments of samples" help="An algorithm automatically locates and annotates clade root nodes."/>
213 <param argument="--clade-to-nid" type="data" format="tabular" optional="True" label="File mapping clades to their respective internal node identifiers" help="Internal node names are not maintained when saving and loading from a .pb file. It is not guaranteed that internal node names will correspond directly between two .pb files, so use the direct assignment method with caution."/>
214 <param argument="--set-overlap" type="float" min="0" max="1" value="" optional="True" label="Minimum fraction of the lineage samples" help="Minimum fraction of the lineage samples that should be desecendants of the assigned clade root. Used only with --clade-names" />
215 <param argument="--clear-current" type="boolean" truevalue="--clear-current" falsevalue="" label="Remove current annotations" help="Use to remove current annotations before applying new annotations." />
216 <param argument="--allele-frequency" type="float" min="0" max="1" value="" optional="True" label="Minimum allele frequency for finding the best clade root" help="Minimum allele frequency in input samples for finding the best clade root. Used only with 'remove current annotation'. Used only with --clade-names" />
217 <param argument="--mask-frequency" type="float" min="0" max="1" value="" optional="True" label="Minimum allele frequency for being masked" help="Minimum allele frequency in input samples that should be masked for finding the best clade root. Used only with --clade-names" />
218 <param argument="--clip-sample-frequency" type="float" min="0" max="1" value="" optional="True" label="Clip sample frequency" help="Maximum proportion of samples in a branch that are exemplars from --clade-names to consider when sorting candidate clade root nodes." />
219 </when>
220 <when value="uncertainty">
221 <param argument="--samples" type="data" format="txt" label="Select samples by explicitly naming them, one per line in a plain text file" />
222 <param name="uncertainty_options" type="select" display="checkboxes" multiple="true" label="Metrics for sample placement certainty">
223 <option value="get-parsimony">Total tree parsimony score (--get-parsimony)</option>
224 <option value="find-epps">Number of equally parsimonious placements for each sample (--find-epps)</option>
225 <option value="find-neighborhood">Neighborhood size scores (--find-neighborhood)</option>
226 </param>
227 </when>
228 <when value="mask">
229 <param argument="--restricted-samples" type="data" format="txt" optional="True" label="Select samples by explicitly naming them, one per line in a plain text file" help="Sample names to restrict. Use to perform masking"/>
230 <param argument="--rename-samples" type="data" format="tabular" optional="True" label="TSV file containing names of the samples to be renamed and their new names"/>
231 <param argument="--simplify" type="boolean" truevalue="--simplify" falsevalue="" label="Use to automatically remove identifying information from the tree, including all sample names and private mutations" />
232 </when>
233 </conditional>
234 </inputs>
235 <outputs>
236 <data name="selected_samples" format="txt" from_work_dir='selected_samples.txt' label="${tool.name} on ${on_string}: selected samples">
237 <filter>matutils_mode['options_mode'] == 'extract' and 'used-samples' in matutils_mode['outputs_extract'] </filter>
238 </data>
239 <data name="path_mutations" format="tabular" from_work_dir='path_mutations.tabular' label="${tool.name} on ${on_string}: sample mutations">
240 <filter>matutils_mode['options_mode'] == 'extract' and 'sample-paths' in matutils_mode['outputs_extract']</filter>
241 </data>
242 <data name="path_clades" format="tabular" from_work_dir='path_clades.tabular' label="${tool.name} on ${on_string}: clade mutations">
243 <filter>matutils_mode['options_mode'] == 'extract' and 'clade-paths' in matutils_mode['outputs_extract']</filter>
244 </data>
245 <data name="all_paths" format="txt" from_work_dir='all_paths.txt' label="${tool.name} on ${on_string}: node mutations">
246 <filter>matutils_mode['options_mode'] == 'extract' and 'all-paths' in matutils_mode['outputs_extract']</filter>
247 </data>
248 <data name="subtree_vcf" format="vcf" from_work_dir='subtree_vcf.vcf' label="${tool.name} on ${on_string}: subtree">
249 <filter>matutils_mode['options_mode'] == 'extract' and 'write-vcf' in matutils_mode['outputs_extract']</filter>
250 </data>
251 <data name="subtree_no_genotype_vcf" format="vcf" from_work_dir='subtree_vcf_no_genotypes.vcf' label="${tool.name} on ${on_string}: subtree without genotype">
252 <filter>matutils_mode['options_mode'] == 'extract' and 'write-vcf-no-genotypes' in matutils_mode['outputs_extract'] and 'write-vcf' not in matutils_mode['outputs_extract']</filter>
253 </data>
254 <data name="mutation_annotated" format="protobuf3" from_work_dir='mutation_annotated.pb' label="${tool.name} on ${on_string}: mutation annotated tree">
255 <filter>matutils_mode['options_mode'] == 'extract' and 'write-mat' in matutils_mode['outputs_extract'] </filter>
256 </data>
257 <data name="mutation_annotated_collapsed" format="protobuf3" from_work_dir='mutation_annotated_collapsed.pb' label="${tool.name} on ${on_string}: mutation annotated tree collapsed">
258 <filter>matutils_mode['options_mode'] == 'extract' and 'write-mat-collapse' in matutils_mode['outputs_extract'] and 'write-mat' not in matutils_mode['outputs_extract']</filter>
259 </data>
260 <data name="subtree_json" format="json" from_work_dir='subtree_json.json' label="${tool.name} on ${on_string}: subtree (json)">
261 <filter>matutils_mode['options_mode'] == 'extract' and 'write-json' in matutils_mode['outputs_extract']</filter>
262 </data>
263 <data name="tree_newick" format="newick" from_work_dir='tree_newick.nh' label="${tool.name} on ${on_string}: subtree (newick)">
264 <filter>matutils_mode['options_mode'] == 'extract' and 'write-tree' in matutils_mode['outputs_extract']</filter>
265 </data>
266 <data name="tree_newick_retain_branch" format="newick" from_work_dir='tree_newick_retain_branch.nh' label="${tool.name} on ${on_string}: subtree retain branch (newick)">
267 <filter>matutils_mode['options_mode'] == 'extract' and 'write-tree-retain-branch' in matutils_mode['outputs_extract'] and 'write-tree' not in matutils_mode['outputs_extract']</filter>
268 </data>
269 <data name="general_stats" format="txt" from_work_dir='output_stdout.txt' label="${tool.name} on ${on_string}: general stats">
270 <filter>matutils_mode['options_mode'] == 'summary' and 'general' in matutils_mode['summary_options']</filter>
271 </data>
272 <data name="samples_stats" format="tabular" from_work_dir='samples_stats.tabular' label="${tool.name} on ${on_string}: samples stats">
273 <filter>matutils_mode['options_mode'] == 'summary' and 'samples' in matutils_mode['summary_options']</filter>
274 </data>
275 <data name="clades_stats" format="tabular" from_work_dir='clades_stats.tabular' label="${tool.name} on ${on_string}: clades stats">
276 <filter>matutils_mode['options_mode'] == 'summary' and 'clades' in matutils_mode['summary_options']</filter>
277 </data>
278 <data name="mutations_stats" format="tabular" from_work_dir='mutations_stats.tabular' label="${tool.name} on ${on_string}: mutations stats">
279 <filter>matutils_mode['options_mode'] == 'summary' and 'mutations' in matutils_mode['summary_options']</filter>
280 </data>
281 <data name="aberrant_stats" format="tabular" from_work_dir='aberrant_stats.tabular' label="${tool.name} on ${on_string}: aberrant stats">
282 <filter>matutils_mode['options_mode'] == 'summary' and 'aberrant' in matutils_mode['summary_options']</filter>
283 </data>
284 <data name="output_mat" format="protobuf3" from_work_dir='output_mat.pb' label="${tool.name} on ${on_string}: mutation annotated tree">
285 <filter>matutils_mode['options_mode'] == 'annotate' or matutils_mode['options_mode'] == 'mask'</filter>
286 </data>
287 <data name="total_parsimony_tree" format="txt" from_work_dir='output_stdout.txt' label="${tool.name} on ${on_string}: parsimony tree">
288 <filter>matutils_mode['options_mode'] == 'uncertainty' and 'get-parsimony' in matutils_mode['uncertainty_options']</filter>
289 </data>
290 <data name="equally_parsimonious" from_work_dir='equally_parsimonious.tabular' format="tabular" label="${tool.name} on ${on_string}: equally parsimonious placements">
291 <filter>matutils_mode['options_mode'] == 'uncertainty' and 'find-epps' in matutils_mode['uncertainty_options']</filter>
292 </data>
293 <data name="neighbourhood" format="tabular" from_work_dir='neighborhood.tabular' label="${tool.name} on ${on_string}: neighborhood size scores">
294 <filter>matutils_mode['options_mode'] == 'uncertainty' and 'find-neighborhood' in matutils_mode['uncertainty_options']</filter>
295 </data>
296 </outputs>
297 <tests>
298 <test expect_num_outputs="3">
299 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
300 <conditional name="matutils_mode">
301 <param name="options_mode" value="extract"/>
302 <param name="resolve_polytomies" value="true"/>
303 <param name="outputs_extract" value="used-samples,sample-paths,clade-paths"/>
304 <conditional name="operation_mode">
305 <param name="operation" value="samples"/>
306 <param name="samples" value="sample_names.txt"/>
307 <param name="prune" value="true"/>
308 </conditional>
309 </conditional>
310 <output name="selected_samples" file="test_13_sample_names.txt" ftype="txt"/>
311 <output name="path_mutations" file="test_13_path_mutations.tabular" ftype="tabular"/>
312 <output name="path_clades" file="test_13_path_clades.tabular" ftype="tabular"/>
313 </test>
314 <test expect_num_outputs="5">
315 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
316 <conditional name="matutils_mode">
317 <param name="options_mode" value="extract"/>
318 <param name="outputs_extract" value="used-samples,sample-paths,clade-paths,all-paths,write-vcf"/>
319 <conditional name="operation_mode">
320 <param name="operation" value="samples"/>
321 <param name="samples" value="sample_names.txt"/>
322 </conditional>
323 </conditional>
324 <output name="selected_samples" file="test_14_sample_names.txt" ftype="txt"/>
325 <output name="path_mutations" file="test_14_path_mutations.tabular" ftype="tabular"/>
326 <output name="path_clades" file="test_14_path_clades.tabular" ftype="tabular"/>
327 <output name="all_paths" file="test_14_all_paths.txt" ftype="txt"/>
328 <output name="subtree_vcf" ftype="vcf">
329 <assert_contents>
330 <has_size value="7219100" delta="300"/>
331 </assert_contents>
332 </output>
333 </test>
334 <test expect_num_outputs="4">
335 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
336 <conditional name="matutils_mode">
337 <param name="options_mode" value="extract"/>
338 <param name="outputs_extract" value="write-vcf-no-genotypes,write-mat,write-json,write-tree"/>
339 <conditional name="operation_mode">
340 <param name="operation" value="mutation"/>
341 <param name="mutation" value="C241T"/>
342 </conditional>
343 </conditional>
344 <output name="subtree_no_genotype_vcf" file="test_15_subtree_no_genotype.vcf" ftype="vcf"/>
345 <output name="mutation_annotated" file="test_15_mutation_annotated_tree.pb" ftype="protobuf3"/>
346 <output name="subtree_json" file="test_15_subtree.json" ftype="json"/>
347 <output name="tree_newick" file="test_15_tree.nh" ftype="newick"/>
348 </test>
349 <test expect_num_outputs="3">
350 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
351 <conditional name="matutils_mode">
352 <param name="options_mode" value="extract"/>
353 <param name="outputs_extract" value="used-samples,sample-paths,write-vcf"/>
354 <conditional name="operation_mode">
355 <param name="operation" value="clades"/>
356 <param name="clade" value="B.1.160.7, B.1.258.4"/>
357 </conditional>
358 </conditional>
359 <output name="selected_samples" file="test_16_sample_names.txt" ftype="txt"/>
360 <output name="path_mutations" file="test_16_path_mutations.tabular" ftype="tabular"/>
361 <output name="subtree_vcf" ftype="vcf">
362 <assert_contents>
363 <has_size value="8999600" delta="300"/>
364 </assert_contents>
365 </output>
366 </test>
367 <test expect_num_outputs="5">
368 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
369 <conditional name="matutils_mode">
370 <param name="options_mode" value="extract"/>
371 <param name="outputs_extract" value="used-samples,sample-paths,clade-paths,all-paths,write-vcf"/>
372 <conditional name="operation_mode">
373 <param name="operation" value="max-epps"/>
374 <param name="max_epps" value="0"/>
375 </conditional>
376 </conditional>
377 <output name="selected_samples" file="test_17_sample_names.txt" ftype="txt"/>
378 <output name="path_mutations" file="test_17_path_mutations.tabular" ftype="tabular"/>
379 <output name="path_clades" file="test_17_path_clades.tabular" ftype="tabular"/>
380 <output name="all_paths" file="test_17_all_paths.txt" ftype="txt"/>
381 <output name="subtree_vcf" ftype="vcf">
382 <assert_contents>
383 <has_size value="8999600" delta="300"/>
384 </assert_contents>
385 </output>
386 </test>
387 <test expect_num_outputs="5">
388 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
389 <conditional name="matutils_mode">
390 <param name="options_mode" value="extract"/>
391 <param name="outputs_extract" value="used-samples,sample-paths,clade-paths,all-paths,write-vcf"/>
392 <conditional name="operation_mode">
393 <param name="operation" value="max-parsimony"/>
394 <param name="max_parsimony" value="1"/>
395 </conditional>
396 </conditional>
397 <output name="selected_samples" file="test_18_sample_names.txt" ftype="txt"/>
398 <output name="path_mutations" file="test_18_path_mutations.tabular" ftype="tabular"/>
399 <output name="path_clades" file="test_18_path_clades.tabular" ftype="tabular"/>
400 <output name="all_paths" file="test_18_all_paths.txt" ftype="txt"/>
401 <output name="subtree_vcf" ftype="vcf">
402 <assert_contents>
403 <has_size value="1183300" delta="300"/>
404 </assert_contents>
405 </output>
406 </test>
407 <test expect_num_outputs="3">
408 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
409 <conditional name="matutils_mode">
410 <param name="options_mode" value="extract"/>
411 <param name="outputs_extract" value="used-samples,sample-paths,clade-paths"/>
412 <conditional name="operation_mode">
413 <param name="operation" value="max-branch-length"/>
414 <param name="max_branch_length" value="2"/>
415 </conditional>
416 </conditional>
417 <output name="selected_samples" file="test_19_sample_names.txt" ftype="txt"/>
418 <output name="path_mutations" file="test_19_path_mutations.tabular" ftype="tabular"/>
419 <output name="path_clades" file="test_19_path_clades.tabular" ftype="tabular"/>
420 </test>
421 <test expect_num_outputs="1">
422 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
423 <conditional name="matutils_mode">
424 <param name="options_mode" value="summary"/>
425 <param name="summary_options" value="general"/>
426 </conditional>
427 <output name="general_stats" file="test_20_general_stats.txt" ftype="txt"/>
428 </test>
429 <test expect_num_outputs="4">
430 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
431 <conditional name="matutils_mode">
432 <param name="options_mode" value="summary"/>
433 <param name="summary_options" value="samples,clades,mutations,aberrant"/>
434 </conditional>
435 <output name="samples_stats" file="test_21_sample_stats.tabular" ftype="tabular"/>
436 <output name="clades_stats" file="test_21_clades_stats.tabular" ftype="tabular"/>
437 <output name="mutations_stats" file="test_21_mutations_stats.tabular" ftype="tabular"/>
438 <output name="aberrant_stats" file="test_21_aberrant_stats.tabular" ftype="tabular"/>
439 </test>
440 <test expect_num_outputs="1">
441 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
442 <conditional name="matutils_mode">
443 <param name="options_mode" value="uncertainty"/>
444 <param name="samples" value="sample_names.txt"/>
445 <param name="uncertainty_options" value="get-parsimony"/>
446 </conditional>
447 <output name="total_parsimony_tree" file="test_22_total_parsimony_tree.txt" ftype="txt"/>
448 </test>
449 <test expect_num_outputs="2">
450 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
451 <conditional name="matutils_mode">
452 <param name="options_mode" value="uncertainty"/>
453 <param name="samples" value="sample_names.txt"/>
454 <param name="uncertainty_options" value="find-epps,find-neighborhood"/>
455 </conditional>
456 <output name="equally_parsimonious" file="test_23_equally_parsimoniou.tabular" ftype="tabular"/>
457 <output name="neighbourhood" file="test_23_neighbourhood.tabular" ftype="tabular"/>
458 </test>
459 <test expect_num_outputs="1">
460 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
461 <conditional name="matutils_mode">
462 <param name="options_mode" value="mask"/>
463 <param name="restricted_samples" value="sample_names.txt"/>
464 <param name="simplify" value="true"/>
465 </conditional>
466 <output name="output_mat" file="test_24_restricted.pb" ftype="protobuf3"/>
467 </test>
468 <test expect_num_outputs="1">
469 <param name="mutation_annotation_file" value="mutation_annotation.pb"/>
470 <conditional name="matutils_mode">
471 <param name="options_mode" value="mask"/>
472 <param name="rename_samples" value="rename_samples.tabular"/>
473 </conditional>
474 <output name="output_mat" file="test_25_renamed.pb" ftype="protobuf3"/>
475 </test>
476 </tests>
477 <help><![CDATA[
478
479 .. class:: infomark
480
481 **Purpose**
482
483 matUtils is a suite of tools used to analyze, edit, and manipulate mutation annotated tree (.pb) files.
484
485 ----
486
487 .. class:: infomark
488
489 **matUtils Common Options**
490
491 **Extract**: matUtils extract serves as a flexible prebuilt pipeline, and serves as the primary tool for subsetting and converting a MAT pb to other file formats.
492 **Sumary**: matUtils summary is used to get basic statistics and attribute information about the mat.
493 **Annotate**: matUtils annotate is a function for adding clade annotation information to the pb.
494 **Uncertainly**: matUtils uncertainty calculates two specific metrics for sample placement certainty. These metrics can be very important to support contact tracing and reliable identification of the origin of a newly placed sample.
495 **Mask**: matUtils mask is used to mask specific samples out of the pb, removing their mutations from visibility.
496
497 You can find more information in the `matUtils official documentation page <https://usher-wiki.readthedocs.io/en/latest/matUtils.html>`_.
498
499 ]]> </help>
500 <expand macro="citations" />
501 </tool>