--- title: "Node support efficacy in Congreve & Lamsdell matrices" author: "Martin R. Smith " date: "`r Sys.Date()`" output: bookdown::pdf_document2: toc: yes includes: in_header: ../inst/preamble.tex html_document: default: yes bibliography: ../inst/REFERENCES.bib csl: https://raw.githubusercontent.com/citation-style-language/styles/master/dependent/biology-letters.csl link-citations: yes github-repo: ms609/CongreveLamsdell2016 vignette: > %\VignetteIndexEntry{Results: Node supports} %\VignetteEncoding{UTF-8} %\VignetteEngine{knitr::rmarkdown} --- This page depicts the analytical results of all 100 matrices generated by Congreve & Lamsdell [-@Congreve2016] using a ternary plotting approach [@Smith2019], with quartets and partitions used as distance metrics. The most highly resolved tree is progressively reduced by collapsing nodes with a support value below an increasing threshold. ```{r initialize, echo=FALSE, message=FALSE} library("Ternary") library("CongreveLamsdell2016") data('clBremPartitions', 'clBremQuartets', 'clMkvPartitions', 'clMkvQuartets', 'clBootFreqPartitions', 'clBootFreqQuartets', 'clBootGcPartitions', 'clBootGcQuartets', 'clJackFreqPartitions', 'clJackFreqQuartets', 'clJackGcPartitions', 'clJackGcQuartets', 'clCI') ``` ```{r initialize-variables, echo=FALSE} PCH_MK <- 1 # circle PCH_EQ <- 61 #'=' PCH_XX <- 18 # 183 #'.' is invalid in some locales PCH_IW <- 2 #triup PCH_IC <- 17 #triupfilled TREE <- 2 COL <- c( 'mk' = paste0(cbPalette8[4], '99'), 'eq' = paste0(cbPalette8[8], '99'), 'k1' = paste0(cbPalette8[6], '42'), 'k2' = paste0(cbPalette8[6], '42'), 'k3' = paste0(cbPalette8[6], '42'), 'k5' = paste0(cbPalette8[6], '42'), 'kX' = paste0(cbPalette8[6], '99'), 'kC' = paste0(cbPalette8[2], '99')) PCH <- c( brem = 2, bootG = 0, bootF = 5, jackG = 3, jackF = 4, mk = 1 ) MARGINS <- c(2.8, 0.3, 0.3, 0.3) ROWS <- c(2, 3) TernaryQuarts <- function(TREE=TREE, an='eq', zoom=1, padding=0.1) { clInitializeTernaryQuarts(zoom=zoom, padding=padding) clPlotQuartets(pch=PCH['brem'] , cex=2, clBremQuartets[an], TREE) clPlotQuartets(pch=PCH['bootF'], cex=2, clBootFreqQuartets[an], TREE) clPlotQuartets(pch=PCH['bootG'], cex=2, clBootGcQuartets[an], TREE) clPlotQuartets(pch=PCH['jackF'], cex=2, clJackFreqQuartets[an], TREE) clPlotQuartets(pch=PCH['jackG'], cex=2, clJackGcQuartets[an], TREE) clPlotQuartets(pch=PCH['mk'], clMkvQuartets, TREE, cex=2, col=COL['mk']) # Return: invisible() } TernaryAllQuarts <- function(an='eq', zoom=1, padding=0.1) { clInitializeTernaryQuarts(zoom=zoom, padding=padding) clPlotTheseAverageQuartets(pch=PCH['brem'] , cex=2, col=COL[an], clBremQuartets[[an]]) clPlotTheseAverageQuartets(pch=PCH['bootF'], cex=2, col=COL[an], clBootFreqQuartets[[an]]) clPlotTheseAverageQuartets(pch=PCH['bootG'], cex=2, col=COL[an], clBootGcQuartets[[an]]) clPlotTheseAverageQuartets(pch=PCH['jackF'], cex=2, col=COL[an], clJackFreqQuartets[[an]]) clPlotTheseAverageQuartets(pch=PCH['jackG'], cex=2, col=COL[an], clJackGcQuartets[[an]]) clPlotTheseAverageQuartets(pch=PCH['mk'], clMkvQuartets, cex=2, col=COL['mk']) # Return: invisible() } TernaryParts<-function(TREE=TREE, an='eq') { clInitializeTernarySplits() title(main="\nPartitions", cex.main=0.8) HorizontalGrid(19) clPlotSplits(pch=PCH['brem'] , cex=2, col=COL[an], clBremPartitions[[an]], TREE) clPlotSplits(pch=PCH['bootF'], cex=2, col=COL[an], clBootGcPartitions[[an]], TREE) clPlotSplits(pch=PCH['bootG'], cex=2, col=COL[an], clBootFreqPartitions[[an]], TREE) clPlotSplits(pch=PCH['jackF'], cex=2, col=COL[an], clJackGcPartitions[[an]], TREE) clPlotSplits(pch=PCH['jackG'], cex=2, col=COL[an], clJackFreqPartitions[[an]], TREE) clPlotSplits(pch=PCH['mk'], cex=2, clMkvPartitions, TREE, col=COL['mk']) # Return: invisible() } TernaryAllParts<-function(an='eq') { clInitializeTernarySplits() title(main="\nPartitions", cex.main=0.8) HorizontalGrid(19) clPlotTheseAverageSplits(pch=PCH['brem'] , col=COL[an], cex=2, clBremPartitions[[an]]) clPlotTheseAverageSplits(pch=PCH['bootF'], col=COL[an], cex=2, clBootGcPartitions[[an]]) clPlotTheseAverageSplits(pch=PCH['bootG'], col=COL[an], cex=2, clBootFreqPartitions[[an]]) clPlotTheseAverageSplits(pch=PCH['jackF'], col=COL[an], cex=2, clJackGcPartitions[[an]]) clPlotTheseAverageSplits(pch=PCH['jackG'], col=COL[an], cex=2, clJackFreqPartitions[[an]]) clPlotTheseAverageSplits(pch=PCH['mk'], cex=2, clMkvPartitions, col=COL['mk']) # Return: invisible() } AddLegend <- function(pos='bottomright', an='eq') { legend(pos, cex=0.8, bty='n', lty=1, pch=PCH[c('mk', 'brem', 'bootF', 'bootG', 'jackF', 'jackG')], pt.cex=1.2, col=c(COL['mk'], rep(COL[an], 5)), legend=c('Markov', 'Bremer', 'BootFreq', 'Boot GC', 'Jack Freq', 'Jack GC') ) } CompareNodeSupports <- function (i) { x <- Sys.setlocale("LC_ALL", "C") # allows PCH=183 TernaryQuarts(TREE=i, an='eq') title(main=paste0("\nQuartets"), cex.main=0.8) arrows(sqrt(3/4) * 0.5, 0.5, sqrt(3/4) * 0.8, 0.5, length=0.1) text (sqrt(3/4) * 0.65, 0.5, pos=3, 'Decreasing resolution', cex=0.8) arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing divergence', cex=0.8, srt=270) TernaryQuarts(TREE=i, an='eq', zoom=3, padding=0.01) title(main=paste0("\nDataset ", i, ": CI=",round(clCI[i], 2), ". Equal weights"), cex.main=1.2) TernaryParts(TREE=i, an='eq') arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing RF distance', cex=0.8, srt=270) AddLegend(an='eq') TernaryQuarts(TREE=i, an='k3') title(main=paste0("\nQuartets"), cex.main=0.8) arrows(sqrt(3/4) * 0.5, 0.5, sqrt(3/4) * 0.8, 0.5, length=0.1) text (sqrt(3/4) * 0.65, 0.5, pos=3, 'Decreasing resolution', cex=0.8) arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing divergence', cex=0.8, srt=270) TernaryQuarts(TREE=i, an='k3', zoom=3, padding=0.01) title(main="\nImplied weights (k = 3)", cex.main=1.2) TernaryParts(TREE=i, an='k3') arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing RF distance', cex=0.8, srt=270) AddLegend(an='k3') } ``` ## Summary ```{R Averages, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=c(2, ROWS[2]), mar=MARGINS) TernaryAllQuarts(an='eq') title(main=paste0("\nQuartets"), cex.main=0.8) arrows(sqrt(3/4) * 0.5, 0.5, sqrt(3/4) * 0.8, 0.5, length=0.1) text (sqrt(3/4) * 0.65, 0.5, pos=3, 'Decreasing resolution', cex=0.8) arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing divergence', cex=0.8, srt=270) TernaryAllQuarts(an='eq', zoom=3, padding=0.01) title(main="\nAll datasets (averaged). Equal weights.", cex.main=1.2) TernaryAllParts(an='eq') arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing RF distance', cex=0.8, srt=270) AddLegend(an='eq') TernaryAllQuarts(an='k3') title(main=paste0("\nQuartets"), cex.main=0.8) arrows(sqrt(3/4) * 0.5, 0.5, sqrt(3/4) * 0.8, 0.5, length=0.1) text (sqrt(3/4) * 0.65, 0.5, pos=3, 'Decreasing resolution', cex=0.8) arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing divergence', cex=0.8, srt=270) TernaryAllQuarts(an='k3', zoom=3, padding=0.01) title(main="\nImplied weights (k = 3)", cex.main=1.2) TernaryAllParts(an='k3') arrows(sqrt(3/4) * 0.98, 0.40, sqrt(3/4) * 0.98, 0.20, length=0.1) text (sqrt(3/4) * 1.01, 0.30, pos=3, 'Increasing RF distance', cex=0.8, srt=270) AddLegend(an='k3') ``` Though the Bootstrap GC metric systematically produces the lowest normalized tree distances (SD/MaxI), it is not significantly better than other methods. The following table reports P values that fail to reject the null hypothesis that the specified node support metric is equally good at ascribing incorrect nodes the lowest support values. ```{R compare-best, results='asis', echo=FALSE} if (requireNamespace('Quartet', quietly = TRUE)) { TreeBests <- function (dataset) vapply(dataset, function (item) apply(apply(item, 1, function (x) Quartet::QuartetDivergence(t(x))), 1, max), double(dim(dataset[[1]])[3])) treeBests <- vapply(list(clBootGcQuartets, clBootFreqQuartets, clJackGcQuartets, clJackFreqQuartets, clBremQuartets), TreeBests, matrix(0, nrow=dim(clBootGcQuartets[[1]])[3], ncol=length(clBootGcQuartets)) ) tests <- apply(treeBests, 2, function (slice) apply(slice, 2, function (column) t.test(column, slice[, 1])$p.value)) rownames(tests) <- c( 'Bootstrap GC', 'Bootstrap Freq', 'Jackknife GC', 'Jackknife Freq', 'Bremer') knitr::kable(tests) } else { message("Package 'Quartet' is not available; cannot display table.") } ``` ## Trees 1--10 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(1) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(2) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(3) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(4) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(5) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(6) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(7) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(8) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(9) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(10) ``` ## Trees 11--20 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(11) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(12) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(13) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(14) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(15) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(16) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(17) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(18) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(19) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(20) ``` ## Trees 21--30 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(21) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(22) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(23) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(24) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(25) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(26) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(27) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(28) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(29) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(30) ``` ## Trees 31--40 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(31) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(32) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(33) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(34) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(35) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(36) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(37) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(38) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(39) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(40) ``` ## Trees 41--50 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(41) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(42) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(43) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(44) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(45) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(46) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(47) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(48) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(49) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(50) ``` ## Trees 51--60 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(51) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(52) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(53) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(54) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(55) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(56) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(57) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(58) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(59) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(60) ``` ## Trees 61--70 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(61) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(62) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(63) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(64) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(65) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(66) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(67) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(68) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(69) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(70) ``` ## Trees 71--80 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(71) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(72) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(73) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(74) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(75) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(76) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(77) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(78) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(79) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(80) ``` ## Trees 81--90 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(81) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(82) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(83) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(84) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(85) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(86) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(87) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(88) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(89) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(90) ``` ## Trees 91--100 ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(91) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(92) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(93) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(94) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(95) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(96) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(97) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(98) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(99) ``` ```{R, echo=FALSE, fig.width=9, fig.height=6} par(mfrow=ROWS, mar=MARGINS); x <- CompareNodeSupports(100) ``` ## References