Correlation on the heatmap using pheatmap library
library(pheatmap)
df = read.csv("NEK7_BRCA.csv", sep = , header = TRUE)
head(df)
## NEK7 UNC45A NR3C1
## 1 13.7725 10.1443 13.0158
## 2 12.7417 10.9407 12.7186
## 3 12.7267 10.9141 12.5933
## 4 12.6931 10.6454 12.5922
## 5 12.5557 11.0752 12.5727
## 6 12.5164 9.8912 13.0979
pheatmap(cor(df))

Add correlation coefficients on the heatmap using ggplot2
library(ggplot2)
library(reshape2)
##attach(df)
cormat = round(cor(df),4)
head(cormat)
## NEK7 UNC45A NR3C1
## NEK7 1.0000 -0.3680 0.5039
## UNC45A -0.3680 1.0000 -0.2446
## NR3C1 0.5039 -0.2446 1.0000
get_lower_tri = function(cormat) {
cormat[upper.tri(cormat)] = NA
return(cormat)
}
get_upper_tri = function(cormat) {
cormat[lower.tri(cormat)] = NA
return(cormat)
}
upper_tri = get_upper_tri(cormat)
upper_tri
## NEK7 UNC45A NR3C1
## NEK7 1 -0.368 0.5039
## UNC45A NA 1.000 -0.2446
## NR3C1 NA NA 1.0000
lower_tri = get_lower_tri(cormat)
lower_tri
## NEK7 UNC45A NR3C1
## NEK7 1.0000 NA NA
## UNC45A -0.3680 1.0000 NA
## NR3C1 0.5039 -0.2446 1
reorder_comat = function(cormat) {
dd = as.dist((1-cormat)/2)
hc = hclust(dd)
cormat = cormat[hc$order, hc$order]
}
cormat = reorder_comat(cormat)
cormat
## UNC45A NEK7 NR3C1
## UNC45A 1.0000 -0.3680 -0.2446
## NEK7 -0.3680 1.0000 0.5039
## NR3C1 -0.2446 0.5039 1.0000
upper_tri = get_upper_tri(cormat)
melted_cormat = melt(upper_tri, na.rm = TRUE)
melted_cormat
## Var1 Var2 value
## 1 UNC45A UNC45A 1.0000
## 4 UNC45A NEK7 -0.3680
## 5 NEK7 NEK7 1.0000
## 7 UNC45A NR3C1 -0.2446
## 8 NEK7 NR3C1 0.5039
## 9 NR3C1 NR3C1 1.0000
ggheatmap = ggplot(melted_cormat, aes(Var2, Var1, fill = value)) + geom_tile(color = "white") + scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0, limit = c(-1, 1), space = "Lab", name = "Pearson\nCorrelation") + theme_minimal() + coord_fixed()
ggheatmap

ggheatmap + geom_text(aes(Var2, Var1, label = value), color = "black", size = 4) + theme(axis.title.x = element_blank(), axis.title.y = element_blank())

Visualize Correlation Matrix using Correlogram
library(corrplot)
## corrplot 0.84 loaded
library(RColorBrewer)
m = cor(df)
corrplot(m, type = "upper", dorder = "hclust", col = brewer.pal(n=8, name = "RdYlBu"))
## Warning in text.default(pos.xlabel[, 1], pos.xlabel[, 2], newcolnames, srt
## = tl.srt, : "dorder" is not a graphical parameter
## Warning in text.default(pos.ylabel[, 1], pos.ylabel[, 2], newrownames, col
## = tl.col, : "dorder" is not a graphical parameter
## Warning in title(title, ...): "dorder" is not a graphical parameter

ord = corrMatOrder(m, order = "AOE")
m2 = m[ord, ord]
corrplot.mixed(m2, upper = "circle", lower = "number")
