makeNodeLabel {ape} | R Documentation |
This function makes node labels in a tree in a flexible way.
makeNodeLabel(phy, method = "number", prefix = "Node", nodeList = list(), ...)
phy |
an object of class "phylo" . |
method |
a character string giving the method used to create the
labels. Three choices are possible: "number" (the default),
"md5sum" , and "user" , or any unambiguous abbreviation
of these. |
prefix |
the prefix used if method = "number" . |
nodeList |
a named list specifying how nodes are names if
method = "user" (see details and examples). |
... |
further arguments passed to grep . |
The three methods are described below:
prefix
; thus the default is to have
Node1, Node2, ... Set prefix = ""
to have only numbers.nodeList
must be a list with
names, the latter will be used as node labels. For each element of
nodeList
, the tip labels of the tree are searched for
patterns present in this element: this is done using
grep
. Then the most recent common ancestor of
the matching tips is given the corresponding names as labels. This
is repeated for each element of nodeList
.
The method "user"
can be used in combination with either of the
two others (see examples). Note that this method only modifies the
specified node labels (so that if the other nodes have already labels
they are not modified) while the two others change all labels.
Emmanuel Paradis Emmanuel.Paradis@mpl.ird.fr
tr <- "((Pan_paniscus,Pan_troglodytes),((Homo_sapiens,Hom_erectus),Homo_abilis));" tr <- read.tree(text = tr) tr <- makeNodeLabel(tr, "u", nodeList = list(Pan = "Pan", Homo = "Homo")) plot(tr, show.node.label = TRUE) ### does not erase the previous node labels: tr <- makeNodeLabel(tr, "u", nodeList = list(Hominid = c("Pan","Homo"))) plot(tr, show.node.label = TRUE) ### the two previous commands could be combined: L <- list(Pan = "Pan", Homo = "Homo", Hominid = c("Pan","Homo")) tr <- makeNodeLabel(tr, "u", nodeList = L) ### combining different methods: tr <- makeNodeLabel(tr, c("n", "u"), prefix = "#", nodeList = list(Hominid = c("Pan","Homo"))) plot(tr, show.node.label = TRUE)