TreeTools (version 1.10.0)

Neworder: Reorder edges of a phylogenetic tree

Description

Wrappers for the C functions called by ape::reorder.phylo. These call the C functions directly, so are faster -- but don't perform as many checks on user input. Bad input could crash R.

Usage

NeworderPruningwise(nTip, nNode, parent, child, nEdge)

NeworderPhylo(nTip, parent, child, nEdge, whichwise)

Value

NeworderPruningwise returns an integer vector specifying the pruningwise order of edges within a tree.

NeworderPhylo returns an integer vector specifying the order of edges under the ordering sequence specified by whichwise.

Arguments

nTip, nNode, nEdge

Integer specifying the number of tips, nodes and edges in the input tree.

parent

Integer vector corresponding to the first column of the edge matrix of a tree of class phylo, i.e. tree[["edge"]][, 1]

child

Integer vector corresponding to the second column of the edge matrix of a tree of class phylo, i.e. tree[["edge"]][, 2].

whichwise

Integer specifying whether to order edges (1) cladewise; or (2) in postorder.

Author

  • C algorithm: Emmanuel Paradis

  • R wrapper: Martin R. Smith

See Also

Other C wrappers: RenumberTree()

Examples

Run this code
nTip <- 8L
tree <- BalancedTree(nTip)
edge <- tree[["edge"]]
pruningwise <- NeworderPruningwise(nTip, tree$Nnode, edge[, 1], edge[, 2],
                                   dim(edge)[1])
cladewise <- NeworderPhylo(nTip, edge[, 1], edge[, 2], dim(edge)[1], 1L)
postorder <- NeworderPhylo(nTip, edge[, 1], edge[, 2], dim(edge)[1], 2L)

tree[["edge"]] <- tree[["edge"]][pruningwise, ]

Run the code above in your browser using DataLab