Ошибка добавления цветов аннотации к pheatmap в R: «предоставлено больше элементов, чем нужно заменить» - PullRequest
0 голосов
/ 23 ноября 2018

Я относительный новичок в 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 переменных.

Кто-нибудь может предложить что-нибудь, чтобы это исправить?

...