Fast addition of tips and clades on an existing tree
The function attaches new tips and/or clades derived from a source phylogeny to a pre-existing backbone tree.
tree.merger(backbone,data,source.tree=NULL,tip.ages = NULL, node.ages = NULL,min.branch=NULL,plot=TRUE,filename=NULL)
backbone |
the backbone tree to attach tips/clades on. |
data |
a dataset including as columns:
See details for further explanations. |
source.tree |
the tree where 'bind' clades are to be extracted from. If no clade has to be attached, it can be left unspecified. |
tip.ages |
as in |
node.ages |
as in |
min.branch |
as in |
plot |
if |
filename |
if |
The function attaches tips and/or clades from the source
tree
to the backbone
tree according to the data
object. Within the
latter, a clade, either to be binded or to be the reference, must be
indicated by collating the names of the two phylogenetically furthest tips
belonging to it, separated by a "-". Duplicated 'bind' produce error.
Tips/clades set to be attached to the same 'reference' are considered to
represent a polytomy. Tips set as 'bind' which are already on the backbone
tree are removed from the latter and placed according to the 'reference'.
See examples and vignette for
clarifications.
Merged phylogenetic tree.
Silvia Castiglione, Carmela Serio, Pasquale Raia
aaa
## Not run: require(ape) require(geiger) DataCetaceans$treecet->tree data.frame(bind=c("Balaena_mysticetus-Caperea_marginata", "Aetiocetus_weltoni", "Saghacetus_osiris", "Zygorhiza_kochii", "Ambulocetus_natans", "Kentriodon_pernix", "Kentriodon_schneideri", "Kentriodon_obscurus", "Tursiops_truncatus-Delphinus_delphis", "Kogia_sima", "Grampus_griseus"), reference=c("Fucaia_buelli-Aetiocetus_weltoni", "Aetiocetus_cotylalveus", "Fucaia_buelli-Tursiops_truncatus", "Saghacetus_osiris-Fucaia_buelli", "Dalanistes_ahmedi-Fucaia_buelli", "Kentriodon_schneideri", "Phocoena_phocoena-Delphinus_delphis", "Kentriodon_schneideri", "Stenella_attenuata-Stenella_longirostris", "Kogia_breviceps", "Globicephala_melas-Pseudorca_crassidens"), poly=c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE))->dato c(Aetiocetus_weltoni=28.0, Saghacetus_osiris=33.9, Zygorhiza_kochii=34.0, Ambulocetus_natans=40.4, Kentriodon_pernix=15.9, Kentriodon_schneideri=11.61, Kentriodon_obscurus=13.65)->tip.ages c("Ambulocetus_natans-Fucaia_buelli"=52.6, "Balaena_mysticetus-Caperea_marginata"=21.5)->node.ages # remove some tips from the original tree and create a source tree drop.tip(tree,c(names(tip.ages), tips(tree,131)[-which(tips(tree,131)%in% c("Caperea_marginata","Eubalaena_australis"))], tips(tree,195)[-which(tips(tree,195)=="Tursiops_aduncus")]))->backtree drop.tip(tree,which(!tree$tip.label%in%c(names(tip.ages), tips(tree,131), tips(tree,195))))->sourcetree plot(backtree,cex=.6) plot(sourcetree,cex=.6) tree.merger(backbone=backtree,data=dato,source.tree=sourcetree, tip.ages=tip.ages,node.ages = node.ages, plot=TRUE)->treeM ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.