Окраска меток на основе внешнего набора данных в ggtree

У меня есть филогенетическое дерево в .tre формат и сопутствующий набор данных. Точная форма дерева не имеет значения, это просто случайное филогенетическое дерево. Набор данных имеет два столбца: имена и цвета.

При построении такого дерева я бы, скорее всего, добавил цветные точки (два разных цвета) к дереву из этого сопровождающего набора данных. Проблема в том, что когда я использую следующий кусок кода:

ggtree(RANDOMTREE) + geom_tippoint(pch=16, col=RANDOMDATA$color) + geom_tiplab(offset=0.1)

это окрашивает точки, но цвета имеют порядок, который они имеют в сопровождающем наборе данных, конечно.

Но я бы хотел сопоставить цвета, основанные на названиях видов в дереве, с названиями в наборе данных (они одного формата, но в другом порядке). Я еще не понял этого. Можете ли вы помочь мне с этим?

Большое спасибо.

Пример кода:

source("https://bioconductor.org/biocLite.R")
biocLite("ggtree")
library(ggtree)

tree<-read.tree(text="(spec1,((spec2,(spec9,(spec3,spec5))),spec8,(spec6,(spec7,spec4))));")
dataset1<-data.frame("name" = c("spec1","spec2","spec3","spec4","spec5","spec6","spec7","spec8","spec9"), "colour" = c("red","red","blue","red","red","blue","blue","red","blue"))

ggtree(tree) + geom_tiplab() + geom_tippoint(pch=16, col=as.factor(dataset1$colour))

Что я получаю: неправильно маркированное дерево

Что бы я хотел получить: правильно помеченное дерево

1 ответ

Решение

Я могу получить правильную группировку, но не правильный цвет с летучей мыши

p <- ggtree(tree) + geom_tiplab()
p <- p %<+% dataset1 + geom_tippoint(pch=16, aes(col=colour))
p

Я использовал это для справки: https://aschuerch.github.io/posts/2017-04-24-blog-post-1. Пакет имеет плохую документацию. Вы можете достичь того, что вы хотите, переключив "красный" и "синий":p

Он берет порядок цветов и соединяет его со встроенной цветовой гаммой. Так что, если шкала начинается с (красного, синего), а ваша серия (синего, красного), она совпадает в этом порядке. Есть смысл?

редактировать: установка этого пакета была кошмаром, если есть более простой пакет, такой как https://cran.r-project.org/web/packages/data.tree/vignettes/data.tree.html, я бы предложил попробовать другие из. Он удалил так много из моих основных пакетов, например, dplyr и data.table, у него смешное количество зависимостей

Другие вопросы по тегам