view raxmlng.xml @ 0:21da84148596 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/raxml-ng commit 73e57581d32cd1ffa9b234faa87fc2e2ac3ae37f
author iuc
date Sun, 21 Dec 2025 10:17:03 +0000
parents
children
line wrap: on
line source

<tool id="raxmlng" name="RAxML-NG" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="22.01">
    <description>Maximum Likelihood based inference of large phylogenetic trees</description>
    <macros>
        <token name="@TOOL_VERSION@">1.2.2</token>
        <token name="@VERSION_SUFFIX@">0</token>
    </macros>
    <xrefs>
        <xref type="bio.tools">RAxML-NG</xref>
    </xrefs>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">raxml-ng</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
raxml-ng
$command
#if $command == '--consense':
  $consensus_type
#end if
--msa '$infile'
--prefix galaxy
#if $model.model_type == 'single_gui':
  #if $model.seq_type == 'multistate':
    #set model_matrix = '""'.join(["MULTI", str($model.single_model.multi_state_count),"_",str($model.single_model.subst_matrix)])
  #else:
    #set model_matrix = str($model.single_model.subst_matrix)
  #end if
  #if str($model.rhas_model) in ['+G', '+R', '+I+G', '+I+R']:
    #set model_rhas = '""'.join([str($model.rhas_model), str($model.rhas_cat_count)])
  #else
    #set model_rhas = str($model.rhas_model)
  #end if
  --model ${model_matrix}${model.base_freqs}${model_rhas}
#elif $model.model_type == 'single_string'
  --model '${model.model_string}'
#elif $model.model_type == 'multi_file'
  --model '$model.model_file'
  --brlen $model.brlen_linkage
#end if
#set start_trees = []
#if $tree_file:
  #set start_trees = start_trees + [str($tree_file)] 
#end if
#if $tree_pars_count:
  #set start_trees = start_trees + ['""'.join(["pars{", str($tree_pars_count), "}"])] 
#end if
#if $tree_rand_count:
  #set start_trees = start_trees + ['""'.join(["rand{", str($tree_rand_count), "}"])] 
#end if
#set tree_str = '","'.join($start_trees) 
#if $tree_str:
  --tree $tree_str
#end if
#if $outgroup_name:
    --outgroup '$outgroup_name'
#end if
#if $constraint_file:
    --tree-constraint '$constraint_file'
#end if
#if $command == '--all' or $command == '--bootstrap':
  #if $bs_metric
    --bs-metric $bs_metric
  #end if
  #if $bs_mre:
    --bs-trees autoMRE{$bs_reps}
    --bs-cutoff $bs_cutoff
  #else
    --bs- trees $bs_reps
  #end if
#elif $command == '--support':
  #if $bs_metric
    --bs-metric $bs_metric
  #end if
  --bs-trees $bs_trees
#elif $command == '--bsconverge':
  --bs-cutoff $bs_cutoff
  --bs-trees $bs_trees
#end if
#if $random_seed:
  --seed $random_seed
#end if
#if $lh_epsilon:          
  --lh-epsilon $lh_epsilon    
#end if 
#if $lh_epsilon_triplet:
  --lh-epsilon-triplet $lh_epsilon_triplet
#end if 
#if $blmin:
  --blmin $blmin
#end if
#if $blmax:
  --blmax $blmax
#end if
$pat_comp
$site_repeats
$rate_scalers
#if $force:          
  --force $force
#end if
#if $log_level:
   --log $log_level
#end if 
#if $site_weights:
   --site-weights $site_weights
