View source: R/utilities-phylo.R
| nodelabel.phylo | R Documentation | 
working with systematic reference tables and phylogenies
nodelabel.phylo(phy, taxonomy, strict=TRUE, ncores=NULL) phylo.lookup(taxonomy, ncores=NULL) lookup.phylo(phy, taxonomy = NULL, clades = NULL, ncores=NULL) phylo.clades(clades, phy=NULL, unplaced=TRUE, ncores=NULL) glomogram.phylo(phy, subtrees)
| phy | a phylogenetic tree of class 'phylo' ('multiPhylo' in  | 
| taxonomy | a linkage table (of class  | 
| clades | a named list of clade definitions (i.e., spanning taxa; see Examples); spanning taxa may invoke other definitions found within the  | 
| unplaced | whether to use 'unplaced' taxa if given as an element in  | 
| subtrees | a list of trees to be grafted into  | 
| strict | whether to enforce strict labeling of nodes or allow liberal estimates of the best location of a given nodelabel | 
| ncores | the maximum number of cores to be used | 
nodelabel.phylo provides a function (as part of the phylo object returned) to resolve the hash key and node identifier for a label found in taxonomy. 
This function is the FUN element of the returned object. If the taxonomic label cannot be properly placed in the tree (i.e., no subtree is found that is absolutely 
consistent with the supplied taxonomy, the nearest matching node(s) will be returned when invoking FUN).   
phylo.lookup converts a taxonomy into a phylogenetic tree. 
lookup.phylo converts a phylogenetic tree (phy) into a linkage table based on nodelabels associated with phy, which can be supplemented with a taxonomy and (or) 
clades object.   
phylo.clades returns a series of phylogenetic subtrees based on clade definitions found in the clades object.  Definitions can be handles that are recursive (see Examples).
JM Eastman
## Not run: 
sal=get(data(caudata))
print(head(sal$tax))
## TREE from TABLE: phylo.lookup()
tax=cbind(sal$tax[,c("subfamily", "family", "suborder")], order="Caudata")
tphy=phylo.lookup(tax, ncores=2)
print(tphy)
head(tphy$node.label)
## TABLE from TREE: lookup.phylo()
tax=sal$tax[,c("genus", "family")]
cld=list(
	Sirenoidea=c("Siren", "Pseudobranchus"), 
	Salamandroidea=c("Ambystomatidae", "Plethodontidae"), 
	Cryptobranchoidea=c("Hynobius_naevius", "Cryptobranchus_alleganiensis"),
	CAUDATA=c("Sirenoidea","Salamandroidea","Cryptobranchoidea")
)
lkp=lookup.phylo(sal$phy, taxonomy=tax, clades=cld, ncores=2)
print(lkp)
nphy=nodelabel.phylo(sal$phy, lkp, ncores=2)
dev.new()
plot.phylo(ladderize(nphy,right=FALSE), cex=0.35, 
type="fan", label.offset=2.5, no.margin=TRUE, edge.color="gray", edge.width=0.5)
nodelabels(nphy$node.label, cex=0.45, col="red", frame="n")
## CLADES to TREE: phylo.clades()
fmrca=geiger:::.mrca
salamandroidea=extract.clade(nphy, fmrca(c("Ambystomatidae", "Plethodontidae"), nphy))
cryptobranchoidea=extract.clade(nphy, fmrca(c("Cryptobranchidae", "Hynobiidae"), nphy))
siren=extract.clade(nphy, fmrca(c("Siren_lacertina", "Siren_intermedia"), nphy))
clades=list(
			 Sirenoidea=c("Siren", "Pseudobranchus"), 
			 Caudata=c("Sirenoidea","Salamandroidea","Cryptobranchoidea"),
			 AMPHIBIA=c("Caudata","Anura","Gymnophiona")
)
phy=list(Cryptobranchoidea=cryptobranchoidea, Salamandroidea=salamandroidea, Siren=siren)
class(phy)="multiPhylo"
res=phylo.clades(clades, phy, ncores=2)
amph=nodelabel.phylo(res$AMPHIBIA, lkp, ncores=2)
print(amph$FUN("Salamandroidea"))
dev.new()
plot(ladderize(amph, right=FALSE), cex=0.2, label.offset=0.05)
nodelabels(amph$node.label, cex=0.35, col="red", frame="n")
## GLOMOGRAM
sirenidae=extract.clade(nphy, fmrca(c("Siren_lacertina", "Pseudobranchus_axanthus"), nphy))
ambystomatidae=extract.clade(nphy, fmrca(c("Ambystoma_gracile", "Ambystoma_texanum"), nphy))
trees=list(
	Cryptobranchoidea=cryptobranchoidea,
	Sirenidae=sirenidae,
	Ambystomatidae=ambystomatidae
)
class(trees)="multiPhylo"
fam=sal$fam
ftax=unique(sal$tax[,c("family", "suborder")])
rownames(ftax)=unname(ftax[,"family"])
fam=nodelabel.phylo(fam, ftax, ncores=2)
fam$FUN("Salamandroidea")
res=glomogram.phylo(fam, trees)
dev.new()
zz=match(res$tip.label, fam$tip.label)
cc=integer(length(zz))
cc[!is.na(zz)]=1
plot(ladderize(res, right=FALSE), cex=1, label.offset=5, tip.color=ifelse(cc==1, "red", "black"))
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.