## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 2.4, fig.align = "center") ## ----load, message = FALSE---------------------------------------------------- # Load packages with: library("ConsTree") library("TreeTools", quietly = TRUE) ## ----exemplar----------------------------------------------------------------- trees <- ape::read.tree(text = c( "((((((t1,t3),t2),t4),(t5,t6)),t7),(t8,t9));", "((((((t1,t3),(t5,t6)),t4),t2),t7),(t8,t9));", "((((((t1,t2),t3),t4),(t5,t6)),t7),(t8,t9));", "(((((t1,(t2,t3)),(t5,t6)),t4),t7),(t8,t9));", "((((((t1,t2),t3),t4),(t7,(t5,t6))),t9),t8);", "((((((t1,t3),t2),(t5,t6)),t4),t7),(t8,t9));", "((((t1,((t2,t3),(t5,t6))),t4),(t8,t9)),t7);")) ## ----palette------------------------------------------------------------------ # Colour leaf labels consistently nTip <- 9 leafCol <- setNames(hcl.colors(nTip + 1), TipLabels(nTip + 1)) plotCons <- function(tree, main = "") { plot(tree, tip.color = leafCol[tree$tip.label], main = main, font = 2, cex = 1, edge.width = 1.5) } ## ----plot-inputs, fig.height = 4.6-------------------------------------------- oldPar <- par(mfrow = c(2, 4), mar = c(0.5, 0.5, 1.5, 0.5)) for (i in seq_along(trees)) plotCons(trees[[i]], main = paste("Tree", i)) par(oldPar) ## ----plot-gradient, fig.height = 5-------------------------------------------- oldPar <- par(mfrow = c(2, 2), mar = c(0.5, 0.5, 1.5, 0.5)) plotCons(Strict(trees), "Strict") plotCons(Majority(trees), "Majority-rule") plotCons(Frequency(trees), "Frequency difference") plotCons(Greedy(trees), "Greedy (extended majority)") par(oldPar) ## ----resolution--------------------------------------------------------------- data.frame( method = c("Strict", "Majority", "Frequency", "Greedy"), splits = c(NSplits(Strict(trees)), NSplits(Majority(trees)), NSplits(Frequency(trees)), NSplits(Greedy(trees))) ) ## ----rooted------------------------------------------------------------------- rTrees <- ape::read.tree(text = c( "((((t1,t2),t3),(((t5,t6),t4),t7)),t8);", "(((((t1,t2),t3),(t5,(t6,t4))),t7),t8);", "(((((t1,t2),t3),((t5,t4),t6)),t7),t8);", "((((((t1,t2),t4),(t5,t6)),t3),t7),t8);", "((((((t1,t2),t3),t4),(t5,t6)),t7),t8);", "(((((t1,t2),t4),(t3,(t5,t6))),t7),t8);")) ## ----plot-rooted-in, fig.height = 4.6----------------------------------------- oldPar <- par(mfrow = c(2, 3), mar = c(0.5, 0.5, 1.5, 0.5)) for (i in seq_along(rTrees)) plotCons(rTrees[[i]], main = paste("Tree", i)) par(oldPar) ## ----plot-rooted-out, fig.height = 5------------------------------------------ oldPar <- par(mfrow = c(2, 2), mar = c(0.5, 0.5, 1.5, 0.5)) plotCons(Strict(rTrees), "Strict") plotCons(Adams(rTrees), "Adams") plotCons(RStar(rTrees), "RStar") plotCons(Local(rTrees), "Local") par(oldPar) ## ----rooted-splits------------------------------------------------------------ data.frame( method = c("Strict", "Adams", "RStar", "Local"), splits = c(NSplits(Strict(rTrees)), NSplits(Adams(rTrees)), NSplits(RStar(rTrees)), NSplits(Local(rTrees))) ) ## ----quartet------------------------------------------------------------------ c(majority = NSplits(Majority(trees)), quartet = NSplits(Quartet(trees))) ## ----branch-length, fig.height = 4.6------------------------------------------ blTrees <- ape::read.tree(text = c( "(((t1:0.64,t2:0.84):0.52,(t3:0.84,t4:0.87):0.42):0.46,(t5:0.68,t6:0.34):0.70,t7:0.42);", "(((t1:0.64,t2:0.40):0.72,(t3:0.87,t4:0.38):0.87):0.41,(t5:0.58,t6:0.63):0.80,t7:0.63);", "(((t1:0.53,t2:0.50):0.78,(t3:0.66,t4:0.37):0.66):0.40,(t5:0.65,t6:0.68):0.48,t7:0.61);", "(((t1:0.48,t2:0.47):0.31,(t3:0.46,t4:0.73):0.79):0.65,(t5:0.87,t6:0.34):0.84,t7:0.75);", "(((t1:0.85,t2:0.47):0.71,(t4:0.72,(t5:0.78,t6:0.87):0.62):0.36):0.42,t3:0.37,t7:0.46);")) meanTree <- BHVMean(blTrees) oldPar <- par(mfrow = c(2, 3), mar = c(0.5, 0.5, 1.5, 0.5)) for (i in seq_along(blTrees)) plotCons(blTrees[[i]], main = paste("Tree", i)) plotCons(meanTree, main = "BHV mean") par(oldPar) ## ----bhv-variance------------------------------------------------------------- BHVVariance(blTrees, mean = meanTree)