#end if  
--threads auto{\${GALAXY_SLOTS:-8}}
    ]]></command>
    <inputs>
        <section name="general_opts" expanded="true" title="General options">
            <param name="command" type="select" label="Analysis type">
                <option value="--check">Check alignment correctness</option>
        <!--    <option value="-parse">Convert alignment to a compressed binary format (RBA)</option> -->
                <option value="--search" selected="true">Tree search (default)</option>
                <option value="--search1">Tree search (FAST)</option>
                <option value="--all">Tree search with branch support values (SLOW)</option>
                <option value="--evaluate">Optimize branches and model parameters on a fixed topology</option>
                <option value="--start">Generate parsimony and/or random starting trees</option>
                <option value="--bootstrap">Bootstrap tree inference (SLOW)</option>
                <option value="--support">Support value mapping from existing set of bootstrap trees</option>
                <option value="--bsconverge">Bootstopping: Test bootstrap convergerge a posteriori</option>
                <option value="--sitelh">Print per-site log-likelihoods</option>
                <option value="--ancestral">Ancestral state reconstruction on a given tree</option>
                <option value="--rfdist">RF: Compute pair-wise Robinson-Foulds distances between trees</option>
                <option value="--consense">Build a consensus tree</option>
                <option value="--terrace">Check whether a tree lies on a phylogenetic terrace</option>
            </param>
            <param name="infile" argument="--msa" type="data" format="fasta,phylip" label="Source file with aligned sequences"
                   help="At least four aligned genomes are needed for RAxML-NG." />
            <conditional name="model">
                <param name="model_type" type="select" display="radio" label="Model type">
                    <option value="single_gui" selected="true">Single model (GUI)</option>
                    <option value="single_string">Single model (string)</option>
                    <option value="multi_file">Partitioned model file</option>
                </param>
                <when value="single_gui">
                    <conditional name="single_model">
                        <param name="seq_type" type="select" display="radio" label="Sequence type">
                            <option value="nucleotide" selected="true">Nucleotide</option>
                            <option value="aminoacid">Amino Acid</option>
                            <option value="binary">Binary</option>
                            <option value="multistate">Multistate</option>
                        </param>
                        <when value="nucleotide">
                            <param name="subst_matrix" type="select" label="Matrix">
                                <option value="F81">F81</option>
                                <option value="GTR" selected="true">GTR</option>
                                <option value="HKY">HKY</option>
                                <option value="JC">JC</option>
                                <option value="K80">K80</option>
                                <option value="SYM">SYM</option>
                                <option value="TIM1">TIM1</option>
                                <option value="TIM2">TIM2</option>
                                <option value="TIM3">TIM3</option>
                                <option value="TN93">TN93</option>
                                <option value="TPM1">TPM1</option>
                                <option value="TPM2">TPM2</option>
                                <option value="TPM3">TPM3</option>
                                <option value="TVM">TVM</option>
                            </param>            
                        </when>
                        <when value="aminoacid">
                            <param name="subst_matrix" type="select" label="Matrix">
                                <option value="BLOSUM62">BLOSUM62</option>
                                <option value="CPREV">CPREV</option>
                                <option value="DAYHOFF">DAYHOFF</option>
                                <option value="DCMUT">DCMUT</option>
                                <option value="FLU">FLU</option>
                                <option value="PROTGTR">GTR</option>
                                <option value="HIVB">HIVB</option>
                                <option value="HIVW">HIVW</option>
                                <option value="JTT">JTT</option>
                                <option value="JTT-DCMUT">JTT-DCMUT</option>
                                <option value="LG" selected="true">LG</option>
                                <option value="LG4M">LG4M</option>
                                <option value="LG4X">LG4X</option>
                                <option value="MTART">MTART</option>
                                <option value="MTMAM">MTMAM</option>
                                <option value="MTREV">MTREV</option>
                                <option value="MTZOA">MTZOA</option>
                                <option value="PMB">PMB</option>
                                <option value="RTREV">RTREV</option>
                                <option value="VT">VT</option>
                                <option value="WAG">WAG</option>
                            </param>
                        </when>
                        <when value="binary">
                            <param name="subst_matrix" type="select" label="Matrix">
                                <option value="BIN">BIN</option>
                            </param>
                        </when>
                        <when value="multistate">
                            <param name="multi_state_count" type="integer" value="2" label="Number of states" />
                            <param name="subst_matrix" type="select" label="Matrix">
                                <option value="MK">MULTIx_MK</option>
                                <option value="GTR">MULTIx_GTR</option>
                            </param>
                        </when>
                    </conditional>
                   <param name="base_freqs" type="select" label="Stationary base frequencies">
                        <option value="" selected="true">Default</option>
                        <option value="+FO">ML estimate</option>
                        <option value="+F">empirical</option>
                        <option value="+FE">equal</option>
                    </param>
                    <param name="rhas_model" type="select" label="Rate heterogeneity across sites (RHAS) model">
                        <option value="">None / default</option>
                        <option value="+G" selected="true">GAMMA</option>
                        <option value="+I">Inv</option>
                        <option value="+I+G">Inv+GAMMA</option>
                        <option value="+R">FreeRate</option>
                        <option value="+I+R">Inv+FreeRate</option>
                    </param>
                    <param name="rhas_cat_count" type="integer" value="" optional="true" label="Number of RHAS categories" help="Typical range: 2..10 (default: 4)"/>
                </when>
                <when value="single_string">
                   <param name="model_string" type="text" value="" optional="false" label="Model definition string" help="Help: https://github.com/amkozlov/raxml-ng/wiki/Input-data#single-model" >
                   <sanitizer>  
                     <valid initial="string.ascii_letters,string.digits,string.punctuation">
                           <remove value="';"/>
                      </valid>
                   </sanitizer>
                   </param>
                </when>
                <when value="multi_file">
                   <param name="model_file" type="data" format="txt" label="Partitioned model file" help="Help: https://github.com/amkozlov/raxml-ng/wiki/Input-data#multiple-models" />
                   <param name="brlen_linkage" type="select" display="radio" label="Branch length linkage among partitions">
                        <option value="linked">Linked identical</option>
                        <option value="scaled" selected="true">Linked proportional</option>
                        <option value="unlinked">Unlinked</option>
                   </param>
                </when>
            </conditional>
        </section>
        <section name="tree_opts" expanded="false" title="Tree options">
            <param name="tree_file" type="data" format="nhx" optional="true" label="User starting trees (NEWICK file)" />
            <param name="tree_pars_count" type="integer" value="" optional="true" label="Number of PARSIMONY starting trees" />
            <param name="tree_rand_count" type="integer" value="" optional="true" label="Number of RANDOM starting trees" />
            <param name="outgroup_name" argument="--outgroup" type="text" value="" optional="true" label="Root a tree: Outgroup taxon name(s)" help="E.g. Mouse or Mouse,Rat. No spaces between taxon names are allowed"/>
            <param name="constraint_file" argument="--tree-constraint" type="data" format="txt" optional="true" label="Constraint tree" help="Topological constraint in NEWICK format (can be partial)"/>
            <param name="consensus_type" type="select" display="radio" label="Consensus type">
                <option value="strict">Strict</option>
                <option value="mr" selected="true">Majority Rule (MR)</option>
                <option value="mre">Majority Rule Extended (MRE)</option>
            </param>
        </section>
        <section name="bootstrap_opts" expanded="false" title="Bootstrapping options">
            <param name="bs_metric" type="select" multiple="true" display="checkboxes" label="Branch support metric">
                <option value="fbp" selected="true">Felsenstein bootstrap</option>
                <option value="tbe">Transfer bootstrap (TBE)</option>
            </param>   
            <param name="bs_reps" type="integer" value="1000" min="1" max="10000" label="Number of replicates" />
            <param name="bs_mre" type="boolean" checked="true" label="Use bootstopping (autoMRE convergence test)" />
            <param name="bs_cutoff" type="float" value="0.03" min="0" max="1" label="Bootstopping cutoff" help="Cutoff threshold for the MRE-based convergence  test" />
            <param argument="--bs-trees" type="data" format="nhx" optional="true" label="Existing set of bootstrap trees"/>
        </section>
        <section name="safety_opts" expanded="false" title="Safety checks">
            <param argument="--force" type="select" multiple="true" display="checkboxes" label="Disable safety checks (use with CAUTION!)">
                 <option value="perf">Performance-related (e.g. number of threads)</option>
                 <option value="msa">MSA-related (e.g. duplicate or gap-only sequences) </option>
                 <option value="model">Model-related (e,g, invalid state frequencies)</option>
            </param>
        </section>
        <section name="advanced_opts" expanded="false" title="Advanced options">
            <param name="random_seed" argument="--seed" type="integer" value="1" label="Random seed" />
            <param argument="--lh-epsilon" type="float" value="" optional="true" label="Log-likelihood epsilon for tree search and model optimization" help="Default: 0.1"/>
            <param argument="--lh-epsilon-triplet" type="float" value="" optional="true" label="Log-likelihood epsilon for branch length triplet optimization" help="Default: 1000"/>
            <param argument="--blmin" type="float" value="" optional="true" label="MIN branch length" help="Default: 10^-6"/>
            <param argument="--blmax" type="float" value="" optional="true" label="MAX branch length" help="Default: 100"/>
            <param name="pat_comp" type="boolean" truevalue="--pat-comp off" falsevalue="" label="Disable alignment pattern compression" help="Default: NO" />
            <param name="site_repeats" type="boolean" truevalue="--site-repeats off" falsevalue="" label="Disable site repeats optimization" help="Default: NO" />
            <param name="rate_scalers" type="boolean" truevalue="--rate-scalers on" falsevalue="" label="ALWAYS use individual CLV scalers for each rate category" help="Default: use if MSA has >2000 taxa" />
            <param name="log_level" argument="--log" type="select" optional="true" label="Log verbosity">
                <option value="error">ERROR</option>
                <option value="warning">WARNING</option>
                <option value="result">RESULT</option>
                <option value="info">INFO</option>
                <option value="progress">PROGRESS</option>
                <option value="verbose">VERBOSE</option>
                <option value="debug">DEBUG</option>
            </param>
            <param argument="--site-weights" type="data" format="txt" optional="true" label="File with custom MSA column weights (positive integers only!)" />
        </section>
    </inputs>
    <outputs>
       <data format="txt" name="log" from_work_dir="galaxy.raxml.log" label="${tool.name} on ${on_string}: Log"/>
       <!--
       <data format="binary" name="rba" from_work_dir="galaxy.raxml.rba" label="${tool.name} on ${on_string}: RAxML Binary Alignment">
            <filter>
                general_opts['command'] in ["-parse", "-search", "-search1", "-all"]
            </filter>
       </data>
       -->
       <data format="nhx" name="bestTree" from_work_dir="galaxy.raxml.bestTree" label="${tool.name} on ${on_string}: Best-scoring ML Tree">
          <filter>general_opts['command'] in ["--search", "--search1", "--all", "--evaluate"] </filter>
       </data>
       <data format="nhx" name="supportTree" from_work_dir="galaxy.raxml.support" label="${tool.name} on ${on_string}: ML Tree with branch support values">
          <filter>general_opts['command'] in ["--all", "--support"] </filter>
       </data>
       <data format="nhx" name="bootstrapTrees" from_work_dir="galaxy.raxml.bootstraps" label="${tool.name} on ${on_string}: Bootstrap trees">
          <filter>general_opts['command'] in ["--all", "--bootstrap"] </filter>
       </data>
       <data format="txt" name="bestModel" from_work_dir="galaxy.raxml.bestModel" label="${tool.name} on ${on_string}: Optimized model parameters">
         <filter>general_opts['command'] in ["--search", "--search1", "--all", "--evaluate"]</filter>
       </data>
       <data format="nhx" name="startTree" from_work_dir="galaxy.raxml.startTree" label="${tool.name} on ${on_string}: Starting trees">
          <filter>general_opts['command'] in ["--search", "--search1", "--all", "--start"] </filter>
       </data>
       <data format="txt" name="siteLH" from_work_dir="galaxy.raxml.siteLH" label="${tool.name} on ${on_string}: Per-site log-likelihoods">
         <filter>general_opts['command'] == "--sitelh"</filter>
       </data>
       <data format="txt" name="rfDistances" from_work_dir="galaxy.raxml.rfDistances" label="${tool.name} on ${on_string}: Pair-wise RF distances">
         <filter>general_opts['command'] == "--rfdist"</filter>
       </data>
       <data format="txt" name="terrace" from_work_dir="galaxy.raxml.terrace" label="${tool.name} on ${on_string}: Terrace">
         <filter>general_opts['command'] == "--terrace"</filter>
       </data>
       <data format="nhx" name="consensusTreeSTRICT" from_work_dir="galaxy.raxml.consensusTreeSTRICT" label="${tool.name} on ${on_string}: Consensus Tree (strict)">
          <filter>general_opts['command'] == "--consense" and tree_opts['consensus_type'] == "strict"  </filter>
       </data>
       <data format="nhx" name="consensusTreeMR" from_work_dir="galaxy.raxml.consensusTreeMR" label="${tool.name} on ${on_string}: Consensus Tree (MR)">
          <filter>general_opts['command'] == "--consense" and tree_opts['consensus_type'] == "mr"  </filter>
       </data>
       <data format="nhx" name="consensusTreeMRE" from_work_dir="galaxy.raxml.consensusTreeMRE" label="${tool.name} on ${on_string}: Consensus Tree (MRE)">
          <filter>general_opts['command'] == "--consense" and tree_opts['consensus_type'] == "mre"  </filter>
       </data>
       <data format="nhx" name="ancestralTree" from_work_dir="galaxy.raxml.ancestralTree" label="${tool.name} on ${on_string}: Ancestral None-labeled Tree">
          <filter>general_opts['command'] == "--ancestral" </filter>
       </data>
       <data format="txt" name="ancestralStates" from_work_dir="galaxy.raxml.ancestralStates" label="${tool.name} on ${on_string}: Ancestral Sequences">
          <filter>general_opts['command'] == "--ancestral" </filter>
       </data>
      <data format="txt" name="ancestralProbs" from_work_dir="galaxy.raxml.ancestralProbs" label="${tool.name} on ${on_string}: Ancestral Marginal Probabilities">
          <filter>general_opts['command'] == "--ancestral" </filter>
       </data>
    </outputs>
    <tests>
        <test expect_num_outputs="4">
            <section name="general_opts">
                <param name="command" value="--search"/>
                <param name="infile" value="dna.phy"/>
                <conditional name="model">
                    <param name="model_type" value="single_gui"/>
                    <conditional name="single_model">
                        <param name="seq_type" value="nucleotide"/>
                        <param name="subst_matrix" value="HKY"/>
                    </conditional>
                </conditional>
            </section>
            <section name="tree_opts">
                <param name="tree_pars_count" value="6"/>
                <param name="tree_rand_count" value="4"/>
            </section>
            <section name="advanced_opts">
                <param name="random_seed" value="1"/>
            </section>
            <output name="log">
                <assert_contents>
                    <has_text text="Final LogLikelihood:"/>
                    <has_text text="Elapsed time:"/>
                </assert_contents>
            </output>
            <output name="startTree" file="tree10.raxml.galaxy" ftype="nhx"/>
            <output name="bestModel">
                <assert_contents>
                    <has_n_columns n="2" sep="="/>
                    <has_n_lines n="1"/>
                    <has_text text="HKY"/>
                </assert_contents>
            </output>
            <output name="bestTree" ftype="nhx">
                <assert_contents>
                    <has_text_matching expression="Frog"/>
                </assert_contents>
            </output>
        </test>
        <test expect_num_outputs="2">
            <section name="general_opts">
                <param name="command" value="--consense"/>
                <param name="infile" value="dna.phy"/>
            </section>
            <section name="tree_opts">
                <param name="tree_file" value="tree10.raxml.galaxy"/>
                <param name="consensus_type" value="mr"/>
            </section>
            <section name="advanced_opts">
                <param name="random_seed" value="1"/>
            </section>
            <output name="log">
                <assert_contents>
                    <has_text text="run mode: Build consensus tree"/>
                    <has_text text="Elapsed time:"/>
                </assert_contents>
            </output>
            <output name="consensusTreeMR" ftype="nhx">
                <assert_contents>
                    <has_text text="Cow"/>
                    <has_text text="Frog"/>
                    <has_n_lines n="1"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
RAxML-NG is a phylogenetic tree inference tool which uses Maximum-Likelihood (ML) optimality criterion.
Its search heuristic is based on iteratively performing a series of Subtree Pruning and Regrafting (SPR) moves, 
which allows to quickly navigate to the best-known ML tree. 
RAxML-NG is a successor of RAxML 8.x (Stamatakis 2014).

Documentation: https://github.com/amkozlov/raxml-ng/wiki

.. _RAxML-NG: http://www.exelixis-lab.org/web/software/raxml-ng/

    ]]></help>
    <citations>
        <citation type="doi">10.1093/bioinformatics/btz305</citation>
    </citations>
</tool>