as.phylo {ape} | R Documentation |
Conversion Among Tree and Network Objects
Description
as.phylo
is a generic function which converts an object into a
tree of class "phylo"
. There are currently two methods for
objects of class "hclust"
and of class "phylog"
(implemented in the package ade4). The default method is for any
object inheriting the class "phylo"
which is returned unchanged.
as.hclust.phylo
is a method of the generic
as.hclust
which converts an object of class
"phylo"
into one of class "hclust"
. This can used to
convert an object of class "phylo"
into one of class
"dendrogram"
(see examples).
as.network
and as.igraph
convert trees of class
"phylo"
into these respective classes defined in the packages
of the same names (where the generics are defined).
old2new.phylo
and new2old.phylo
are utility functions
for converting between the old and new coding of the class
"phylo"
.
Usage
as.phylo(x, ...)
## Default S3 method:
as.phylo(x, ...)
## S3 method for class 'hclust'
as.phylo(x, ...)
## S3 method for class 'phylog'
as.phylo(x, ...)
## S3 method for class 'phylo'
as.hclust(x, ...)
old2new.phylo(phy)
new2old.phylo(phy)
## S3 method for class 'phylo'
as.network(x, directed = is.rooted(x), ...)
## S3 method for class 'phylo'
as.igraph(x, directed = is.rooted(x), use.labels = TRUE, ...)
Arguments
x |
an object to be converted into another class. |
directed |
a logical value: should the network be directed? By default, this depends on whether the tree is rooted or not. |
use.labels |
a logical specifying whether to use labels to build
the network of class |
... |
further arguments to be passed to or from other methods. |
phy |
an object of class |
Value
An object of class "hclust"
, "phylo"
, "network"
,
or "igraph"
.
Note
In an object of class "hclust"
, the height
gives the
distance between the two sets that are being agglomerated. So these
distances are divided by two when setting the branch lengths of a
phylogenetic tree.
Author(s)
Emmanuel Paradis
See Also
hclust
, as.hclust
,
dendrogram
, as.phylo.formula
Examples
data(bird.orders)
hc <- as.hclust(bird.orders)
tr <- as.phylo(hc)
all.equal(bird.orders, tr) # TRUE
### shows the three plots for tree objects:
dend <- as.dendrogram(hc)
layout(matrix(c(1:3, 3), 2, 2))
plot(bird.orders, font = 1)
plot(hc)
par(mar = c(8, 0, 0, 0)) # leave space for the labels
plot(dend)
### how to get identical plots with
### plot.phylo and plot.dendrogram:
layout(matrix(1:2, 2, 1))
plot(bird.orders, font = 1, no.margin = TRUE, label.offset = 0.4)
par(mar = c(0, 0, 0, 8))
plot(dend, horiz = TRUE)
layout(1)
## Not run:
### convert into networks:
if (require(network)) {
x <- as.network(rtree(10))
print(x)
plot(x, vertex.cex = 1:4)
plot(x, displaylabels = TRUE)
}
tr <- rtree(5)
if (require(igraph)) {
print((x <- as.igraph(tr)))
plot(x)
print(as.igraph(tr, TRUE, FALSE))
print(as.igraph(tr, FALSE, FALSE))
}
## End(Not run)