
This function compares two phylogenetic trees, rooted or unrooted, and returns a detailed report of this comparison.
comparePhylo(x, y, plot = FALSE, force.rooted = FALSE,
use.edge.length = FALSE)
# S3 method for comparePhylo
print(x, ...)
two objects of class "phylo"
.
a logical value. If TRUE
, the two trees are plotted
on the same device and their similarities are shown.
a logical value. If TRUE
, the trees are
considered rooted even if is.rooted
returns FALSE
.
a logical value passed to
plot.phylo
(see below).
unused.
an object of class "comparePhylo"
which is a list with messages
from the comparison and, optionally, tables comparing branching times.
In all cases, the numbers of tips and of nodes and the tip labels are compared.
If both trees are rooted, or if force.rooted = TRUE
, the clade
compositions of each tree are compared. If both trees are also
ultrametric, their branching times are compared.
If both trees are unrooted and have the same number of nodes, the bipartitions (aka splits) are compared.
If plot = TRUE
, the edge lengths are not used by default
because in some situations with unrooted trees, some splits might not
be visible if the corresponding internal edge length is very short. To
use edge lengths, set use.edge.length = TRUE
.
# NOT RUN {
## two unrooted trees but force comparison as rooted:
a <- read.tree(text = "(a,b,(c,d));")
b <- read.tree(text = "(a,c,(b,d));")
comparePhylo(a, b, plot = TRUE, force.rooted = TRUE)
## two random unrooted trees:
c <- rtree(5, rooted = FALSE)
d <- rtree(5, rooted = FALSE)
comparePhylo(c, d, plot = TRUE)
# }
Run the code above in your browser using DataLab