user3138373
user3138373

Reputation: 523

plotting with specific values for heatmap in pheatmap

I have a data frame like this:

gene    s1  s2  s3
1   -3.83   -8.17   -8.59
2   0.33    -4.51   -7.27
3   0.15    -5.26   -6.2
4   -0.08   -6.13   -5.95
5   -1.15   -4.82   -5.75
6   -0.99   -4.11   -4.85
7   0.42    -4.18   -4.54
8   -0.32   -3.43   -4.4
9   -0.72   -3.37   -4.39

I want to make a heatmap using pheatmap where if anything is below -4 it should be green and anything over +4 should be red and everything in between should red/green shades. I also don't want to scale my data and no clustering. I have this code so far in R:

d <- read.table("test.txt", header = TRUE, sep = "\t", row.names = 1, quote = "")

pheatmap(as.matrix(d),  # matrix
         scale = "none",         # z score scaling applied to rows 
         cluster_cols=FALSE,    # do not cluster columns
         cluster_rows = FALSE,
         treeheight_row=0,      # do not show row dendrogram
         show_rownames=FALSE,   # do not show row names i.e gene names
         main = "test.txt",
         color = colorRampPalette(c("#0016DB","#FFFFFF","#FFFF00"))(50),
         )

How can I plot this with the color scheme I mentioned above.

Thanks

Upvotes: 1

Views: 1274

Answers (1)

M--
M--

Reputation: 28825

d <-read.table(text="gene      s1      s2      s3
                        1   -3.83   -8.17   -8.59
                        2    0.33   -4.51   -7.27
                        3    0.15   -5.26   -6.20  
                        4   -0.08   -6.13   -5.95
                        5   -1.15   -4.82   -5.75
                        6   -0.99   -4.11   -4.85
                        7   0.42    -4.18   -4.54
                        8   -0.32   -3.43   -4.40
                        9   -0.72   -3.37   -4.39", header=T)

library(pheatmap)

my_colors <- c(min(d),seq(-4,4,by=0.01),max(d))

my_palette <- c("green",colorRampPalette(colors = c("green", "red"))
                (n = length(my_colors)-2), "red")

pheatmap(as.matrix(d),  
         scale = "none",         
         cluster_cols=FALSE,    
         cluster_rows = FALSE,
         treeheight_row=0,      
         show_rownames=FALSE,   
         main = "test.txt",
         color = my_palette,
         breaks = my_colors)

Created on 2019-05-29 by the reprex package (v0.3.0)

Upvotes: 1

Related Questions