view phyml.xml @ 1:034f76ead49a draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyml commit 7262445f852345ec93762ff94642507a2b63f0cd"
author iuc
date Mon, 20 Jan 2020 12:45:54 -0500
parents 850e213bee26
children 2bf47d57ebb5
line wrap: on
line source

<tool id="phyml" name="PhyML" version="3.3.20190321">
    <description>Phylogeny software based on the maximum-likelihood</description>
    <requirements>
        <requirement type="package" version="3.3.20190321">phyml</requirement>
    </requirements>
    <version_command>
        <![CDATA[ phyml --version ]]>
    </version_command>
    <command detect_errors="default">
        <![CDATA[
          ##PhyML outputs are based on input path and we need to create outputs in working_dir.
          ln -sf '$input' '${input.name}' &&
          #if $userInputTree:
          ln -sf '${$userInputTree}' '${$userInputTree.name}' && 
          #end if

          phyml --input '${input.name}'
                '${phylip_format}'
                --datatype '${seq.type_of_seq}'
                --multiple '${nb_data_set}'
                
                #if (str($support_condition.branchSupport) in ['0','-1','-2','-4','-5']):
                    --bootstrap '${support_condition.branchSupport}'
                #else:
                    --bootstrap '${support_condition.branchSupport.replicate}'
                #end if
                    
                #if $seq.type_of_seq == "nt":
                    -t '${seq.tstv}'
                #end if
            
                --model '${seq.model}'
                -f '${equi_freq}'
                --pinv '${prop_invar}'
                
                --nclasses '${nbSubstCat}'
                
                #if (str($nbSubstCat) != "1"):
                    --alpha '${gamma}'
                #end if

                --search '${move}'
                -o '${optimisationTopology}'
                
                #if $userInputTree:
                    --inputtree '${$userInputTree.name}'
                #end if
                
                #if $numStartSeed != "0":
                    --r_seed '${numStartSeed}'
                #end if
                
                --no_memory_check > '${output_stdout}' && 
                grep 'failed' '${output_stdout}' >&2;
        ]]>
    </command>
    <inputs>
        <param name="input" type="data" format="phylip,phy" label="Alignment file" help="phylip format"/>
        <param name="phylip_format" type="select"  label="Changes interleaved format">
            <option value="">Interleaved</option>
            <option value="--sequential">Sequential</option>
        </param> 
        <param name="nb_data_set" type="integer" min="1" value="1" label="Number of data sets" />
        <conditional name="seq">
            <param name="type_of_seq" type="select"  label="Data type">
                <option value="nt">Nucleic acids</option>
                <option value="aa">Amino acids</option>
            </param>
            <when value="nt">
               <param name="tstv" type="text" value="e" label="Transition/transversion ratio" help="Must be a positive integer, 'e' if you want PhyML to estimate it"  />
               <param name="model" type="select" label="Substitution model">
                    <option value="HKY85">HKY85</option>
                    <option value="JC69">JC69</option>
                    <option value="K80">K80</option>
                    <option value="F81">F81</option>
                    <option value="F84">F84</option>
                    <option value="TN93">TN93</option>
                    <option value="GTR">GTR</option>
                </param>
            </when>
            <when value="aa">
                <param name="model" type="select" label="Evolution model">
                    <option value="LG">LG</option>
                    <option value="WAG">WAG</option>
                    <option value="JTT">JTT</option>
                    <option value="MtREV">MtREV</option>
                    <option value="Dayhoff">Dayhoff</option>
                    <option value="DCMut">DCMut</option>
                    <option value="RtREV">RtREV</option>
                    <option value="CpREV">CpREV</option>
                    <option value="VT">VT</option>
                    <option value="Blosum62">Blosum62</option>
                    <option value="MtMam">MtMam</option>
                    <option value="MtArt">MtArt</option>
                    <option value="HIVw">HIVw</option>
                    <option value="HIVb">HIVb</option>
                </param>            
           </when>
        </conditional>
        <param name="prop_invar" type="text" value="e" label="Proportion of invariant sites" help="Can be a fixed value in the [0,1] range or 'e' to get the maximum likelihood estimate, 0 to ignore this parameter"/>
        <param name="equi_freq" type="select" label="Equilibrium frequencies" help="Empirical: frequencies are estimated by counting the occurences in the alignment. ML/Model: frequencies are estimated using ML for nucleotides or defined by the proteic substitution model.">
            <option value="m">ML/Model</option>
            <option value="e">Empirical</option>
        </param>
        <param name="nbSubstCat" type="integer" min="1" value="4" label="Number of categories for the discrete gamma model" help="1 means no gamma model"  />
        <param name="gamma"  type="text" value="e" label="Parameter of the gamma model" help="'e' if you want PhyML to estimate it"/>
        <param name="move" type="select" label="Tree topology search">
            <option value="NNI">NNI (Nearest Neighbor Interchange)</option>
            <option value="SPR">SPR (Subtree Pruning and Regraphing)</option>
            <option value="BEST">Best of NNI and SPR</option>
        </param>
        <param name="optimisationTopology" type="select" label="Optimise topology">
            <option value="tlr">Tree topology, Branch length, Rate parameter</option>
            <option value="tl">Tree topology, Branch length</option>
            <option value="l">Branch length</option>
            <option value="r">Rate parameter</option>
            <option value="n">No parameter is optimized</option>
        </param>
           <conditional name="support_condition">
            <param name="branchSupport" type="select" label="Statistical tests for branch support" help="Use aLRT or aBayes to save computing time">
                <option value="0">No bootstrap</option>
                <option value="1">Bootstrap</option>
                <option value="-1">likelihood aLRT statistics</option>
                <option value="-2">likelihood Chi2-based</option>
                <option value="-4" selected='true'>SH-like</option>
                <option value="-5">Approximate Bayes branch supports</option>
            </param>  
            <when value="0"/>
            <when value="-1"/>
            <when value="-2"/>
            <when value="-4"/>
            <when value="-5"/>
            <when value="1">
                <param name="replicate" type="integer" min="1" value="100" label="Number of bootstrap replicates" help="Must be a positive integer" />
            </when>
        </conditional>
        <param name="numStartSeed" type="integer" value="0" label="Number of seed used to initiate the random number generator" help="0 to random seed"/>
        <param name="userInputTree" optional="True" type="data" format="nhx" label="Tree file" help="newick format"/>
    </inputs>
    <outputs>
        <data name="output_tree" format="nhx" label="PhyML Newick tree: ${input.name}.nwk" from_work_dir="*_phyml_tree.txt" />
        <data name="output_stats" format="txt" label="PhyML Statistic: ${input.name}.stats.txt" from_work_dir="*_phyml_stats.txt"/>
        <data name="output_stdout" format="txt" label="PhyML Stdout: ${input.name}"/>
    </outputs>
    <tests>
        <test>
            <param name="input" value="phylip" />
            <param name="prop_invar" value="0"/>
            <param name="type_of_seq" value="nt" />
            <param name="numStartSeed" value="1458308600" />
            <output name="output_tree">
               <assert_contents>
                   <has_text text="Rhes_cDNA:0.0"/>
                   <has_text text="Baboon:0.0"/>
                   <has_text text="Orangutan:0.0"/>
                   <has_text text="Gibbon:0.0"/>
                   <has_text text="Human:0.0"/>
                   <has_text text="Chimp:0.0"/>
               </assert_contents>
            </output>
            <output name="output_stats" file="phylip_phyml_stats.txt" lines_diff="4"/>
        </test>
    </tests>
    <help>
    <![CDATA[ 
.. class:: infomark

#########
PhyML 3.3
#########

A simple, fast, and accurate algorithm to estimate
large phylogenies by maximum likelihood''

==========
 Overview:
==========

PhyML is a phylogeny software based on the maximum-likelihood principle. Early PhyML versions used a fast algorithm to perform Nearest Neighbor Interchanges (NNIs), in order to improve a reasonable starting tree topology. Since the original publication (Guindon and Gascuel 2003), PhyML has been widely used due to its simplicity and a fair accuracy/speed compromise. In the mean time research around PhyML has continued. 

We designed an efficient algorithm to search the tree space using Subtree Pruning and Regrafting (SPR) topological moves (Hordijk and Gascuel 2005), and proposed a fast branch test based on an approximate likelihood ratio test (Anisimova and Gascuel 2006). However, these novelties were not included in the official version of PhyML, and we found that improvements were still needed in order to make them effective in some practical cases. PhyML 3.0 achieves this task. 

It implements new algorithms to search the space of tree topologies with user-defined intensity. A non-parametric, Shimodaira-Hasegawa-like branch test is also available. The program provides a number of new evolutionary models and its interface was entirely re-designed. We tested PhyML 3.0 on a large collection of real data sets to ensure that the new version is stable, ready-to-use and still reasonably fast and accurate. 

-----


For further informations, please visite the PhyML_ website.

.. _PhyML: http://www.atgc-montpellier.fr/phyml/

Please cite this paper if you use this software in your publications.


 ]]>
    </help>
    <citations>
       <citation type="doi">10.1093/sysbio/syq010</citation> 
    </citations>
</tool>