0

如何根据样本所属的组简单地为我的树的尖端着色?

nwk <- system.file("extdata", "sample.nwk", package="treeio")
tree <- read.tree(nwk)

group_1 <- rep("1.1.1", 5)
group_2 <- rep("1.1.2", 3)
group_3 <- rep("1.2", 2)
group_4 <- rep("1.2.1", 2)
group_5 <- "1.2"

meta_data <- data.frame(ID = LETTERS[1:13], 
                        group = c(group_1, group_2, group_3, group_4, group_5))

我如何处理元数据以使提示显示为彩色圆圈或正方形(或其他形状)并根据这些颜色创建图例?

我在 ggtree 文档中看到了类似的树,但是它们的代码非常复杂(例如参见https://guangchuangyu.github.io/ggtree-book/chapter-ggtree.html中的第 4.3.7.3 节)。

此外,我无法重现这些示例,因为它们依赖于他们无处明确可用的元数据:

treefile <- "RAxML_bestTree.Aln_All_H3.nwk"
tipseqfile <- "Aln_All_H3_filted.fas"

例如。

必须有一种简单的方法来使用此元数据为提示着色。

4

1 回答 1

1

您可以将树转换为 atibble然后加入meta_data. 然后你转换回一棵树并为美学添加颜色geom_tiplab

x <- full_join(as_tibble(tree), meta_data, by = c("label" = "ID"))

tree2 <- as.treedata(x)

ggtree(tree2) + geom_tiplab(aes(color = group))

编辑:图例可以用theme_tree. 我会把它留给你

于 2020-09-10T17:22:07.470 回答