Раскраска меток на основе внешнего набора данных в ggtree - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть филогенетическое дерево в формате .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 Ответ

0 голосов
/ 02 ноября 2018

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

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

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

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

...