Я пытаюсь построить тепловую карту рядом с филогенетическим деревом и раскрасить тепловую карту в соответствии с данными.Однако, когда я пытаюсь построить это с помощью ggtree в R, я получаю ошибку: не могу найти функцию "scale_fill_manual".
Я пробовал несколько поисков в Интернете, чтобы решить эту проблему.Я основываю свой код на ранее опубликованном примере: https://github.com/GuangchuangYu/plotTree-ggtree/blob/master/03_curated_genes.R
Вот пример филогенетических данных (файл дерева в формате newick):
(B:6.0,(A:5.0,C:3.0,E:4.0):5.0,D:11.0);
Вот пример данных тепловой карты (файл в формате csv):
Genome Data_1 Data_2
A 1 5
B 2 5
C 2 6
D 3 7
E 4 7
Вот мой текущий скрипт R:
library(ggtree)
library(ape)
library(phytools) #needed for midpoint rooting
#read in tree
t<-read.tree("RAxML_bestTree.BestTree")
#midpoint root tree
rooted <- midpoint.root(t)
#ladderise midpoint rooted tree (F is false --> ascending, T is true --> descending)
tl_f <- ladderize(rooted, F)
#read in the metadata
tipcategories = read.csv("metadata.csv",
sep = "\t",
row.names=1,
header = TRUE,
stringsAsFactors = FALSE)
rn <- rownames(tipcategories)
heatmapData <- as.data.frame(sapply(tipcategories, as.character))
rownames(heatmapData) <- rn
head(heatmapData)
#setup colour range, need 7 different colours
heatmap.colours=c("green","red","orange","pink","purple","blue","gold")
names(heatmap.colours) <- 1:7
#plot tree
p <- ggtree(tl_f) + geom_tiplab(size=1, color="purple")
p2 <- gheatmap(p, heatmapData, offset = 2, color=NULL, colnames_position="top",
colnames_angle=90, colnames_offset_y = 1, hjust=0, font.size=2) +
scale_fill_manual(values=heatmap.colours,breaks=1:7)
p2
Я ожидаю, что график, похожий на график 3 из этоговеб-сайт: https://github.com/GuangchuangYu/plotTree-ggtree, однако я получаю сообщение об ошибке: Ошибка в scale_fill_manual (values = heatmap.colours, breaks = 1: 7): не удалось найти функцию «scale_fill_manual"
Я использую R версии 3.6.0, Bioconductor версия 3.9 (BiocManager 1.30.4) и ggtree версия 1.16.1
Любая помощь будет принята с благодарностью!