bind.tree {ape}R Documentation

Binds Trees

Description

This function binds together two phylogenetic trees to give a single object of class "phylo".

Usage

bind.tree(x, y, where = "root", position = 0)

Arguments

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.

Details

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.

Value

an object of class "phylo".

Note

For the moment, this function handles only trees with branch lengths, and does not handle node labels.

Further testing/improvements may be needed.

Author(s)

Emmanuel Paradis Emmanuel.Paradis@mpl.ird.fr

See Also

drop.tip, root

Examples

### 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))

[Package ape version 2.3 Index]