AddTip {TreeTools} | R Documentation |
Add a tip to a phylogenetic tree
Description
AddTip()
adds a tip to a phylogenetic tree at a specified location.
Usage
AddTip(
tree,
where = sample.int(tree[["Nnode"]] * 2 + 2L, size = 1) - 1L,
label = "New tip",
edgeLength = 0,
lengthBelow = NULL,
nTip = NTip(tree),
nNode = tree[["Nnode"]],
rootNode = RootNode(tree)
)
AddTipEverywhere(tree, label = "New tip", includeRoot = FALSE)
Arguments
tree |
A tree of class |
where |
The node or tip that should form the sister taxon to the new
node. To add a new tip at the root, use |
label |
Character string providing the label to apply to the new tip. |
edgeLength |
Numeric specifying length of new edge |
lengthBelow |
Numeric specifying length below neighbour at which to
graft new edge. Values greater than the length of the edge will result
in negative edge lengths. If |
nTip , nNode , rootNode |
Optional integer vectors specifying number of tips and
nodes in |
includeRoot |
Logical; if |
Details
AddTip()
extends bind.tree
, which cannot handle
single-taxon trees.
AddTipEverywhere()
adds a tip to each edge in turn.
Value
AddTip()
returns a tree of class phylo
with an additional tip
at the desired location.
AddTipEverywhere()
returns a list of class multiPhylo
containing
the trees produced by adding label
to each edge of tree
in turn.
Author(s)
Martin R. Smith (martin.smith@durham.ac.uk)
See Also
Add one tree to another: bind.tree()
Other tree manipulation:
CollapseNode()
,
ConsensusWithout()
,
DropTip()
,
EnforceOutgroup()
,
ImposeConstraint()
,
KeptPaths()
,
KeptVerts()
,
LeafLabelInterchange()
,
MakeTreeBinary()
,
RenumberTips()
,
RenumberTree()
,
Renumber()
,
RootTree()
,
SortTree()
,
Subtree()
,
TipTimedTree()
,
TrivialTree
Examples
plot(tree <- BalancedTree(10))
ape::nodelabels()
ape::nodelabels(15, 15, bg="green")
plot(AddTip(tree, 15, "NEW_TIP"))
oldPar <- par(mfrow = c(2, 4), mar = rep(0.3, 4), cex = 0.9)
backbone <- BalancedTree(4)
# Treating the position of the root as instructive:
additions <- AddTipEverywhere(backbone, includeRoot = TRUE)
xx <- lapply(additions, plot)
par(mfrow=c(2, 3))
# Don't treat root edges as distinct:
additions <- AddTipEverywhere(backbone, includeRoot = FALSE)
xx <- lapply(additions, plot)
par(oldPar)