Mercurial > repos > malex > garli
view garli.xml @ 0:4025ba8b84d6
Uploaded Tool Config file
author | malex |
---|---|
date | Fri, 02 Dec 2011 17:06:40 -0500 |
parents | |
children | 681e9bb51cc4 |
line wrap: on
line source
<tool id="Garli" name="Garli" version="2.0" force_history_refresh="True"> <description> phylogenetic inference using the maximum-likelihood</description> ## The command is a Cheetah template which allows some Python based syntax. ## Lines starting hash hash are comments. Galaxy will turn newlines into spaces ## Arguments to the wrapper beyond the config file are just for Galaxy's benefit - all filenames are hardcoded <command interpreter="python">garli_wrapper.py $garli_conf $best_all_tre $best_tre $log00_log $screen_log </command> <inputs> <param name="datafname" format="nexus" type="data" label="Nexus formated sequence file" force_select="true"/> <conditional name="choose_search_type"> <param name="search_type" type="select" label="Analysis Type"> <option value="mlsearch" selected="true">ML Search</option> <option value="bootstrap">Bootstrap</option> </param> <when value="mlsearch"> <param name="searchreps" type="integer" size="4" value="1" label="Number of replicates"> <validator type="in_range" message="(1-infinity)" min="1" max="inf"/> </param> <param name="bootstrapreps" type="hidden" value="0" /> <param name="resampleproportion" type="float" value="1.0" label="Relative size of resample data matrix (0.1-10.0)"> <validator type="in_range" message="(0.1-10.0)" min="0.1" max="10.0"/> </param> </when> <when value="bootstrap"> <param name="searchreps" type="hidden" value="0" /> <param name="bootstrapreps" type="integer" size="4" value="1" label="Number of replicates"> <validator type="in_range" message="(1-infinity)" min="1" max="inf"/> </param> </when> </conditional> <param name="constraintfile" type="data" format="text" label="Constraint file" optional="true"/> <conditional name="choose_streefname"> <param name="streefname_menu" type="select" label="Source of starting tree and/or model"> <option value="stepwise" selected="true">Stepwise</option> <option value="random">Random</option> <option value="file">User Tree</option> </param> <when value="stepwise"> <param name="streefname" type="hidden" value="stepwise"/> </when> <when value="random"> <param name="streefname" type="hidden" value="random"/> </when> <when value="file"> <param name="streefname" format="nexus" type="data" label="Starting Tree File"/> </when> </conditional> <param name="attachmentspertaxon" size="4" type="integer" value="50" label="Attachment branches evaluated per taxon (min=1)" > <validator type="in_range" message="(1-infinity)" min="1" max="inf"/> </param> <param name="randseed" type="text" size="4" value="-1" label="Random Seed (-1 or int)"> <validator type="in_range" message="(-1 to infinity)" min="-1" max="inf"/> </param> <param name="availablememory" size="4" value="512" type="integer" label="Available Memory"/> <param name="refinestart" type="select" label="Perform initial rough optimization"> <option value="1" selected="true">Yes</option> <option value="0">No</option> </param> <param name="outgroup" type="integer" size="20" value="1" label="Outgroup taxa numbers"/> <param name="collapsebranches" type="select" label="Collapse Branches"> <option value="1" selected="true">Yes</option> <option value="0">No</option> </param> <conditional name="choose_datatype"> <param name="datatype" type="select" label="Model Type"> <option value="nucleotide" selected="true">Nucleotide</option> <option value="aminoacid">Amino Acid</option> <option value="codon-aminoacid">Codon-Amino Acid</option> <option value="codon">Codon</option> </param> <when value="nucleotide"> <conditional name="choose_ratematrix"> <param name="ratematrix" type="select" label="Rate Matrix"> <option value="1rate">1rate</option> <option value="2rate">2rate</option> <option value="6rate" selected="true">6rate</option> <option value="fixed">fixed</option> <option value="custom">custom</option> </param> <when value="1rate" /> <when value="2rate" /> <when value="6rate" /> <when value="fixed" /> <when value="custom"> <param name="ratematrix" type="text" size="20" value="(a b a a b a)" label="Custom Rate Matrix"/> </when> </conditional> <param name="statefrequencies" type="select" label="State Frequencies"> <option value="equal">Equal</option> <option value="empirical">Empirical</option> <option value="estimate" selected="true">Estimate</option> <option value="fixed">Fixed</option> </param> <param name="ratehetmodel" type="select" label="Rate Heterogeneity Type"> <option value="none">None</option> <option value="gamma" selected="true">Gamma</option> <option value="gammafixed">Gamma Fixed</option> </param> <param name="numratecats" type="integer" size="2" value="4" label="Number of discrete dN/dS categories"> <validator type="in_range" message="(1-20)" min="1" max="20"/> </param> <param name="invariantsites" type="select" label="Treatment of proportion of invariable sites parameter"> <option value="none">None</option> <option value="estimate" select="true">Estimate</option> <option value="fixed">Fixed</option> </param> </when> <when value="aminoacid"> <param name="ratematrix" type="select" label="Rate Matrix"> <option value="poisson">Poisson</option> <option value="jones" selected="true">Jones</option> <option value="dayhoff">Dayhoff</option> <option value="wag">WAG</option> <option value="mtmam">mtmam</option> <option value="mtrev">mtREV</option> </param> <param name="statefrequences" type="select" label="Equilibrium Base Frequences"> <option value="equal">Equal</option> <option value="empirical" selected="true">Empirical</option> <option value="estimate">Estimate</option> <option value="fixed">Fixed</option> <option value="jones">Jones</option> <option value="dayhoff">Dayhoff</option> <option value="wag">WAG</option> <option value="mtmam">mtmam</option> <option value="mtrev">mtREV</option> </param> <param name="numratecats" type="integer" size="2" value="4" label="Number of discrete dN/dS categories"> <validator type="in_range" message="(1-20)" min="1" max="20"/> </param> <param name="invariantsites" type="select" label="Treatment of proportion of invariable sites parameter"> <option value="none">None</option> <option value="estimate" select="true">Estimate</option> <option value="fixed">Fixed</option> </param> </when> <when value="codon-aminoacid"> <param name="ratematrix" type="select" label="Rate Matrix"> <option value="poisson">Poisson</option> <option value="jones" selected="true">Jones</option> <option value="dayhoff">Dayhoff</option> <option value="wag">WAG</option> <option value="mtmam">mtmam</option> <option value="mtrev">mtREV</option> </param> <param name="statefrequences" type="select" label="Equilibrium Base Frequences"> <option value="equal">Equal</option> <option value="empirical" selected="true">Empirical</option> <option value="estimate">Estimate</option> <option value="fixed">Fixed</option> <option value="jones">Jones</option> <option value="dayhoff">Dayhoff</option> <option value="wag">WAG</option> <option value="mtmam">mtmam</option> <option value="mtrev">mtREV</option> </param> <param name="geneticcode" type="select" label="Genetic Code"> <option value="standard" selected="true">Standard</option> <option value="vertmito">Vertmito</option> <option value="invertmito">Invertmito</option> </param> </when> <when value="codon"> <conditional name="choose_ratematrix"> <param name="ratematrix" type="select" label="Rate Matrix"> <option value="1rate">1rate</option> <option value="2rate">2rate</option> <option value="6rate" selected="true">6rate</option> <option value="fixed">fixed</option> <option value="custom">custom</option> </param> <when value="1rate" /> <when value="2rate" /> <when value="6rate" /> <when value="fixed" /> <when value="custom"> <param name="ratematrix" type="text" size="20" value="(a b a a b a)" label="Custom Rate Matrix"/> </when> </conditional> <param name="statefrequencies" type="select" label="State Frequencies"> <option value="equal">Equal</option> <option value="empirical" selected="true">Empirical</option> <option value="f1x4">F1x4</option> <option value="f3x4">F3x4</option> </param> <param name="ratehetmodel" type="select" label="Rate Heterogeneity Type"> <option value="none" selected="true">None</option> <option value="nonsynonymous">Non-synonymous</option> </param> <param name="numratecats" type="integer" size="2" value="1" label="Number of discrete dN/dS categories"> <validator type="in_range" message="(1-20)" min="1" max="20"/> </param> <param name="invariantsites" type="hidden" value="none"/> <param name="geneticcode" type="select" label="Genetic Code"> <option value="standard" selected="true">Standard</option> <option value="vertmito">Vertmito</option> <option value="invertmito">Invertmito</option> </param> </when> </conditional> <param name="nindivs" type="integer" size="3" value="4" label="Number of individuals in population"> <validator type="in_range" message="(2-100)" min="2" max="100"/> </param> <param name="holdover" type="integer" size="2" value="1" label="Unmutated copies of best individual"> <validator type="in_range" message="(1-99)" min="1" max="99"/> </param> <param name="selectionintensity" type="float" size="3" value="0.5" label="Strength of selection"> <validator type="in_range" message="(0.1-5.0)" min="0.1" max="5.0"/> </param> <param name="holdoverpenalty" type="integer" size="3" value="0" label="Fitness handicap for best individual"> <validator type="in_range" message="(0-100)" min="0" max="100"/> </param> <param name="stopgen" type="integer" size="10" value="5000000" label="Maximum number of generations to run"> <validator type="in_range" message="(0-50000000)" min="0" max="50000000"/> </param> <param name="stoptime" type="integer" size="10" value="5000000" label="Maximum time to run"> <validator type="in_range" message="(0-50000000)" min="0" max="50000000"/> </param> <param name="startoptprec" type="float" size="5" value="0.5" label="Starting optimization precision"> <validator type="in_range" message="(0.005-5.0)" min="0.005" max="5.0"/> </param> <param name="minoptprec" type="float" size="5" value="0.01" label="Minimal optimization precision"> <validator type="in_range" message="(0.001-5.0)" min="0.001" max="5.0"/> </param> <param name="numberofprecreductions" type="integer" size="3" value="10" label="Number of steps down from Start Precision to Minimum Precision" > <validator type="in_range" message="(0-100)" min="0" max="100"/> </param> <param name="treerejectionthreshold" type="float" size="5" value="50.0" label="Tree Rejection Threshold"> <validator type="in_range" message="(0-500.0)" min="0" max="500.0"/> </param> <param name="topoweight" type="float" size="10" value="1.0" label="Weight on topology mutations"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="modweight" type="float" size="10" value="0.05" label="Weight on model parameter mutations"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="brlenweight" type="float" size="10" value="0.2" label="Weight on branch-length parameter mutations"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="randnniweight" type="float" size="10" value="0.1" label="Weight on NNI topology changes"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="randsprweight" type="float" size="10" value="0.3" label="Weight on SPR topology changes"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="limsprweight" type="float" size="10" value="0.6" label="Weight on localized SPR topology changes"> <validator type="in_range" message="(0-infinity)" min="0" max="inf"/> </param> <param name="intervallength" type="integer" size="4" value="100" label="Interval Length"> <validator type="in_range" message="(0-1000)" min="0" max="1000"/> </param> <param name="intervalstostore" type="integer" size="2" value="5" label="Number of intervals to store"> <validator type="in_range" message="(0-1000)" min="0" max="10"/> </param> <param name="limsprrange" type="integer" size="10" value="6" label="Max range for localized SPR topology changes"> <validator type="in_range" message="(0-1000)" min="0" max="inf"/> </param> <param name="meanbrlenmuts" type="integer" size="7" value="5" label="Mean number of branch lengths to change per mutation"> <validator type="in_range" message="(0-# of taxa)" min="0" max="10000000000"/> </param> <param name="gammashapebrlen" type="integer" size="4" value="1000" label="Magnitude of branch-length mutations"> <validator type="in_range" message="(50-2000)" min="50" max="2000"/> </param> <param name="gammashapemodel" type="integer" size="4" value="1000" label="Magnitude of model parameter mutations"> <validator type="in_range" message="(50-2000)" min="50" max="2000"/> </param> <param name="uniqueswapbias" type="float" size="4" value="0.1" label="Relative weight assigned to already attempted branch swaps" > <validator type="in_range" message="(0.01-1.0)" min="0.01" max="1.0"/> </param> <param name="distanceswapbias" type="float" size="3" value="1.0" label="Relative weight assigned to branch swaps based on locality"> <validator type="in_range" message="(0.1-10.0)" min="0.1" max="10.0"/> </param> </inputs> <outputs> <data format="nexus" name="best_tre" metadata_source="datafname" from_work_dir="garli.best.tre" label="${tool.name} on ${on_string}: garli.best.tre"/> <data format="nexus" name="best_all_tre" metadata_source="datafname" from_work_dir="garli.best.all.tre" label="${tool.name} on ${on_string}: garli.all.best.tre"/> <data format="txt" name="garli_conf" from_work_dir="garli.conf" label="${tool.name} on ${on_string}: garli.conf"/> <data format="txt" name="log00_log" from_work_dir="garli.log00.log" label="${tool.name} on ${on_string}: garli.log00.log"/> <data format="txt" name="screen_log" from_work_dir="garli.screen.log" label="${tool.name} on ${on_string}: garli.screen.log"/> </outputs> <configfiles> <configfile name="garli_conf"> [general] datafname = ${datafname} searchreps = ${choose_search_type.searchreps} bootstrapreps = ${choose_search_type.bootstrapreps} constraintfile = ${constraintfile} streefname = ${choose_streefname.streefname} attachmentspertaxon = ${attachmentspertaxon} ofprefix = garli randseed = ${randseed} availablememory = ${availablememory} logevery = 10 writecheckpoints = 0 saveevery = 100 refinestart = ${refinestart} outputeachbettertopology = 0 outputcurrentbesttopology = 0 enforcetermconditions = 1 genthreshfortopoterm = 20000 scorethreshforterm = 0.05 significanttopochange = 0.01 outputphyliptree = 0 outputmostlyuselessfiles = 0 restart = 0 outgroup = ${outgroup} resampleproportion = ${choose_search_type.resampleproportion} inferinternalstateprobs = 0 outputsitelikelihoods = 0 optimizeinputonly = 0 collapsebranches = ${collapsebranches} [model1] datatype = ${choose_datatype.datatype} ratematrix = ${choose_datatype.choose_ratematrix.ratematrix} statefrequencies = ${choose_datatype.statefrequencies} ratehetmodel = ${choose_datatype.ratehetmodel} #if $choose_datatype.numratecats > 0 numratecats = ${choose_datatype.numratecats} #end if #if $choose_datatype.invariantsites != "" invariantsites = ${choose_datatype.invariantsites} #end if [master] nindivs = $nindivs holdover = $holdover selectionintensity = $selectionintensity holdoverpenalty = $holdoverpenalty stopgen = $stopgen stoptime = $stoptime startoptprec = $startoptprec minoptprec = $minoptprec numberofprecreductions = $numberofprecreductions treerejectionthreshold = $treerejectionthreshold topoweight = $topoweight modweight = $modweight brlenweight = $brlenweight randnniweight = $randnniweight randsprweight = $randsprweight limsprweight = $limsprweight intervallength = $intervallength intervalstostore = $intervalstostore limsprrange = $limsprrange meanbrlenmuts = $meanbrlenmuts gammashapebrlen = $gammashapebrlen gammashapemodel = $gammashapemodel uniqueswapbias = $uniqueswapbias distanceswapbias = 1.0 </configfile> </configfiles> <help> **What it does** GARLI is a program that performs phylogenetic inference using the maximum-likelihood criterion. Several sequence types are supported, including nucleotide, amino acid and codon. Version 2.0 adds support for partitioned models and morphology-like datatypes. Garli is written and maintained by Derrick Zwickl Configuration options are adapted from https://www.nescent.org/wg_garli/GARLI_Configuration_Settings ----- **Detailed description of the configuration options** **Analysis Type** Specify whether to perform a maximum likelihood search for the best tree, or a bootstrap analysis. **Number of replicates** Number of independent search replicates to run. **Relative size of resample data** This setting allows for bootstrap-like resampling, but with the psuedoreplicate datasets having the number of alignment columns different from the real data. Setting values below 1.0 is somewhat similar to jackknifing, but not identical. **Attachment branches evaluated per taxon (min=1)** The number of attachment branches evaluated for each taxon to be added to the tree during the creation of an ML stepwise-addition starting tree. Briefly, stepwise addition is an algorithm used to make a tree, and involves adding taxa in a random order to a growing tree. For each taxon to be added, a number of randomly chosen attachment branches are tried and scored, and then the best scoring one is chosen as the location of that taxon. This setting controls how many attachment points are evaluated for each taxon to be added. A value of one is equivalent to a completely random tree (only one randomly chosen location is evaluated). A value of greater than 2 times the number of taxa in the dataset means that all attachment points will be evaluated for each taxon, and will result in very good starting trees (but may take a while on large datasets). Even fairly small values (less than 10) can result in starting trees that are much, much better than random, but still fairly different from one another. **Constraint file** Select a file containing constraint specifications. **Random seed** Random see can have a value of -1 or a positive integer. The random number seed used by the random number generator. Specify “–1” to have a seed chosen for you. Specifying the same seed number in multiple runs will give exactly identical results, if all other parameters and settings are also identical. **Available memory** This lets GARLI determine how much system memory it may be able to use to store computations for reuse. **Perform initial rough optimization** Specifies whether some initial rough optimization is performed on the starting branch lengths and rate heterogeneity parameters. This is always recommended. **Outgroup taxa numbers** The outgroup option allows for orienting tree topologies in a consistent way when they are written to a file. Note that this has NO effect whatsoever on the actual inference and the specified outgroup is NOT constrained to be present in the inferred trees. If multiple outgroup taxa are specified and they do not form a monophyletic group, this setting will be ignored. If you specify a single outgroup taxon it will always be present, and the tree will always be consistently oriented. To specify an outgroup consisting of taxa 1, 3 and 5 the format is this: outgroup = 1 3 5. Dashes are used for ranges e.g. 1-3 5. **Collapse branches** Before version 1.0, all trees that are returned were fully resolved. This is true even if the maximum-likelihood estimate of some internal branch lengths are effectively zero (or GARLI's minimum, which is 1e-8). In such cases, collapsing the branch into a polytomy would be a better representation. Note that GARLI will never return a tree with an actual branch length of zero, but rather with its minimum value of 1.0e-8. The drawback of always returning fully resolved trees is that what is effectively a polytomy can be resolved in three ways, and different independent searches may randomly return one of those resolutions. Thus, if you compare the trees by topology only, they will look different. If you pay attention to the branch lengths and likelihood scores of the trees it will be apparent that they are effectively the same. I think that collapsing of branches is particularly important when bootstrapping, since no support should be given to a branch that doesn't really exist, i.e., that is a random resolution of a polytomy. Collapsing is also good when calculating tree to tree distances such as the symmetric tree distance, for example when calculating phylogenetic error to a known target tree. Zero-length branches would add to the distances (~error) although they really should not. **Model type** The codon-aminoacid datatype means that the data will be supplied as a nucleotide alignment, but will be internally translated and analyzed using an amino acid model. The codon and codon-aminoacid datatypes require nucleotide sequence that is aligned in the correct reading frame. In other words, all gaps in the alignment should be a multiple of 3 in length, and the alignment should start at the first position of a codon. If the alignment has extra columns at the start, middle or end, they should be removed or excluded with a Nexus exset (see the FAQ for an example of exset usage). The correct Genetic Code must also be set. **Datatype - nucleotide** **Rate matrix** The number of relative substitution rate parameters (note that the number of free parameters is this value minus one). Equivalent to the “nst” setting in PAUP* and MrBayes. 1rate assumes that substitutions between all pairs of nucleotides occur at the same rate (JC model), 2rate allows different rates for transitions and transversions (K2P or HKY models), and 6rate allows a different rate between each nucleotide pair (GTR). These rates are estimated unless the fixed option is chosen. Since version 0.96, parameters for any submodel of the GTR model may be estimated. The format for specifying this is very similar to that used in the “rclass’ setting of PAUP*. Within parentheses, six letters are specified, with spaces between them. The six letters represent the rates of substitution between the six pairs of nucleotides, with the order being A-C, A-G, A-T, C-G, C-T and G-T. Letters within the parentheses that are the same mean that a single parameter is shared by multiple nucleotide pairs. **State frequences** Specifies how the equilibrium state frequencies (A, C, G and T) are treated. The empirical setting fixes the frequencies at their observed proportions, and the other options should be self-explanatory. **Datatype - nucleotide or amino-acid** **Treatment of proportion of invariable sites parameter** Specifies whether a parameter representing the proportion of sites that are unable to change (i.e. have a substitution rate of zero) will be included. This is typically referred to as 'invariant sites', but would better be termed 'invariable sites'. **Rate heterogeneity type** (none, gamma, gammafixed) – The model of rate heterogeneity assumed. “gammafixed” requires that the alpha shape parameter is provided, and a setting of “gamma” estimates it. **Number of discrete dN/dS categories** The number of categories of variable rates (not including the invariant site class if it is being used). Must be set to 1 if ratehetmodel is set to none. Note that runtimes and memory usage scale linearly with this setting. **Datatype - amino-acid or codon-aminoacid** **Rate matrix** (poisson, jones, dayhoff, wag, mtmam, mtrev) – The fixed amino acid rate matrix to use. You should use the matrix that gives the best likelihood, and could use a program like PROTTEST (very much like MODELTEST, but for amino acid models) to determine which fits best for your data. Poisson assumes a single rate of substitution between all amino acid pairs, and is a very poor model. **Equilibrium Base Frequences ** (equal, empirical, estimate, fixed, jones, dayhoff, wag, mtmam, mtrev) – Specifies how the equilibrium state frequencies of the 20 amino acids are treated. The “empirical” option fixes the frequencies at their observed proportions (when describing a model this is often termed '+F'). **Number of discrete dN/dS categories** The number of categories of variable rates (not including the invariant site class if it is being used). Must be set to 1 if ratehetmodel is set to none. Note that runtimes and memory usage scale linearly with this setting. **Treatment of proportion of invariable sites parameter** Specifies whether a parameter representing the proportion of sites that are unable to change (i.e. have a substitution rate of zero) will be included. This is typically referred to as 'invariant sites', but would better be termed 'invariable sites'. **Datatype - codon** **Rate matrix** (1rate, 2rate, 6rate, fixed, custom string) – This determines the relative rates of nucleotide substitution assumed by the codon model. The options are exactly the same as those allowed under a normal nucleotide model. A codon model with ratematrix = 2rate specifies the standard Goldman and Yang (1994) model, with different substitution rates for transitions and transversions. **State frequences** The options are to use equal codon frequencies (not a good option), the frequencies observed in your dataset (termed “empirical” in GARLI), or the codon frequencies implied by the “F1x4” or “F3x4” methods (using PAML terminology). These last two options calculate the codon frequencies as the product of the frequencies of the three nucleotides that make up each codon. In the “F1x4” case the nucleotide frequencies are those observed in the dataset across all codon positions, while the “F3x4” option uses the nucleotide frequencies observed in the data at each codon position separately. **Rate Heterogeneity Type** For codon models, the default is to infer a single dN/dS parameter. Alternatively, a model can be specified that infers a given number of dN/dS categories, with the dN/dS values and proportions falling in each category estimated (ratehetmodel = nonsynonymous). This is the 'discrete' or 'M3' model of Yang et al., 2000. **Number of discrete dN/dS categories** When ratehetmodel = nonsynonymous, this is the number of dN/dS parameter categories. **Datatype - codon or codon-aminoacid** **Genetic code** The genetic code to be used in translating codons into amino acids. **Population Settings** **Number of individuals in population** The number of individuals in the population. This may be increased, but doing so is generally not beneficial. Note that typical genetic algorithms tend to have much, much larger population sizes than GARLI defaults. **Unmutated copies of best individual** The number of times the best individual is copied to the next generation with no chance of mutation. It is best not to mess with this setting. **Strength of selection** Controls the strength of selection, with larger numbers denoting stronger selection. The relative probability of reproduction of two individuals depends on the difference in their log likelihoods (ΔlnL) and is formulated very similarly to the procedure of calculating Akaike weights. **Fitness handicap for the best individual** This can be used to bias the probability of reproduction of the best individual downward. Because the best individual is automatically copied into the next generation, it has a bit of an unfair advantage and can cause all population variation to be lost due to genetic drift, especially with small populations sizes. The value specified here is subtracted from the best individual’s lnL score before calculating the probabilities of reproduction. It seems plausible that this might help maintain variation, but I have not seen it cause a measurable effect. **Maximum number of generations to run** Use if automatic termination is desired to prevent a runaway process. **Maximum time to run** The maximum number of seconds for the run to continue. Use if automatic termination is desired to prevent a runaway process. **Branch-length optimization settings** **Minimal optimization precision** The minimum allowed value of the optimization precision - must not be larger then the Starting optimization precision. **Number of steps down from Start Precision to Minimum Precision** Specify the number of steps that it will take for the optimization precision to decrease (linearly) from startoptrec to minoptprec. **Tree rejection threshold** This setting controls which trees have more extensive branch-length optimization applied to them. All trees created by a branch swap receive optimization on a few branches that directly took part in the rearrangement. If the difference in score between the partially optimized tree and the best known tree is greater than treerejectionthreshold, no further optimization is applied to the branches of that tree. Reducing this value can significantly reduce runtimes, often with little or no effect on results. However, it is possible that a better tree could be missed if this is set too low. In cases in which obtaining the very best tree per search is not critical (e.g., bootstrapping), setting this lower (~20) is probably safe. **Settings controlling the proportions of the mutation types** **Weight on topology mutations** The prior weight assigned to the class of topology mutations (NNI, SPR and limSPR). Note that setting this to 0.0 turns off topology mutations, meaning that the tree topology is fixed for the run. This used to be a way to have the program estimate only model parameters and branch-lengths, but the optimizeinputonly setting is now a better way to go. **Weight on model parameter mutations** The prior weight assigned to the class of model mutations. Note that setting this at 0.0 fixes the model during the run. **Weight on branch-length parameter mutations** The prior weight assigned to branch-length mutations. The same procedure used above to determine the proportion of Topology:Model:Branch-Length mutations is also used to determine the relative proportions of the three types of topological mutations (NNI:SPR:limSPR), controlled by the following three weights. Note that the proportion of mutations applied to each of the model parameters is not user controlled. **Weight on NNI topology changes** The prior weight assigned to NNI mutations **Weight on SPR topology changes** The prior weight assigned to random SPR mutations. For very large datasets it is often best to set this to 0.0, as random SPR mutations essentially never result in score increases. **Weight on localized SPR topology changes** The prior weight assigned to SPR mutations with the reconnection branch limited to being a maximum of limsprrange branches away from where the branch was detached. **Interval Length** The number of generations in each interval during which the number and benefit of each mutation type are stored. **Number of intervals to store** The number of intervals to be stored. Thus, records of mutations are kept for the last (intervallength x intervalstostore) generations. Every intervallength generations the probabilities of the mutation types are updated by the scheme described above. **Settings controlling mutation details** **Max range for localized SPR topology changes** The maximum number of branches away from its original location that a branch may be reattached during a limited SPR move. Setting this too high (> 10) can seriously degrade performance, but if you do so in conjunction with a large increase in genthreshfort. **Settings controlling mutation details** The mean of the binomial distribution from which the number of branch lengths mutated is drawn during a branch length mutation. **Magnitude of branch-length mutations** The shape parameter of the gamma distribution (with a mean of 1.0) from which the branch-length multipliers are drawn for branch-length mutations. Larger numbers cause smaller changes in branch lengths. (Note that this has nothing to do with gamma rate heterogeneity.) **Magnitude of model parameter mutations** The shape parameter of the gamma distribution (with a mean of 1.0) from which the model mutation multipliers are drawn for model parameters mutations. Larger numbers cause smaller changes in model parameters. (Note that this has nothing to do with gamma rate heterogeneity.) **Relative weight assigned to already attempted branch swaps** With version 0.95 and later, GARLI keeps track of which branch swaps it has attempted on the current best tree. Because swaps are applied randomly, it is possible that some swaps are tried twice before others are tried at all. This option allows the program to bias the swaps applied toward those that have not yet been attempted. Each swap is assigned a relative weight depending on the number of times that it has been attempted on the current best tree. This weight is equal to (uniqueswapbias) raised to the (# times swap attempted) power. In other words, a value of 0.5 means that swaps that have already been tried once will be half as likely as those not yet attempted, swaps attempted twice will be ¼ as likely, etc. A value of 1.0 means no biasing. Use of this option may allow the use of somewhat larger values of limsprrange. **Relative weight assigned to branch swaps based on locality** This option is similar to uniqueswapbias, except that it biases toward certain swaps based on the topological distance between the initial and rearranged trees. The distance is measured as in the limsprrange, and is half the the Robinson-Foulds distance between the trees. As with uniqueswapbias, distanceswapbias assigns a relative weight to each potential swap. In this case the weight is (distanceswapbias) raised to the (reconnection distance - 1) power. Thus, given a value of 0.5, the weight of an NNI is 1.0, the weight of an SPR with distance 2 is 0.5, with distance 3 is 0.25, etc. Note that values less than 1.0 bias toward more localized swaps, while values greater than 1.0 bias toward more extreme swaps. Also note that this bias is only applied to limSPR rearrangements. Be careful in setting this, as extreme values can have a very large effect. </help> </tool>