Я относительный новичок в R, и у меня возникают проблемы при попытке изменить цветовую палитру, используемую для аннотаций в pheatmap.
Я создал аннотированную тепловую карту из файла Total_depth_avg_mag.txt, используя следующие команды:
library(vegan)
library(gplots)
library(dplyr)
library('pheatmap')
library(RColorBrewer)
#Reads data into table, adds row names and deletes the first column
dat<-read.table("Total_depth_avg_mag.txt", header = T)
row.names(dat) <- dat$mag
dat <- dat[, -1]
# Produces annotation data_frame from input file
data_annot_2 <- read.table("Mag_annot_taxonomy.txt", header = T)
rownames(data_annot_2) = data_annot_2$mag
data_annot <- data_annot_2["Taxonomy"]
#Produces annotated heatmap
pheatmap(dat, cluster_cols = F, cluster_rows = F, fontsize_col = 10,
fontsize_row = 5, filename = "Mags_all_unclustered_tax.png", width =20,
height =30, border_color= NA, annotation_row = data_annot)
, которая производит следующее: Heatmap_with_generic_colours
Поскольку в моих аннотациях довольно много (34) переменных, некоторые из них имеют одинаковые цвета, поэтому я хотел бы использовать свою собственную палитру.Я использовал следующий код, чтобы попытаться сделать это:
#Making a version of the "Greys" set from Rcolorbrewer containing 17 colours
coul = brewer.pal(9, "Greys")
coul = colorRampPalette(coul)(17)
#Producing a palette to feed into pheatmap. Contains 34 colours.
my_palette <- c(brewer.pal(9, "Reds")[c(6)], brewer.pal(9, "Greens")
[c(4,7)], brewer.pal(9, "Oranges")[c(4)], brewer.pal(9, "Blues")[c(3,5,7)],
brewer.pal(8, "Accent")[c(4)], brewer.pal(8, "Accent")[c(6)], brewer.pal(8,
"Accent")[c(7)], coul, brewer.pal(9, "Purples")[c(3,4,5,7)], brewer.pal(9,
"BuGn")[c(3,4)], brewer.pal(8, "Pastel2")[c(7)])
#Producing annotated heatmap with my_palette
pheatmap(dat, cluster_cols = F, cluster_rows = F, fontsize_col = 10,
fontsize_row = 5, filename = "Mags_all_unclustered_tax_col.png", width =20,
height =30, border_color= NA, annotation_row = data_annot,
annotation_colors = my_palette)
Затем я получаю сообщение об ошибке «Ошибка в annotation_colors [[names (annotation) [i]]] <- factor_colors [ind]: добавлено больше элементовчем заменить "</p>
Я не уверен, почему это так, поскольку my_palette определенно содержит 34 цвета, и моя аннотация должна содержать 34 переменных.
Кто-нибудь может предложить что-нибудь, чтобы это исправить?