Learn R Programming

ape (version 5.8)

all.equal.phylo: Global Comparison of two Phylogenies

Description

This function makes a global comparison of two phylogenetic trees.

Usage

# S3 method for phylo
all.equal(target, current, use.edge.length = TRUE,
                   use.tip.label = TRUE, index.return = FALSE,
                   tolerance = .Machine$double.eps ^ 0.5,
                   scale = NULL, ...)

Value

A logical value, or a two-column matrix.

Arguments

target

an object of class "phylo".

current

an object of class "phylo".

use.edge.length

if FALSE only the topologies are compared; the default is TRUE.

use.tip.label

if FALSE the unlabelled trees are compared; the default is TRUE.

index.return

if TRUE the function returns a two-column matrix giving the correspondence between the nodes of both trees.

tolerance

the numeric tolerance used to compare the branch lengths.

scale

a positive number, comparison of branch lengths is made after scaling (i.e., dividing) them by this number.

...

further arguments passed to or from other methods.

Author

Benoît Durand b.durand@alfort.AFSSA.FR

Details

This function is meant to be an adaptation of the generic function all.equal for the comparison of phylogenetic trees.

A single phylogenetic tree may have several representations in the Newick format and in the "phylo" class of objects used in `ape'. One aim of the present function is to be able to identify whether two objects of class "phylo" represent the same phylogeny.

See Also

all.equal for the generic R function, comparePhylo

Examples

Run this code
### maybe the simplest example of two representations
### for the same rooted tree...:
t1 <- read.tree(text = "(a:1,b:1);")
t2 <- read.tree(text = "(b:1,a:1);")
all.equal(t1, t2)
### ... compare with this:
identical(t1, t2)
### one just slightly more complicated...:
t3 <- read.tree(text = "((a:1,b:1):1,c:2);")
t4 <- read.tree(text = "(c:2,(a:1,b:1):1);")
all.equal(t3, t4) # == all.equal.phylo(t3, t4)
### ... here we force the comparison as lists:
all.equal.list(t3, t4)

Run the code above in your browser using DataLab