Как раскрасить кончики дерева по группе в ggtree?

Как мне просто раскрасить кончики моего дерева в соответствии с группой, к которой принадлежит образец?

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, однако их код чрезвычайно сложен (см., Например, раздел 4.3.7.3 в https://guangchuangyu.github.io/ggtree-book/chapter-ggtree.html).

Кроме того, я не могу воспроизвести эти примеры, потому что они полагаются на метаданные, которые нигде не поясняются доступными:

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

Например.

должен быть простой способ окраски подсказок с помощью этих метаданных.


person Luther_Blissett    schedule 10.09.2020    source источник


Ответы (1)


Вы можете преобразовать дерево в tibble, а затем присоединиться к 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. Я оставлю это на ваше усмотрение

person astrofunkswag    schedule 10.09.2020