view macros.xml @ 108:1b0ed448cdb0 draft default tip

Uploaded
author greg
date Mon, 27 Mar 2017 14:42:52 -0400
parents 7e8be10d7957
children
line wrap: on
line source

<?xml version='1.0' encoding='UTF-8'?>
<macros>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="0.6">plant_tribes_phylogenomics_analysis</requirement>
        </requirements>
    </xml>
    <xml name="stdio">
        <stdio>
            <exit_code range="1:"/>
            <exit_code range=":-1"/>
            <regex match="Error:"/>
            <regex match="Exception:"/>
        </stdio>
    </xml>
    <token name="@REMOVE_GAPPY_SEQUENCES_COND_PREP@">
        #set remove_gappy_sequences_cond = $options_type_cond.remove_gappy_sequences_cond
        #set remove_gappy_sequences = $remove_gappy_sequences_cond.remove_gappy_sequences
        #if str($remove_gappy_sequences) == 'no':
            #set multiple_sequence_alignments_cond = $remove_gappy_sequences_cond.multiple_sequence_alignments_cond
            #set multiple_sequence_alignments = $multiple_sequence_alignments_cond.multiple_sequence_alignments
            #if str($multiple_sequence_alignments) == 'yes':
                #set multiple_sequence_alignments_option_cond = $multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond
                #set multiple_sequence_alignments_option = $multiple_sequence_alignments_option_cond.multiple_sequence_alignments_option
                #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                    #set pasta_iter_limit = $multiple_sequence_alignments_option_cond.pasta_iter_limit
                #end if
            #end if
        #else:
            #set trim_type_cond = $remove_gappy_sequences_cond.trim_type_cond
            #set trim_type = $trim_type_cond.trim_type
            #if str($trim_type) == 'gap_trimming':
                #set gap_trimming = $trim_type_cond.gap_trimming
            #end if
            #set remove_sequences_with_gaps_cond = $remove_gappy_sequences_cond.remove_sequences_with_gaps_cond
            #set remove_sequences_with_gaps = $remove_sequences_with_gaps_cond.remove_sequences_with_gaps
            #if str($remove_sequences_with_gaps) == 'no':
                #set multiple_sequence_alignments_cond = $remove_sequences_with_gaps_cond.multiple_sequence_alignments_cond
                #set multiple_sequence_alignments = $multiple_sequence_alignments_cond.multiple_sequence_alignments
                #if str($multiple_sequence_alignments) == 'yes':
                    #set multiple_sequence_alignments_option_cond = $multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond
                    #set multiple_sequence_alignments_option = $multiple_sequence_alignments_option_cond.multiple_sequence_alignments_option
                    #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                        #set pasta_iter_limit = $multiple_sequence_alignments_option_cond.pasta_iter_limit
                    #end if
                #end if
            #else:
                #set remove_sequences_with_gaps_of = $remove_sequences_with_gaps_cond.remove_sequences_with_gaps_of
                #set multiple_sequence_alignments_cond = $remove_sequences_with_gaps_cond.multiple_sequence_alignments_cond
                #set multiple_sequence_alignments = $multiple_sequence_alignments_cond.multiple_sequence_alignments
                #if str($multiple_sequence_alignments) == 'yes':
                    #set multiple_sequence_alignments_option_cond = $multiple_sequence_alignments_cond.multiple_sequence_alignments_option_cond
                    #set multiple_sequence_alignments_option = $multiple_sequence_alignments_option_cond.multiple_sequence_alignments_option
                    #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                        #set pasta_iter_limit = $multiple_sequence_alignments_option_cond.pasta_iter_limit
                    #else if str($multiple_sequence_alignments_option) == 'iterative_realignment':
                        #set iterative_realignment = $multiple_sequence_alignments_option_cond.iterative_realignment
                    #end if
                #end if
            #end if
        #end if
    </token>
    <token name="@REMOVE_GAPPY_SEQUENCES_COND_CMD@">
        #if str($remove_gappy_sequences) == 'no':
            #if str($multiple_sequence_alignments) == 'yes':
                --alignments_method $multiple_sequence_alignments_option
                #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                    --pasta_script_path '$__tool_directory__/run_pasta.py'
                    --pasta_iter_limit $pasta_iter_limit
                #end if
            #end if
        #else:
            ## str($remove_gappy_sequences) == 'yes':
            --trim_type $trim_type
            #if str($trim_type) == 'gap_trimming':
                --gap_trimming $gap_trimming
            #end if
            #if str($remove_sequences_with_gaps) == 'no':
                #if str($multiple_sequence_alignments) == 'yes':
                    --alignments_method $multiple_sequence_alignments_option
                    #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                        --pasta_script_path '$__tool_directory__/run_pasta.py'
                        --pasta_iter_limit $pasta_iter_limit
                    #end if
                #end if
            #else:
                ## str($remove_sequences_with_gaps) == 'yes':
                --remove_sequences $remove_sequences_with_gaps_of
                #if str($multiple_sequence_alignments) == 'yes':
                    --alignments_method $multiple_sequence_alignments_option
                    #if str($multiple_sequence_alignments_option) == 'pasta_alignments':
                        --pasta_script_path '$__tool_directory__/run_pasta.py'
                        --pasta_iter_limit $pasta_iter_limit
                    #else:
                        --iterative_realignment $iterative_realignment
                    #end if
                #end if
            #end if
        #end if
    </token>
    <token name="@SET_PHYLOGENETIC_TREES_PREP@">
        #set phylogenetic_trees_cond = $options_type_cond.phylogenetic_trees_cond
        #set phylogenetic_trees = $phylogenetic_trees_cond.phylogenetic_trees
    </token>
    <token name="@TREE_INFERENCE_COND_PREP@">
        #set tree_inference_cond = $phylogenetic_trees_cond.tree_inference_cond
        #set tree_inference = $tree_inference_cond.tree_inference
        #if str($tree_inference) == 'raxml':
            #set rooting_order_file_cond = $tree_inference_cond.rooting_order_file_cond
            #set rooting_order_file = $rooting_order_file_cond.rooting_order_file
            #if str($rooting_order_file) == 'yes':
                #set rooting_order = $rooting_order_file_cond.rooting_order
            #end if
            #set bootstrap_replicates = $tree_inference_cond.bootstrap_replicates
        #end if
        #set min_orthogroup_size = $phylogenetic_trees_cond.min_orthogroup_size
        #set max_orthogroup_size = $phylogenetic_trees_cond.max_orthogroup_size
    </token>
    <token name="@TREE_INFERENCE_COND_CMD@">
        --tree_inference $tree_inference
        #if str($tree_inference) == 'raxml':
            #if str($rooting_order_file) == 'yes':
                --rooting_order '$rooting_order'
                ## No else block needed here because the default rooting_order
                ## configuration will be used if the --rooting_order flag is missing.
            #end if
            --bootstrap_replicates $bootstrap_replicates
        #end if
        --min_orthogroup_size $min_orthogroup_size
        --max_orthogroup_size $max_orthogroup_size
    </token>
    <token name="@OUTPUT_ALN@">
        #if str($input_format_cond['options_type_cond']['options_type']) == 'advanced' and ((str($input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_gappy_sequences']) == 'yes' and str($input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['multiple_sequence_alignments_cond']['multiple_sequence_alignments']) == 'yes') or (str($input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_sequences_with_gaps_cond']['remove_sequences_with_gaps'] == 'yes') and str($input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_sequences_with_gaps_cond']['multiple_sequence_alignments_cond']['multiple_sequence_alignments']) == 'yes')):
            --output_aln '$output_aln'
            --output_aln_dir '$output_aln.files_path'
        #end if
    </token>
    <token name="@OUTPUT_TREE@">
        #if str($input_format_cond['options_type_cond']['options_type']) == 'advanced' and str($input_format_cond['options_type_cond']['phylogenetic_trees_cond']['phylogenetic_trees']) == 'yes':
            --output_tree '$output_tree'
            --output_tree_dir '$output_tree.files_path'
        #end if
    </token>
    <xml name="param_scaffold">
        <param name="scaffold" type="select" label="Orthogroups or gene families proteins scaffold">
            <options from_data_table="plant_tribes_scaffolds" />
            <validator type="no_options" message="No PlantTribes scaffolds are available.  Use the PlantTribes Scaffolds Download Data Manager tool in Galaxy to install and populate the PlantTribes scaffolds data table." />
        </param>
    </xml>
    <xml name="param_method">
        <param name="method" type="select" label="Protein clustering method">
            <option value="gfam" selected="true">GFam</option>
            <option value="orthofinder">OrthoFinder</option>
            <option value="orthomcl">OrthoMCL</option>
        </param>
    </xml>
    <xml name="param_options_type">
        <param name="options_type" type="select" label="Options Configuration">
            <option value="basic" selected="true">Basic</option>
            <option value="advanced">Advanced</option>
        </param>
    </xml>
    <xml name="cond_orthogroup_fna">
        <conditional name="orthogroup_fna_cond">
            <param name="orthogroup_fna" type="select" label="Process corresponding gene family classification orthogroups CDS fasta files?">
                <option value="yes" selected="true">Yes</option>
                <option value="no">No</option>
            </param>
            <when value="yes">
                <conditional name="options_type_cond">
                    <expand macro="param_options_type" />
                    <when value="basic" />
                    <when value="advanced">
                        <expand macro="cond_remove_gappy_sequences" />
                        <expand macro="param_multiple_codon_alignments" />
                        <expand macro="cond_phylogenetic_trees_ptorthocs" />
                    </when>
                </conditional>
            </when>
            <when value="no">
                <conditional name="options_type_cond">
                    <expand macro="param_options_type" />
                    <when value="basic" />
                    <when value="advanced">
                        <expand macro="cond_remove_gappy_sequences" />
                        <expand macro="cond_phylogenetic_trees_ptorthocs" />
                    </when>
                </conditional>
            </when>
        </conditional>
    </xml>
    <xml name="param_multiple_sequence_alignments">
        <param name="multiple_sequence_alignments" type="select" label="Set multiple sequence alignments options?">
            <option value="no" selected="true">No</option>
            <option value="yes">Yes</option>
        </param>
    </xml>
    <xml name="options_multiple_sequence_alignments_option">
        <option value="create_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (MAFFT algorithm)</option>
        <option value="add_alignments">Add unaligned orthogroup proteins to scaffold backbone multiple sequence alignments (MAFFT algorithm)</option>
        <option value="pasta_alignments">Create orthogroup protein multiple sequence alignments including scaffold backbone proteins (PASTA algorithm)</option>
    </xml>
    <xml name="param_multiple_sequence_alignments_option">
        <param name="multiple_sequence_alignments_option" type="select" force_select="true" label="Select method for multiple sequence alignments">
            <expand macro="options_multiple_sequence_alignments_option" />
        </param>
    </xml>
    <xml name="param_multiple_sequence_alignments_option_with_iterative_realignment">
        <param name="multiple_sequence_alignments_option" type="select" force_select="true" label="Select method for multiple sequence alignments">
            <expand macro="options_multiple_sequence_alignments_option" />
            <option value="iterative_realignment">Iterative orthogroups realignment, trimming and fitering</option>
        </param>
    </xml>
    <xml name="whens_multiple_sequence_alignments_option_cond">
        <when value="create_alignments" />
        <when value="add_alignments" />
        <when value="pasta_alignments">
            <param name="pasta_iter_limit" type="integer" value="3" min="0" label="Maximum number of iterations that the PASTA algorithm will execute" />
        </when>
    </xml>
    <xml name="cond_multiple_sequence_alignments">
        <conditional name="multiple_sequence_alignments_cond">
            <expand macro="param_multiple_sequence_alignments" />
            <when value="no" />
            <when value="yes">
                <conditional name="multiple_sequence_alignments_option_cond">
                    <expand macro="param_multiple_sequence_alignments_option" />
                    <expand macro="whens_multiple_sequence_alignments_option_cond" />
                </conditional>
            </when>
        </conditional>
    </xml>
    <xml name="cond_multiple_sequence_alignments_with_iterative_realignment">
        <conditional name="multiple_sequence_alignments_cond">
            <expand macro="param_multiple_sequence_alignments" />
            <when value="no" />
            <when value="yes">
                <conditional name="multiple_sequence_alignments_option_cond">
                    <expand macro="param_multiple_sequence_alignments_option_with_iterative_realignment" />
                    <expand macro="whens_multiple_sequence_alignments_option_cond" />
                    <when value="iterative_realignment">
                        <param name="iterative_realignment" type="integer" value="0" min="0" label="Maximum number of iterations" help="Zero value has no affect"/>
                    </when>
                </conditional>
            </when>
        </conditional>
    </xml>
    <xml name="cond_phylogenetic_trees_ptortho">
        <conditional name="phylogenetic_trees_cond">
            <param name="phylogenetic_trees" type="select" label="Set phylogenetic trees options?">
                <option value="no" selected="true">No</option>
                <option value="yes">Yes</option>
            </param>
            <when value="no" />
            <when value="yes">
                <conditional name="tree_inference_cond">
                    <param name="tree_inference" type="select" label="Phylogenetic trees inference method">
                        <option value="raxml" selected="true">RAxML</option>
                        <option value="fasttree">FastTree</option>
                    </param>
                    <when value="raxml">
                        <conditional name="rooting_order_file_cond">
                            <param name="rooting_order_file" type="select" label="Select rooting order configuration for rooting trees?" help="Select No for the default rooting order configuration which uses the most distant taxon present in the orthogroup">
                                <option value="no" selected="true">No</option>
                                <option value="yes">Yes</option>
                            </param>
                            <when value="no" />
                            <when value="yes">
                                <param name="rooting_order" format="txt" type="data" label="Rooting order configuration for rooting trees" />
                            </when>
                        </conditional>
                        <param name="bootstrap_replicates" type="integer" value="100" min="0" label="Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree" />
                    </when>
                    <when value="fasttree" />
                </conditional>
                <param name="max_orthogroup_size" type="integer" value="100" min="0" label="Maximum number of sequences in orthogroup alignments" />
                <param name="min_orthogroup_size" type="integer" value="4" min="0" label="Minimum number of sequences in orthogroup alignments" />
            </when>
        </conditional>
    </xml>
    <xml name="cond_phylogenetic_trees_ptorthocs">
        <conditional name="phylogenetic_trees_cond">
            <param name="phylogenetic_trees" type="select" label="Set phylogenetic trees options?">
                <option value="no" selected="true">No</option>
                <option value="yes">Yes</option>
            </param>
            <when value="no" />
            <when value="yes">
                <conditional name="tree_inference_cond">
                    <param name="tree_inference" type="select" label="Phylogenetic trees inference method">
                        <option value="raxml" selected="true">RAxML</option>
                        <option value="fasttree">FastTree</option>
                    </param>
                    <when value="raxml">
                        <conditional name="rooting_order_file_cond">
                            <param name="rooting_order_file" type="select" label="Select rooting order configuration for rooting trees?" help="Select No for the default rooting order configuration which uses the most distant taxon present in the orthogroup">
                                <option value="no" selected="true">No</option>
                                <option value="yes">Yes</option>
                            </param>
                            <when value="no" />
                            <when value="yes">
                                <param name="rooting_order" format="txt" type="data" label="Rooting order configuration for rooting trees" />
                            </when>
                        </conditional>
                        <param name="bootstrap_replicates" type="integer" value="100" min="0" label="Number of replicates for rapid bootstrap analysis and search for the best-scoring ML tree" />
                    </when>
                    <when value="fasttree" />
                </conditional>
                <param name="max_orthogroup_size" type="integer" value="100" min="0" label="Maximum number of sequences in orthogroup alignments" />
                <param name="min_orthogroup_size" type="integer" value="4" min="0" label="Minimum number of sequences in orthogroup alignments" />
                <param name="sequence_type" type="select" label="Sequence type used in the phylogenetic inference (dna)">
                    <option value="protein" selected="true">Amino acid based</option>
                    <option value="dna">Nucleotide based</option>
                </param>
            </when>
        </conditional>
    </xml>
    <xml name="cond_remove_gappy_sequences">
        <conditional name="remove_gappy_sequences_cond">
            <param name="remove_gappy_sequences" type="select" label="Remove gappy sequences in alignments?">
                <option value="no" selected="true">No</option>
                <option value="yes">Yes</option>
            </param>
            <when value="no">
                <expand macro="cond_multiple_sequence_alignments" />
            </when>
            <when value="yes">
                <conditional name="trim_type_cond">
                    <param name="trim_type" type="select" label="Select process used for gap trimming">
                        <option value="gap_trimming" selected="true">Nucleotide based </option>
                        <option value="automated_trimming">Trim alignments using trimAl's ML heuristic trimming approach</option>
                    </param>
                    <when value="gap_trimming">
                        <param name="gap_trimming" type="float" value="0" min="0" max="1.0" label="Remove sites in alignments with gaps of" help="Zero value has no affect" />
                    </when>
                    <when value="automated_trimming" />
                </conditional>
                <conditional name="remove_sequences_with_gaps_cond">
                    <param name="remove_sequences_with_gaps" type="select" label="Remove sequences with specified gaps?">
                        <option value="no" selected="true">No</option>
                        <option value="yes">Yes</option>
                    </param>
                    <when value="no">
                        <expand macro="cond_multiple_sequence_alignments" />
                    </when>
                    <when value="yes">
                        <param name="remove_sequences_with_gaps_of" type="float" value="0" min="0" max="1" label="Remove sequences with gaps of" help="Zero value has no affect" />
                        <expand macro="cond_multiple_sequence_alignments_with_iterative_realignment" />
                    </when>
                </conditional>
            </when>
        </conditional>
    </xml>
    <xml name="param_multiple_codon_alignments">
        <param name="multiple_codon_alignments" type="select" label="Construct orthogroup multiple codon alignments?">
            <option value="no" selected="True">No</option>
            <option value="yes">Yes</option>
        </param>
    </xml>
    <xml name="output_ptortho">
        <data name="output_ptortho" format="ptortho">
            <filter>input_format_cond['input_format'] == 'ptortho'</filter>
        </data>
    </xml>
    <xml name="output_ptorthocs">
        <data name="output_ptorthocs" format="ptorthocs">
            <filter>input_format_cond['input_format'] == 'ptorthocs'</filter>
        </data>
    </xml>
    <xml name="output_aln">
        <data name="output_aln" format="ptalign" label="${tool.name} on ${on_string} (multiple alignments)">
            <filter>input_format_cond['options_type_cond']['options_type'] == 'advanced' and ((input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_gappy_sequences'] == 'yes' and input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['multiple_sequence_alignments_cond']['multiple_sequence_alignments'] == 'yes') or (input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_sequences_with_gaps_cond']['remove_sequences_with_gaps'] == 'yes' and input_format_cond['options_type_cond']['remove_gappy_sequences_cond']['remove_sequences_with_gaps_cond']['multiple_sequence_alignments_cond']['multiple_sequence_alignments'] == 'yes'))</filter>
        </data>
    </xml>
    <xml name="output_tree">
        <data name="output_tree" format="pttree" label="${tool.name} on ${on_string} (phylogenetic trees)">
            <filter>input_format_cond['options_type_cond']['options_type'] == 'advanced' and input_format_cond['options_type_cond']['phylogenetic_trees_cond']['phylogenetic_trees'] == 'yes'</filter>
        </data>
    </xml>
    <xml name="citations">
        <citations>
            <citation type="bibtex">
                @misc{None,
                journal = {None},
                author = {1. Wafula EK},
                title = {Manuscript in preparation},
                year = {None},
                url = {https://github.com/dePamphilis/PlantTribes},}
            </citation>
            <citation type="bibtex">
                @article{Mirarab2014,
                journal = {Research in Computational Molecular Biology (RECOMB)},
                author = {2. Mirarab S, Nguyen N, Warnow T},
                title = {PASTA: Ultra-Large Multiple Sequence Alignment. In R. Sharan (Ed.)},
                year = {2014},
                pages = {177–191},
                url = {https://github.com/smirarab/pasta},}
            </citation>
            <citation type="bibtex">
                @article{Salvador2009,
                journal = {Bioinformatics},
                author = {3. Capella-Gutierrez S, Silla-Martinez JM, Gabaldon T},
                title = {trimAl: a tool for automated alignment trimming in large-scale phylogenetic analyses},
                year = {2009},
                url = {http://trimal.cgenomics.org},}
            </citation>
            <citation type="bibtex">
                @article{Stamatakis2014,
                journal = {Bioinformatics},
                author = {4. Stamatakis A},
                title = {RAxML Version 8: A tool for Phylogenetic Analysis and Post-Analysis of Large Phylogenies},
                year = {2014},
                url = {http://sco.h-its.org/exelixis/web/software/raxml/index.html},}
            </citation>
            <citation type="doi">10.1371/journal.pone.0009490</citation>
            <citation type="doi">10.1093/bioinformatics/btw412</citation>
        </citations>
    </xml>
</macros>