vignettes/articles/smaller_example.Rmd
smaller_example.Rmd
In this case, assigng a probability of 1 to A–TRUE and 0 to A–FALSE for the t1 tip.
set.seed(1234)
randomTree <- rtree(7, rooted = TRUE)
mat <- matrix(
data = rep(0.5, Ntip(randomTree) * 2), ncol = 2, dimnames = list(
rownames = paste0('t', 1:Ntip(randomTree)), colnames = c('A--TRUE', 'A--FALSE')
)
)
annotated_tips <- c('t3', 't2')
for (i in seq_along(randomTree$tip.label)) {
if (randomTree$tip.label[i] %in% annotated_tips) {
mat[randomTree$tip.label[i], ] <- c(1, 0)
} else {
mat[randomTree$tip.label[i], ] <- c(0, 1)
}
}
mat
#> colnames
#> rownames A--TRUE A--FALSE
#> t1 0 1
#> t2 1 0
#> t3 1 0
#> t4 0 1
#> t5 0 1
#> t6 0 1
#> t7 0 1
plotT <- function(tree, ace, input_tips, model = '', pi = '') {
model <- dplyr::case_when(
model == 'ER' ~ 'equal rates',
model == 'ARD' ~ 'all rates different',
model == 'SYM' ~ 'symmetrical rates'
)
title <- paste0(
'Model transition rates: ', model,
'\nRoot prior: ', pi
)
df <- as.data.frame(ace$ace)
knownNode <- which(rownames(df) %in% input_tips)
df$nodetip <- as.character(1:nrow(df))
pieList <- vector('list', nrow(df))
for (i in seq_along(pieList)) {
names(pieList)[i] <- i
dat <- reshape2::melt(df[i,], id.vars = 'nodetip')
colnames(dat)[which(colnames(dat) == 'variable')] <- 'state'
pieList[[i]] <- ggplot(dat, aes(y = value, fill = state, x="")) +
geom_col() +
coord_polar("y", start=0) +
theme_void()
}
leg1 <- gtable_filter(ggplot_gtable(ggplot_build(pieList[[1]])), "guide-box")
pieList <- lapply(pieList, function(x) x + theme(legend.position = 'none'))
p <- ggtree(tree) +
geom_highlight(node = knownNode, fill = "steelblue", alpha = 0.5) +
geom_inset(insets = pieList, width = 0.1, height = 0.1) +
geom_tiplab(offset = 0.05) +
labs(title = title) +
annotation_custom(grob = leg1, xmin = 1, xmax = 2, ymin = 1, ymax = 1)
p
}
models <- c('ER', 'ARD', 'SYM')
pis <- c('fitzjohn', 'equal', 'estimated')
plotList <- vector('list', length(models) * length(pis))
n <- 1
for (i in seq_along(models)) {
for (j in seq_along(pis)) {
fit <- fitMk(tree = randomTree, x = mat, model = models[i], pi = pis[j])
ace <- ancr(fit, tips = TRUE)
plotList[[n]] <- plotT(
randomTree, ace = ace, input_tips = annotated_tips,
model = models[i], pi = pis[j]
)
n <- n + 1
}
}
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.253468 0.746532
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
mergedPlot <- ggarrange(plotlist = plotList, ncol = 3, nrow = 3)
mergedPlot
annotated_tips <- c('t1', 't5')
for (i in seq_along(randomTree$tip.label)) {
if (randomTree$tip.label[i] %in% annotated_tips) {
mat[randomTree$tip.label[i], ] <- c(1, 0)
} else {
mat[randomTree$tip.label[i], ] <- c(0, 1)
}
}
models <- c('ER', 'ARD', 'SYM')
pis <- c('fitzjohn', 'equal', 'estimated')
plotList <- vector('list', length(models) * length(pis))
n <- 1
for (i in seq_along(models)) {
for (j in seq_along(pis)) {
fit <- fitMk(tree = randomTree, x = mat, model = models[i], pi = pis[j])
ace <- ancr(fit, tips = TRUE)
plotList[[n]] <- plotT(
randomTree, ace = ace, input_tips = annotated_tips,
model = models[i], pi = pis[j]
)
n <- n + 1
}
}
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.285714 0.714286
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
mergedPlot <- ggarrange(plotlist = plotList, ncol = 3, nrow = 3)
mergedPlot
mat <- matrix(
data = rep(0.5, Ntip(randomTree) * 2), ncol = 2, dimnames = list(
rownames = paste0('t', 1:Ntip(randomTree)), colnames = c('A--TRUE', 'A--FALSE')
)
)
annotated_tips <- c('t3', 't2')
for (i in seq_along(randomTree$tip.label)) {
if (randomTree$tip.label[i] %in% annotated_tips) {
mat[randomTree$tip.label[i], ] <- c(1, 0)
}
}
mat
#> colnames
#> rownames A--TRUE A--FALSE
#> t1 0.5 0.5
#> t2 1.0 0.0
#> t3 1.0 0.0
#> t4 0.5 0.5
#> t5 0.5 0.5
#> t6 0.5 0.5
#> t7 0.5 0.5
models <- c('ER', 'ARD', 'SYM')
pis <- c('fitzjohn', 'equal', 'estimated')
plotList <- vector('list', length(models) * length(pis))
n <- 1
for (i in seq_along(models)) {
for (j in seq_along(pis)) {
fit <- fitMk(tree = randomTree, x = mat, model = models[i], pi = pis[j])
ace <- ancr(fit, tips = TRUE)
plotList[[n]] <- plotT(
randomTree, ace = ace, input_tips = annotated_tips,
model = models[i], pi = pis[j]
)
n <- n + 1
}
}
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
mergedPlot <- ggarrange(plotlist = plotList, ncol = 3, nrow = 3)
mergedPlot
mat <- matrix(
data = rep(0.5, Ntip(randomTree) * 2), ncol = 2, dimnames = list(
rownames = paste0('t', 1:Ntip(randomTree)), colnames = c('A--TRUE', 'A--FALSE')
)
)
annotated_tips <- c('t1', 't5')
for (i in seq_along(randomTree$tip.label)) {
if (randomTree$tip.label[i] %in% annotated_tips) {
mat[randomTree$tip.label[i], ] <- c(1, 0)
}
}
mat
#> colnames
#> rownames A--TRUE A--FALSE
#> t1 1.0 0.0
#> t2 0.5 0.5
#> t3 0.5 0.5
#> t4 0.5 0.5
#> t5 1.0 0.0
#> t6 0.5 0.5
#> t7 0.5 0.5
models <- c('ER', 'ARD', 'SYM')
pis <- c('fitzjohn', 'equal', 'estimated')
plotList <- vector('list', length(models) * length(pis))
n <- 1
for (i in seq_along(models)) {
for (j in seq_along(pis)) {
fit <- fitMk(tree = randomTree, x = mat, model = models[i], pi = pis[j])
ace <- ancr(fit, tips = TRUE)
plotList[[n]] <- plotT(
randomTree, ace = ace, input_tips = annotated_tips,
model = models[i], pi = pis[j]
)
n <- n + 1
}
}
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
mergedPlot <- ggarrange(plotlist = plotList, ncol = 3, nrow = 3)
mergedPlot
mat <- matrix(
data = rep(0.5, Ntip(randomTree) * 2), ncol = 2, dimnames = list(
rownames = paste0('t', 1:Ntip(randomTree)), colnames = c('A--TRUE', 'A--FALSE')
)
)
annotated_tips <- c('t1', 't5')
for (i in seq_along(randomTree$tip.label)) {
if (randomTree$tip.label[i] %in% annotated_tips) {
mat[randomTree$tip.label[i], ] <- c(1, 0)
} else {
mat[randomTree$tip.label[i], ] <- c(0, 1)
}
}
mat["t4",] <- c(0.5, 0.5)
mat["t7",] <- c(0.5, 0.5)
mat["t2",] <- c(0.5, 0.5)
mat
#> colnames
#> rownames A--TRUE A--FALSE
#> t1 1.0 0.0
#> t2 0.5 0.5
#> t3 0.0 1.0
#> t4 0.5 0.5
#> t5 1.0 0.0
#> t6 0.0 1.0
#> t7 0.5 0.5
models <- c('ER', 'ARD', 'SYM')
pis <- c('fitzjohn', 'equal', 'estimated')
plotList <- vector('list', length(models) * length(pis))
n <- 1
for (i in seq_along(models)) {
for (j in seq_along(pis)) {
fit <- fitMk(tree = randomTree, x = mat, model = models[i], pi = pis[j])
ace <- ancr(fit, tips = TRUE)
plotList[[n]] <- plotT(
randomTree, ace = ace, input_tips = c("t1", "t5", "t3", "t6"),
model = models[i], pi = pis[j]
)
n <- n + 1
}
}
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.999934 0.000066
#>
#> Using pi estimated from the stationary distribution of Q assuming a flat prior.
#> pi =
#> A--TRUE A--FALSE
#> 0.5 0.5
mergedPlot <- ggarrange(plotlist = plotList, ncol = 3, nrow = 3)
mergedPlot
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.4.1 (2024-06-14)
#> os Ubuntu 22.04.4 LTS
#> system x86_64, linux-gnu
#> ui X11
#> language en
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Etc/UTC
#> date 2024-07-23
#> pandoc 3.2 @ /usr/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> abind 1.4-5 2016-07-21 [1] RSPM (R 4.4.0)
#> ape * 5.8 2024-04-11 [1] RSPM (R 4.4.0)
#> aplot 0.2.3 2024-06-17 [1] RSPM (R 4.4.0)
#> backports 1.5.0 2024-05-23 [1] RSPM (R 4.4.0)
#> broom 1.0.6 2024-05-17 [1] RSPM (R 4.4.0)
#> bslib 0.7.0 2024-03-29 [1] RSPM (R 4.4.0)
#> cachem 1.1.0 2024-05-16 [1] RSPM (R 4.4.0)
#> car 3.1-2 2023-03-30 [1] RSPM (R 4.4.0)
#> carData 3.0-5 2022-01-06 [1] RSPM (R 4.4.0)
#> cli 3.6.3 2024-06-21 [1] RSPM (R 4.4.0)
#> clusterGeneration 1.3.8 2023-08-16 [1] RSPM (R 4.4.0)
#> coda 0.19-4.1 2024-01-31 [1] RSPM (R 4.4.0)
#> codetools 0.2-20 2024-03-31 [2] CRAN (R 4.4.1)
#> colorspace 2.1-0 2023-01-23 [1] RSPM (R 4.4.0)
#> combinat 0.0-8 2012-10-29 [1] RSPM (R 4.4.0)
#> cowplot 1.1.3 2024-01-22 [1] RSPM (R 4.4.0)
#> DEoptim 2.2-8 2022-11-11 [1] RSPM (R 4.4.0)
#> desc 1.4.3 2023-12-10 [1] RSPM (R 4.4.0)
#> digest 0.6.36 2024-06-23 [1] RSPM (R 4.4.0)
#> doParallel 1.0.17 2022-02-07 [1] RSPM (R 4.4.0)
#> dplyr 1.1.4 2023-11-17 [1] RSPM (R 4.4.0)
#> evaluate 0.24.0 2024-06-10 [1] RSPM (R 4.4.0)
#> expm 0.999-9 2024-01-11 [1] RSPM (R 4.4.0)
#> fansi 1.0.6 2023-12-08 [1] RSPM (R 4.4.0)
#> farver 2.1.2 2024-05-13 [1] RSPM (R 4.4.0)
#> fastmap 1.2.0 2024-05-15 [1] RSPM (R 4.4.0)
#> fastmatch 1.1-4 2023-08-18 [1] RSPM (R 4.4.0)
#> foreach 1.5.2 2022-02-02 [1] RSPM (R 4.4.0)
#> fs 1.6.4 2024-04-25 [1] RSPM (R 4.4.0)
#> generics 0.1.3 2022-07-05 [1] RSPM (R 4.4.0)
#> ggfun 0.1.5 2024-05-28 [1] RSPM (R 4.4.0)
#> ggimage 0.3.3 2023-06-19 [1] RSPM (R 4.4.0)
#> ggplot2 * 3.5.1 2024-04-23 [1] RSPM (R 4.4.0)
#> ggplotify 0.1.2 2023-08-09 [1] RSPM (R 4.4.0)
#> ggpubr * 0.6.0 2023-02-10 [1] RSPM (R 4.4.0)
#> ggsignif 0.6.4 2022-10-13 [1] RSPM (R 4.4.0)
#> ggtree * 3.12.0 2024-04-30 [1] Bioconductor 3.19 (R 4.4.1)
#> glue 1.7.0 2024-01-09 [1] RSPM (R 4.4.0)
#> gridGraphics 0.5-1 2020-12-13 [1] RSPM (R 4.4.0)
#> gtable * 0.3.5 2024-04-22 [1] RSPM (R 4.4.0)
#> highr 0.11 2024-05-26 [1] RSPM (R 4.4.0)
#> htmltools 0.5.8.1 2024-04-04 [1] RSPM (R 4.4.0)
#> htmlwidgets 1.6.4 2023-12-06 [1] RSPM (R 4.4.0)
#> igraph 2.0.3 2024-03-13 [1] RSPM (R 4.4.0)
#> iterators 1.0.14 2022-02-05 [1] RSPM (R 4.4.0)
#> jquerylib 0.1.4 2021-04-26 [1] RSPM (R 4.4.0)
#> jsonlite 1.8.8 2023-12-04 [1] RSPM (R 4.4.0)
#> knitr 1.48 2024-07-07 [1] RSPM (R 4.4.0)
#> labeling 0.4.3 2023-08-29 [1] RSPM (R 4.4.0)
#> lattice 0.22-6 2024-03-20 [2] CRAN (R 4.4.1)
#> lazyeval 0.2.2 2019-03-15 [1] RSPM (R 4.4.0)
#> lifecycle 1.0.4 2023-11-07 [1] RSPM (R 4.4.0)
#> magick 2.8.4 2024-07-14 [1] RSPM (R 4.4.0)
#> magrittr 2.0.3 2022-03-30 [1] RSPM (R 4.4.0)
#> maps * 3.4.2 2023-12-15 [1] RSPM (R 4.4.0)
#> MASS 7.3-61 2024-06-13 [2] RSPM (R 4.4.0)
#> Matrix 1.7-0 2024-04-26 [2] CRAN (R 4.4.1)
#> memoise 2.0.1 2021-11-26 [1] RSPM (R 4.4.0)
#> mnormt 2.1.1 2022-09-26 [1] RSPM (R 4.4.0)
#> munsell 0.5.1 2024-04-01 [1] RSPM (R 4.4.0)
#> nlme 3.1-165 2024-06-06 [2] RSPM (R 4.4.0)
#> numDeriv 2016.8-1.1 2019-06-06 [1] RSPM (R 4.4.0)
#> optimParallel 1.0-2 2021-02-11 [1] RSPM (R 4.4.0)
#> patchwork 1.2.0 2024-01-08 [1] RSPM (R 4.4.0)
#> phangorn 2.11.1 2023-01-23 [1] RSPM (R 4.4.0)
#> phytools * 2.3-0 2024-06-13 [1] RSPM (R 4.4.0)
#> pillar 1.9.0 2023-03-22 [1] RSPM (R 4.4.0)
#> pkgconfig 2.0.3 2019-09-22 [1] RSPM (R 4.4.0)
#> pkgdown 2.1.0 2024-07-06 [1] RSPM (R 4.4.0)
#> plyr 1.8.9 2023-10-02 [1] RSPM (R 4.4.0)
#> purrr 1.0.2 2023-08-10 [1] RSPM (R 4.4.0)
#> quadprog 1.5-8 2019-11-20 [1] RSPM (R 4.4.0)
#> R6 2.5.1 2021-08-19 [1] RSPM (R 4.4.0)
#> ragg 1.3.2 2024-05-15 [1] RSPM (R 4.4.0)
#> Rcpp 1.0.13 2024-07-17 [1] RSPM (R 4.4.0)
#> reshape2 1.4.4 2020-04-09 [1] RSPM (R 4.4.0)
#> rlang 1.1.4 2024-06-04 [1] RSPM (R 4.4.0)
#> rmarkdown 2.27 2024-05-17 [1] RSPM (R 4.4.0)
#> rstatix 0.7.2 2023-02-01 [1] RSPM (R 4.4.0)
#> sass 0.4.9 2024-03-15 [1] RSPM (R 4.4.0)
#> scales 1.3.0 2023-11-28 [1] RSPM (R 4.4.0)
#> scatterplot3d 0.3-44 2023-05-05 [1] RSPM (R 4.4.0)
#> sessioninfo 1.2.2 2021-12-06 [1] RSPM (R 4.4.0)
#> stringi 1.8.4 2024-05-06 [1] RSPM (R 4.4.0)
#> stringr 1.5.1 2023-11-14 [1] RSPM (R 4.4.0)
#> systemfonts 1.1.0 2024-05-15 [1] RSPM (R 4.4.0)
#> textshaping 0.4.0 2024-05-24 [1] RSPM (R 4.4.0)
#> tibble 3.2.1 2023-03-20 [1] RSPM (R 4.4.0)
#> tidyr 1.3.1 2024-01-24 [1] RSPM (R 4.4.0)
#> tidyselect 1.2.1 2024-03-11 [1] RSPM (R 4.4.0)
#> tidytree 0.4.6 2023-12-12 [1] RSPM (R 4.4.0)
#> treeio 1.28.0 2024-04-30 [1] Bioconductor 3.19 (R 4.4.1)
#> utf8 1.2.4 2023-10-22 [1] RSPM (R 4.4.0)
#> vctrs 0.6.5 2023-12-01 [1] RSPM (R 4.4.0)
#> withr 3.0.0 2024-01-16 [1] RSPM (R 4.4.0)
#> xfun 0.46 2024-07-18 [1] RSPM (R 4.4.0)
#> yaml 2.3.9 2024-07-05 [1] RSPM (R 4.4.0)
#> yulab.utils 0.1.4 2024-01-28 [1] RSPM (R 4.4.0)
#>
#> [1] /usr/local/lib/R/site-library
#> [2] /usr/local/lib/R/library
#>
#> ──────────────────────────────────────────────────────────────────────────────