RETRACTED ARTICLE: TREEFINDER: a powerful graphical analysis environment for molecular phylogenetics (original) (raw)

Available phylogenetic methods

The phylogenetic analysis procedures currently implemented in TREEFINDER focus mainly on probabilistic and statistical approaches. One important reason for this choice is that these methods consistently provide the most powerful and accurate inferences [2]. The following is a non-exhaustive list of features present in the TREEFINDER version of April 2004.

Substitution models

The program offers the standard set of evolutionary models for nucleotide substitution (GTR and sub-models [57]) and two different models of rate heterogeneity among sites (Gamma [8], different rates for each codon position). All model parameters including the rate heterogeneity and base frequencies can be estimated from the data.

Estimation of branch lengths and absolute rates

Branch lengths estimates are obtained by the method of maximum-likelihood [9], with the optional application of a clock constraint. In addition, absolute evolutionary rates can be assigned to each edge and a corresponding calibration of the tree nodes in time can be obtained using the method of non-parametric rate smoothing [10]. TREEFINDER also allows to plot the resulting rato- and chronograms (see Figure 5).

Figure 5

An example for an inferred chronogram computed by TREEFINDER using non-parametric rate smoothing [10].

TREEFINDER employs a genetic algorithm for the search of the optimal most-likely tree topology [11]. Genetic algorithms are global search procedures, and are, unlike local rearrangement methods, less prone to get trapped in local maxima. The specific details of the genetic algorithm implemented in TREEFINDER are explained in the manual. In addition to exploring the whole tree space, the tree search may also be constrained by a guide tree (a tree whose multifurcations represent the remaining degree of freedom in the search space). To speed up the evaluation of the likelihood for different tree topologies a technique called "likelihood hashing" is employed.

Tree manipulation

The tree viewer build into TREEFINDER allows to open trees in various data formats and provides access to basic rearrangement capabilities, such as re-rooting, midpoint rooting, placing outgroups, and collapsing of small edges. The transformations may also be applied simultaneously to whole sets of trees. More advanced tree manipulation is available through the TL programming interface. For instance, comparison of trees and other expressions is straightforward in TL due to its functional nature.

Simulation of data and trees

A method to simulate sequence data along a specified gene tree and model of nucleotide substitution is implemented [12]. In addition, a simple procedure to generate random bifurcated trees is available. Simulation of trees and data is useful to assess the accuracy of phylogenetic methods and to generate empirical distributions for test statistics [13, 14].

Rate profiles

The computation of rate and mutation profiles [15] along sequence alignments is implemented in TREEFINDER. These plots are useful in the inference of functional regions and in investigating the selective forces acting on DNA sequences.

Other features

The confidence of inferred evolutionary relationships may be assessed by bootstrap analysis [16]. Corresponding routines for computing consensus trees [17] with the option to count and output the distinct topologies in the set of samples are available. Further TL procedures include checks for compositional bias in the data and functions for reading, writing and manipulating sequence alignments.

User interface and TL language

A major design goal of TREEFINDER is to provide both a simple and easy-to-use graphical user interface as well as a corresponding powerful programming language for phylogenetic analysis.

Figures 1,2,3,4 give an impression of the graphical user interface for typical standard tasks: tree viewing (Figure 1), editing alignments (Figure 2), reconstructing trees (Figure 3), and the TL shell to enter commands (Figure 4). Examples for the inference of a chronogram [10] and the plot of a rate pro-file [15] are shown in Figures 5 and 6. Most GUI interface elements will be self-explanatory, but a detailed description of each button etc. is available in the TREEFINDER manual.

Figure 6

An example for a rate profile, i.e. relative evolutionary rates along an alignment as computed by TREEFINDER.

All analyzes can be done also on the command line or script level. For instance, to reconstruct a phylogenetic tree from a sequence alignment contained in some "file" one enters the following simple command:

ReconstructPhylogeny ["file",

SubstitutionModel->"HKY"].

In this case, "SubstitutionModel" is a named optional argument (that takes a default value and hence need not to be specified) whereas "file" is a required positional argument.

A noteworthy detail about TL is that a programmer can choose at any time between functional and stack-orientated calls. The stack-orientated form of the above command is:

"file",

SubstitutionModel->"HKY",

ReconstructPhylogeny

A phylogenetic tree in TL is an object of the form

{{"a",{"b","c"}},"d",{"e","f"}}

and with edge lengths

(*) {{"a":0.15,{"b":0.1,"c":0.1}

:0.001}:0.1, "d":0.2,

{"e":0.1,"f":0.1}:0.001}.

The structure of the nested list represent the topology, as in the familiar NEWICK bracket notation for phylogenetic trees. However, the above examples are not merely a data format to store tree information in files. They are genuine TL expressions, and as such may be subjected to further transformations. For instance, if you have a "treelist" variable with value

{tree1, tree2, tree3, tree4}

one easily computes the corresponding strict consensus tree via the simple command

ConsensusTree [treelist, Strict -> True].

One of TL's most advanced features is rule-based data transformation. Given a variable 'tree' containing a tree with edge lengths, it requires less than one line of code to collapse the short edges into multi-furcations:

tree=|{{__b}:_e->__b/?_e<0.01}

will transform the above example (*) into

{{"a":0.15,"b":0.1,"c":0.1}:0.1,

"d":0.2,"e":0.1,"f":0.1}.

Furthermore, TL internally applies rule-based transformations also to algebraic expressions, e.g.,

a+a+b

will be simplified to

b+2*a.

This pattern matching property is heavily relied on in TREEFINDER's internal TL kernel routines, but it may also prove useful for writing extension.

These are only some illustrative examples of TL programming. Further code examples can be found in the TL documentation and in the 'Kernel' directory of the TREEFINDER distribution.

Relative speed and accuracy

The algorithms implemented in TREEFINDER have been tested and cross-compared with those of other likelihood-based phylogeny softwares, such as PAUP* [3], PHYLIP [18], fastDNAml [19], and TREE-PUZZLE [20].

Specifically, we conducted a simulation study to investigate the computation time, the accuracy (=probability to recover the exact true tree topology), and the expected dissimilarity of true and inferred tree [21] for several widely used programs and TREEFINDER. Varying the number of taxa between 4–60 we generated a set of random trees. Subsequently, sequence data of length 1,000 nucleotides were artificially evolved along these trees. The resulting alignments were then used to infer the original trees by the using TREEFINDER (version of April 2004), PAUP* (version 4b10), TREE-PUZZLE (version 5.1) and fastDNAml (version 1.2.2). For each tree size (4–60 leafs) this procedure was repeated 100 times to assess the average relative performance of each program.

The results from our simulations are summarized in Figure 7. Essentially, it turns out that the accuracy of TREEFINDER with regard to correctly inferring tree topologies and estimating branch lengths is comparable to that of other likelihood programs such as PAUP* and fastDNAML that are often used as "gold standards". However, in terms of speed the TREEFINDER program drastically outperformed all investigated programs, in particular for large trees containing more than 30 sequences.

Figure 7

Comparison of computation times, accuracy and performance of three widely-used likelihood tree reconstruction programs with TREEFINDER.

Future work

The TREEFINDER environment, while being an versatile analysis framework already in the present version, has many options for further enhancement. This includes, most importantly, substitution models for amino acids, e.g., the classic Dayhoff model [22] or the more recent WAG model [23]. Other desirable directions for extension are the implementation of modern population genetic methods, such as tools for coalescent simulation and estimation of demographic parameters [24]. These, and other procedures, are scheduled for inclusions in future releases of TREEFINDER.