| bind.tree {ape} | R Documentation |
This function binds together two phylogenetic trees to give a single
object of class "phylo".
bind.tree(x, y, where = "root", position = 0)
x |
an object of class "phylo". |
y |
an object of class "phylo". |
where |
an) integer giving the number of the node or tip of the
tree x where the tree y is binded ("root" is a
short-cut for the root). |
position |
a numeric value giving the position from the tip or
node given by node where the tree y is binded;
negative values are ignored. |
The argument x can be seen as the receptor tree, whereas
y is the donor tree. The root of y is then sticked on a
location of x specified by where and, possibly,
position. If y has a root edge, this is added as in
internal branch in the resulting tree.
an object of class "phylo".
For the moment, this function handles only trees with branch lengths, and does not handle node labels.
Further testing/improvements may be needed.
Emmanuel Paradis Emmanuel.Paradis@mpl.ird.fr
### binds the two clades of bird orders
cat("((Struthioniformes:21.8,Tinamiformes:21.8):4.1,",
"((Craciformes:21.6,Galliformes:21.6):1.3,Anseriformes:22.9):3.0):2.1;",
file = "ex1.tre", sep = "\n")
cat("(Turniciformes:27.0,(Piciformes:26.3,((Galbuliformes:24.4,",
"((Bucerotiformes:20.8,Upupiformes:20.8):2.6,",
"(Trogoniformes:22.1,Coraciiformes:22.1):1.3):1.0):0.6,",
"(Coliiformes:24.5,(Cuculiformes:23.7,(Psittaciformes:23.1,",
"(((Apodiformes:21.3,Trochiliformes:21.3):0.6,",
"(Musophagiformes:20.4,Strigiformes:20.4):1.5):0.6,",
"((Columbiformes:20.8,(Gruiformes:20.1,Ciconiiformes:20.1):0.7):0.8,",
"Passeriformes:21.6):0.9):0.6):0.6):0.8):0.5):1.3):0.7):1.0;",
file = "ex2.tre", sep = "\n")
tree.bird1 <- read.tree("ex1.tre")
tree.bird2 <- read.tree("ex2.tre")
unlink(c("ex1.tre", "ex2.tre")) # clean-up
birds <- bind.tree(tree.bird1, tree.bird2, where = "root",
position = tree.bird1$root.edge)
birds
layout(matrix(c(1, 2, 3, 3), 2, 2))
plot(tree.bird1)
plot(tree.bird2)
plot(birds)
layout(matrix(1))