The function rotateNodes
is a simple wrapper for rotate
which rotates a set of nodes or all nodes.
The function rotate.multi
finds all possible rotations around a multifurcating node, given by node
. This will be an object of class "multiPhylo"
, assuming that the node specified is indeed a multifurcation.
The function allRotations
computes all possible rotated trees for a given input phylogeny. For a binary tree, this is generally two raised to the power of the number of internal nodes (so a very large number, if N is even modest in size).
rotateNodes(tree, nodes, polytom=c(1,2), ...)
rotate.multi(tree, node)
allRotations(tree)
object of class "phylo"
.
either a single node number to rotate, a vector of node numbers, or the string "all"
.
a vector of mode numeric and length two specifying the two clades that should be exchanged in a polytomy (see rotate
).
a single node to rotate (in the case of rotate.multi
).
optional arguments.
An object of class "phylo"
(i.e., a phylogenetic tree), in the case of rotateNodes
, or an object of class "multiPhylo"
for rotate.multi
or allRotations
.
All three functions also address the problem that the product of multiple rotations from rotate
can be non-compliant with the implicit "phylo"
standard because the tip numbers in tree$edge
are not in numerical order 1:n
for n
tips.
Revell, L. J. (2012) phytools: An R package for phylogenetic comparative biology (and other things). Methods Ecol. Evol., 3, 217-223.