Mercurial > repos > iuc > usher_matutils
diff matutils.xml @ 2:daa704d3ac8f draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/usher commit d44fdcd836306a2096d50bebb28d8faacdb0fbfd
| author | iuc |
|---|---|
| date | Mon, 02 Feb 2026 14:37:36 +0000 |
| parents | 75e51e947a98 |
| children |
line wrap: on
line diff
--- a/matutils.xml Sun Dec 19 15:50:21 2021 +0000 +++ b/matutils.xml Mon Feb 02 14:37:36 2026 +0000 @@ -1,133 +1,155 @@ -<tool id='usher_matutils' name='UShER matUtils' version='@TOOL_VERSION@+@GALAXY_TOOL_VERSION@' profile='20.01'> +<tool id='usher_matutils' name='UShER matUtils' version='@TOOL_VERSION@+galaxy@VERSION_SUFFIX@' profile='@PROFILE@'> <description>analyze, edit, and manipulate mutation annotated tree files</description> <macros> <import>macros.xml</import> </macros> - <expand macro='edam_ontology' /> + <expand macro="xrefs"/> <expand macro='requirements' /> - <version_command>usher --version</version_command> + <expand macro="version"/> <command detect_errors='exit_code'><![CDATA[ - matUtils - $matutils_mode.options_mode - --input-mat $mutation_annotation_file - #if $matutils_mode.options_mode == 'extract' - #if $matutils_mode.operation_mode.operation == 'samples' - #if $matutils_mode.operation_mode.samples - --samples '${matutils_mode.operation_mode.samples}' - #end if - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'clade' - --clade '${matutils_mode.operation_mode.clade}' - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'mutation' - --mutation '${matutils_mode.operation_mode.mutation}' - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'max-epps' - --max-epps $matutils_mode.operation_mode.max_epps - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'max-parsimony' - --max-parsimony $matutils_mode.operation_mode.max_parsimony - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'nearest-k' - --nearest-k '${matutils_mode.operation_mode.nearest_k}' - $matutils_mode.operation_mode.prune - #elif $matutils_mode.operation_mode.operation == 'max-branch-length' - --max-branch-length $matutils_mode.operation_mode.max_branch_length - #end if - $matutils_mode.get_representative - $matutils_mode.resolve_polytomies - #if 'used-samples' in $matutils_mode.outputs_extract - --used-samples selected_samples.txt ##$selected_samples - #end if - #if 'sample-paths' in $matutils_mode.outputs_extract - --sample-paths path_mutations.tabular ##$path_mutations - #end if - #if 'clade-paths' in $matutils_mode.outputs_extract - --clade-paths path_clades.tabular ##$path_clades - #end if - #if 'all-paths' in $matutils_mode.outputs_extract - --all-paths all_paths.txt ##$all_paths - #end if - #if 'write-vcf' in $matutils_mode.outputs_extract - --write-vcf subtree_vcf.vcf ##$subtree_vcf - #end if - #if 'write-vcf-no-genotypes' in $matutils_mode.outputs_extract and 'write-vcf' not in $matutils_mode.outputs_extract - --write-vcf subtree_vcf_no_genotypes.vcf --no-genotypes - #end if - #if 'write-mat' in $matutils_mode.outputs_extract - --write-mat mutation_annotated.pb ##$mutation_annotated - #end if - #if 'write-mat-collapsed' in $matutils_mode.outputs_extract and 'write-mat' not in $matutils_mode.outputs_extract - --write-mat mutation_annotated_collapsed.pb --collapsed-tree - #end if - #if 'write-json' in $matutils_mode.outputs_extract - --write-json subtree_json.json ##$subtree_json - #end if - #if 'write-tree' in $matutils_mode.outputs_extract - --write-tree tree_newick.nh ##$tree_newick + ## get correct extension filenames + ln -sf '$mutation_annotation_file' '$mutation_annotation_file.element_identifier' && + + matUtils + $matutils_mode.options_mode + --input-mat '$mutation_annotation_file.element_identifier' + + #if $matutils_mode.options_mode == 'extract' + #if $matutils_mode.operation_mode.operation == 'samples' + #if $matutils_mode.operation_mode.samples + --samples '${matutils_mode.operation_mode.samples}' #end if - #if 'write-tree-retain-branch' in $matutils_mode.outputs_extract and 'write-tree' not in $matutils_mode.outputs_extract - --write-tree tree_newick_retain_branch.nh --retain-branch-length - #end if - #elif $matutils_mode.options_mode == 'summary' - #if 'samples' in $matutils_mode.summary_options - --samples samples_stats.tabular - #end if - #if 'clades' in $matutils_mode.summary_options - --clades clades_stats.tabular - #end if - #if 'mutations' in $matutils_mode.summary_options - --mutations mutations_stats.tabular - #end if - #if 'aberrant' in $matutils_mode.summary_options - --aberrant aberrant_stats.tabular + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'clade' + --clade '${matutils_mode.operation_mode.clade}' + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'mutation' + --mutation '${matutils_mode.operation_mode.mutation}' + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'max-epps' + --max-epps $matutils_mode.operation_mode.max_epps + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'max-parsimony' + --max-parsimony $matutils_mode.operation_mode.max_parsimony + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'nearest-k' + --nearest-k '${matutils_mode.operation_mode.nearest_k}' + $matutils_mode.operation_mode.prune + #elif $matutils_mode.operation_mode.operation == 'max-branch-length' + --max-branch-length $matutils_mode.operation_mode.max_branch_length + #end if + $matutils_mode.get_representative + $matutils_mode.resolve_polytomies + #if 'used-samples' in $matutils_mode.outputs_extract + --used-samples selected_samples.txt ##$selected_samples + #end if + #if 'sample-paths' in $matutils_mode.outputs_extract + --sample-paths path_mutations.tabular ##$path_mutations + #end if + #if 'clade-paths' in $matutils_mode.outputs_extract + --clade-paths path_clades.tabular ##$path_clades + #end if + #if 'all-paths' in $matutils_mode.outputs_extract + --all-paths all_paths.txt ##$all_paths + #end if + #if 'write-vcf' in $matutils_mode.outputs_extract + --write-vcf subtree_vcf.vcf ##$subtree_vcf + #end if + #if 'write-vcf-no-genotypes' in $matutils_mode.outputs_extract and 'write-vcf' not in $matutils_mode.outputs_extract + --write-vcf subtree_vcf_no_genotypes.vcf --no-genotypes + #end if + #if 'write-mat' in $matutils_mode.outputs_extract + --write-mat mutation_annotated.pb ##$mutation_annotated + #end if + #if 'write-mat-collapsed' in $matutils_mode.outputs_extract and 'write-mat' not in $matutils_mode.outputs_extract + --write-mat mutation_annotated_collapsed.pb --collapsed-tree + #end if + #if 'write-json' in $matutils_mode.outputs_extract + --write-json subtree_json.json ##$subtree_json + #end if + #if 'write-tree' in $matutils_mode.outputs_extract + --write-tree tree_newick.nh ##$tree_newick + #end if + #if 'write-tree-retain-branch' in $matutils_mode.outputs_extract and 'write-tree' not in $matutils_mode.outputs_extract + --write-tree tree_newick_retain_branch.nh --retain-branch-length + #end if + + #elif $matutils_mode.options_mode == 'summary' + #if 'samples' in $matutils_mode.summary_options + --samples samples_stats.tabular + #end if + #if 'clades' in $matutils_mode.summary_options + --clades clades_stats.tabular + #end if + #if 'sample_clades' in $matutils_mode.summary_options + --sample-clades sampleclades_stats.tabular + #end if + #if 'mutations' in $matutils_mode.summary_options + --mutations mutations_stats.tabular + #end if + #if 'aberrant' in $matutils_mode.summary_options + --aberrant aberrant_stats.tabular + #end if + #if 'haplotype' in $matutils_mode.summary_options + --haplotype haplotype_stats.tabular + #end if + #if 'calculate_roho' in $matutils_mode.summary_options + --calculate-roho roho_stats.tabular + #end if + #if 'node_stats' in $matutils_mode.summary_options + --node-stats node_stats.tabular + #end if + --output-directory ./ + + #elif $matutils_mode.options_mode == 'annotate' + #if $matutils_mode.clade_names + --clade-names '${matutils_mode.clade_names}' + #if $matutils_mode.allele_frequency + --allele-frequency $matutils_mode.allele_frequency #end if - --output-directory ./ - #elif $matutils_mode.options_mode == 'annotate' - #if $matutils_mode.clade_names - --clade-names '${matutils_mode.clade_names}' - #if $matutils_mode.allele_frequency - --allele-frequency $matutils_mode.allele_frequency - #end if - #if $matutils_mode.set_overlap - --set-overlap $matutils_mode.set_overlap - #end if - #if $matutils_mode.mask_frequency - --mask-frequency $matutils_mode.mask_frequency - #end if - #if $matutils_mode.clip_sample_frequency - --clip-sample-frequency $matutils_mode.clip_sample_frequency - #end if + #if $matutils_mode.set_overlap + --set-overlap $matutils_mode.set_overlap #end if - #if $matutils_mode.clade_to_nid - --clade-to-nid '${matutils_mode.clade_to_nid}' + #if $matutils_mode.mask_frequency + --mask-frequency $matutils_mode.mask_frequency + #end if + #if $matutils_mode.clip_sample_frequency + --clip-sample-frequency $matutils_mode.clip_sample_frequency #end if - $matutils_mode.clear_current - --output-mat output_mat.pb ##$output_mat - #elif $matutils_mode.options_mode == 'uncertainty' - --samples '${matutils_mode.samples}' - #if 'get-parsimony' in $matutils_mode.uncertainty_options - --get-parsimony - #end if - #if 'find-epps' in $matutils_mode.uncertainty_options - --find-epps equally_parsimonious.tabular - #end if - #if 'find-neighborhood' in $matutils_mode.uncertainty_options - --find-neighborhood neighborhood.tabular - #end if - #elif $matutils_mode.options_mode == 'mask' - #if $matutils_mode.restricted_samples - --restricted-samples '${matutils_mode.restricted_samples}' - #end if - #if $matutils_mode.rename_samples - --rename-samples '${matutils_mode.rename_samples}' - #end if - $$matutils_mode.simplify - --output-mat output_mat.pb ##$output_mat + #end if + #if $matutils_mode.clade_to_nid + --clade-to-nid '${matutils_mode.clade_to_nid}' + #end if + $matutils_mode.clear_current + --output-mat output_mat.pb ##$output_mat + + #elif $matutils_mode.options_mode == 'uncertainty' + --samples '${matutils_mode.samples}' + #if 'find-epps' in $matutils_mode.uncertainty_options + --find-epps equally_parsimonious.tabular + #end if + #if 'record-placements' in $matutils_mode.uncertainty_options + --record-placements parent_placements.tabular #end if - --threads \${GALAXY_SLOTS:-1} > output_stdout.txt - ]]> </command> + #elif $matutils_mode.options_mode == 'mask' + #if $matutils_mode.restricted_samples + --restricted-samples '${matutils_mode.restricted_samples}' + #end if + #if $matutils_mode.rename_samples + --rename-samples '${matutils_mode.rename_samples}' + #end if + #if $matutils_mode.mask_mutations + --mask-mutations '${matutils_mode.mask_mutations}' + #end if + $matutils_mode.simplify + $matutils_mode.condense_tree + --output-mat output_mat.pb ##$output_mat + #end if + + --threads \${GALAXY_SLOTS:-1} > output_stdout.txt + +]]> </command> <inputs> <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)."/> <conditional name="matutils_mode"> @@ -204,8 +226,12 @@ <option value="general">Number of nodes, number of samples, number of condensed nodes, and total tree parsimony</option> <option value="samples">Samples in the tree and their parsimony score (--samples)</option> <option value="clades">Clades and the count of associated samples in the tree (--clades)</option> + <option value="sample_clades">All samples and their associated clade values (--sample-clades)</option> <option value="mutations">Mutations in the tree and their occurrence count (--mutations)</option> <option value="aberrant">Potentially problematic nodes (--aberrant)</option> + <option value="haplotype">Haplotypes and their total frequency (--haplotype)</option> + <option value="calculate_roho">Distribution of RoHO values for all homoplasic mutations (--calculate-roho)</option> + <option value="node_stats">Per internal node, the number of descendents, mutations, mutational density, and reversion mutations (--node-stats)</option> </param> </when> <when value="annotate"> @@ -220,15 +246,16 @@ <when value="uncertainty"> <param argument="--samples" type="data" format="txt" label="Select samples by explicitly naming them, one per line in a plain text file" /> <param name="uncertainty_options" type="select" display="checkboxes" multiple="true" label="Metrics for sample placement certainty"> - <option value="get-parsimony">Total tree parsimony score (--get-parsimony)</option> <option value="find-epps">Number of equally parsimonious placements for each sample (--find-epps)</option> - <option value="find-neighborhood">Neighborhood size scores (--find-neighborhood)</option> + <option value="record-placements">Record potential parents for each sample (--record-placements)</option> </param> </when> <when value="mask"> <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"/> <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"/> + <param argument="--mask-mutations" type="data" format="tabular" optional="True" label="TSV or CSV containing mutations to be masked in the first column and locations to mask downstream from in the second."/> <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" /> + <param argument="--condense-tree" type="boolean" truevalue="--condense-tree" falsevalue="" label="Use to recondense the tree before saving." /> </when> </conditional> </inputs> @@ -275,23 +302,33 @@ <data name="clades_stats" format="tabular" from_work_dir='clades_stats.tabular' label="${tool.name} on ${on_string}: clades stats"> <filter>matutils_mode['options_mode'] == 'summary' and 'clades' in matutils_mode['summary_options']</filter> </data> + <data name="sampleclades_stats" format="tabular" from_work_dir='sampleclades_stats.tabular' label="${tool.name} on ${on_string}: sample - clades stats"> + <filter>matutils_mode['options_mode'] == 'summary' and 'sample_clades' in matutils_mode['summary_options']</filter> + </data> + <data name="mutations_stats" format="tabular" from_work_dir='mutations_stats.tabular' label="${tool.name} on ${on_string}: mutations stats"> <filter>matutils_mode['options_mode'] == 'summary' and 'mutations' in matutils_mode['summary_options']</filter> </data> <data name="aberrant_stats" format="tabular" from_work_dir='aberrant_stats.tabular' label="${tool.name} on ${on_string}: aberrant stats"> <filter>matutils_mode['options_mode'] == 'summary' and 'aberrant' in matutils_mode['summary_options']</filter> </data> - <data name="output_mat" format="protobuf3" from_work_dir='output_mat.pb' label="${tool.name} on ${on_string}: mutation annotated tree"> - <filter>matutils_mode['options_mode'] == 'annotate' or matutils_mode['options_mode'] == 'mask'</filter> + <data name="haplotype_stats" format="tabular" from_work_dir='haplotype_stats.tabular' label="${tool.name} on ${on_string}: haplotype stats"> + <filter>matutils_mode['options_mode'] == 'summary' and 'haplotype' in matutils_mode['summary_options']</filter> + </data> + <data name="roho_stats" format="tabular" from_work_dir='roho_stats.tabular' label="${tool.name} on ${on_string}: RoHo stats"> + <filter>matutils_mode['options_mode'] == 'summary' and 'calculate_roho' in matutils_mode['summary_options']</filter> </data> - <data name="total_parsimony_tree" format="txt" from_work_dir='output_stdout.txt' label="${tool.name} on ${on_string}: parsimony tree"> - <filter>matutils_mode['options_mode'] == 'uncertainty' and 'get-parsimony' in matutils_mode['uncertainty_options']</filter> + <data name="node_stats" format="tabular" from_work_dir='node_stats.tabular' label="${tool.name} on ${on_string}: node stats"> + <filter>matutils_mode['options_mode'] == 'summary' and 'node_stats' in matutils_mode['summary_options']</filter> + </data> + <data name="output_mat" format="protobuf3" from_work_dir='output_mat.pb' label="${tool.name} on ${on_string}: mutation tree"> + <filter>matutils_mode['options_mode'] == 'annotate' or matutils_mode['options_mode'] == 'mask'</filter> </data> <data name="equally_parsimonious" from_work_dir='equally_parsimonious.tabular' format="tabular" label="${tool.name} on ${on_string}: equally parsimonious placements"> <filter>matutils_mode['options_mode'] == 'uncertainty' and 'find-epps' in matutils_mode['uncertainty_options']</filter> </data> - <data name="neighbourhood" format="tabular" from_work_dir='neighborhood.tabular' label="${tool.name} on ${on_string}: neighborhood size scores"> - <filter>matutils_mode['options_mode'] == 'uncertainty' and 'find-neighborhood' in matutils_mode['uncertainty_options']</filter> + <data name="parent_placements" format="tabular" from_work_dir='parent_placements.tabular' label="${tool.name} on ${on_string}: Potential parents"> + <filter>matutils_mode['options_mode'] == 'uncertainty' and 'record-placements' in matutils_mode['uncertainty_options']</filter> </data> </outputs> <tests> @@ -325,9 +362,12 @@ <output name="path_mutations" file="test_14_path_mutations.tabular" ftype="tabular"/> <output name="path_clades" file="test_14_path_clades.tabular" ftype="tabular"/> <output name="all_paths" file="test_14_all_paths.txt" ftype="txt"/> - <output name="subtree_vcf" ftype="vcf"> + <output name="subtree_vcf" ftype="vcf" > <assert_contents> - <has_size value="7219100" delta="300"/> + <has_line line="##fileformat=VCFv4.2" /> + <has_line_matching expression="#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT.+" /> + <has_n_columns n="1105" comment="#" /> + <has_n_lines n="3204" /> </assert_contents> </output> </test> @@ -352,17 +392,13 @@ <param name="options_mode" value="extract"/> <param name="outputs_extract" value="used-samples,sample-paths,write-vcf"/> <conditional name="operation_mode"> - <param name="operation" value="clades"/> - <param name="clade" value="B.1.160.7, B.1.258.4"/> + <param name="operation" value="clade"/> + <param name="clade" value="B.1.160.7,B.1.258.4"/> </conditional> </conditional> <output name="selected_samples" file="test_16_sample_names.txt" ftype="txt"/> <output name="path_mutations" file="test_16_path_mutations.tabular" ftype="tabular"/> - <output name="subtree_vcf" ftype="vcf"> - <assert_contents> - <has_size value="8999600" delta="300"/> - </assert_contents> - </output> + <output name="subtree_vcf" file="test_16_subtree.vcf" ftype="vcf" /> </test> <test expect_num_outputs="5"> <param name="mutation_annotation_file" value="mutation_annotation.pb" ftype="protobuf3"/> @@ -378,9 +414,12 @@ <output name="path_mutations" file="test_17_path_mutations.tabular" ftype="tabular"/> <output name="path_clades" file="test_17_path_clades.tabular" ftype="tabular"/> <output name="all_paths" file="test_17_all_paths.txt" ftype="txt"/> - <output name="subtree_vcf" ftype="vcf"> + <output name="subtree_vcf" ftype="vcf" > <assert_contents> - <has_size value="8999600" delta="300"/> + <has_line line="##fileformat=VCFv4.2" /> + <has_line_matching expression="#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT.+" /> + <has_n_columns n="1243" comment="#" /> + <has_n_lines n="3558" /> </assert_contents> </output> </test> @@ -398,9 +437,12 @@ <output name="path_mutations" file="test_18_path_mutations.tabular" ftype="tabular"/> <output name="path_clades" file="test_18_path_clades.tabular" ftype="tabular"/> <output name="all_paths" file="test_18_all_paths.txt" ftype="txt"/> - <output name="subtree_vcf" ftype="vcf"> + <output name="subtree_vcf" ftype="vcf" > <assert_contents> - <has_size value="1183300" delta="300"/> + <has_line line="##fileformat=VCFv4.2" /> + <has_text_matching expression="#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT.+" /> + <has_n_columns n="450" comment="#" /> + <has_n_lines n="1256" /> </assert_contents> </output> </test> @@ -426,35 +468,44 @@ </conditional> <output name="general_stats" file="test_20_general_stats.txt" ftype="txt"/> </test> - <test expect_num_outputs="4"> + <test expect_num_outputs="8"> <param name="mutation_annotation_file" value="mutation_annotation.pb" ftype="protobuf3"/> <conditional name="matutils_mode"> <param name="options_mode" value="summary"/> - <param name="summary_options" value="samples,clades,mutations,aberrant"/> + <param name="summary_options" value="samples,clades,mutations,aberrant,sample_clades,haplotype,calculate_roho,node_stats"/> </conditional> <output name="samples_stats" file="test_21_sample_stats.tabular" ftype="tabular"/> <output name="clades_stats" file="test_21_clades_stats.tabular" ftype="tabular"/> <output name="mutations_stats" file="test_21_mutations_stats.tabular" ftype="tabular"/> <output name="aberrant_stats" file="test_21_aberrant_stats.tabular" ftype="tabular"/> + <output name="sampleclades_stats" file="test_21_sampleclades_stats.tabular" ftype="tabular"/> + <output name="haplotype_stats" file="test_21_haplotype_stats.tabular" ftype="tabular"/> + <output name="roho_stats" file="test_21_roho_stats.tabular" ftype="tabular"/> + <output name="node_stats" file="test_21_node_stats.tabular" ftype="tabular"/> </test> <test expect_num_outputs="1"> <param name="mutation_annotation_file" value="mutation_annotation.pb" ftype="protobuf3"/> <conditional name="matutils_mode"> <param name="options_mode" value="uncertainty"/> <param name="samples" value="sample_names.txt"/> - <param name="uncertainty_options" value="get-parsimony"/> + <param name="uncertainty_options" value="record-placements"/> </conditional> - <output name="total_parsimony_tree" file="test_22_total_parsimony_tree.txt" ftype="txt"/> + <output name="parent_placements" ftype="tabular" > + <assert_contents> + <has_line_matching expression="placement\tsample" /> + <has_n_columns n="2" /> + <has_n_lines n="3240" /> + </assert_contents> + </output> </test> - <test expect_num_outputs="2"> + <test expect_num_outputs="1"> <param name="mutation_annotation_file" value="mutation_annotation.pb" ftype="protobuf3"/> <conditional name="matutils_mode"> <param name="options_mode" value="uncertainty"/> <param name="samples" value="sample_names.txt"/> - <param name="uncertainty_options" value="find-epps,find-neighborhood"/> + <param name="uncertainty_options" value="find-epps"/> </conditional> - <output name="equally_parsimonious" file="test_23_equally_parsimoniou.tabular" ftype="tabular"/> - <output name="neighbourhood" file="test_23_neighbourhood.tabular" ftype="tabular"/> + <output name="equally_parsimonious" file="test_23_equally_parsimonious.tabular" ftype="tabular"/> </test> <test expect_num_outputs="1"> <param name="mutation_annotation_file" value="mutation_annotation.pb" ftype="protobuf3"/>
