Learn R Programming

ape (version 5.1)

makeNodeLabel: Makes Node Labels

Description

This function makes node labels in a tree in a flexible way.

Usage

makeNodeLabel(phy, method = "number", prefix = "Node", nodeList = list(), ...)

Arguments

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.

Value

an object of class "phylo".

Details

The three methods are described below:

  • ``number''The labels are created with 1, 2, … prefixed with the argument prefix; thus the default is to have Node1, Node2, … Set prefix = "" to have only numbers.

  • ``md5sum''For each node, the labels of the tips descendant from this node are extracted, sorted alphabetically, and written into a temporary file, then the md5sum of this file is extracted and used as label. This results in a 32-character string which is unique (even accross trees) for a given set of tip labels.

  • ``user''the argument 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.

See Also

makeLabel, grep, mixedFontLabel, label2table

Examples

Run this code
# NOT RUN {
tr <-
"((Pan_paniscus,Pan_troglodytes),((Homo_sapiens,Homo_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)
# }

Run the code above in your browser using DataLab