接上次的相关性分析可视化,找到了之前在科研猫看到的一种简洁明了的绘制方法(推荐关注他们的wx公众号,干货特别多)。通过24个基因在7个样本中的共表达情况,用最简明的方式来清楚的展示基因和基因之间的相关性。
.
还是先上图
.
图中的数值和颜色皆表示相关系数corr,并只显示了具有显著(p值<0.05)的数值,清晰明了,不得不服
.
安装并加载相关R包
install.packages("ggcorrplot")
install.packages("ggthemes")
library(ggcorrplot)
library(ggthemes)
.
导入数据
gt <- read.table("heatmap.txt",header = T,row.names = 1)
head(gt)
#> head(gt)
Day4 Day5 Day6 Day7 Day8 Day9 Day10
ENSG00000000003 42.674652 49.39695263 84.099011 74.112536 65.093418 66.111547 63.65192909
ENSG00000000419 45.550753 32.23179579 32.143921 28.318801 31.211032 33.396199 33.10673607
ENSG00000000457 2.495825 2.74828634 3.921478 3.836972 3.452982 3.295002 5.95334785
ENSG00000000460 8.181140 4.39553381 4.496204 4.784092 2.912945 3.117523 6.07849579
ENSG00000000971 0.000000 0.01452673 5.959507 10.434377 32.998531 39.694485 0.05336992
ENSG00000001036 42.799809 34.98829578 53.675156 62.872929 51.404591 67.902012 41.90309397
.
取log2标准化
gt1 <- log2(gt+1)
head(gt1)
#> head(gt1)
Day4 Day5 Day6 Day7 Day8 Day9 Day10
ENSG00000000003 5.448724 5.65526460 6.411070 6.230982 6.046435 6.068489 6.01462151
ENSG00000000419 5.540733 5.05449235 5.050672 4.873754 5.009483 5.104177 5.09198479
ENSG00000000457 1.805633 1.90623117 2.299092 2.274104 2.154772 2.102659 2.79770776
ENSG00000000460 3.198673 2.43176570 2.458436 2.532090 1.968255 2.041777 2.82344281
ENSG00000000971 0.000000 0.02080687 2.798985 3.515306 5.087401 5.346761 0.07501217
ENSG00000001036 5.452853 5.16945588 5.772814 5.997133 5.711621 6.106474 5.42300979
.
矩阵倒置
gt2 <- t(gt1)
head(gt2)
.
计算相关系数,p值
ibrary(Hmisc)
gt3 <- rcorr(gt2)
head(gt3)
#输出说明
#r :第一个矩阵为相关性矩阵
#n : 处理数据的总记录数(行数)
#P : 显著性水平矩阵(越小说明越显著)
#返还相关性矩阵r
signif(gt3$r,2)
#返还P值矩阵
signif(gt3$P,2)
.
基因与基因间相关性可视化
#method()控制数值形状
#hc.order()对数据进行整理,相关性更清晰
#hc.method()聚类
#outline.col图形轮廓
#ggtheme = theme_bw()加边框
#type()控制点,"upper"只显示对角线上半部分,"lower"则反之
#colors()“小中大”控制颜色渐变颜色区间
#lab控制数值显示,lab_size数值显示大小
#显示p值
#insig对不显著的数值(p>0.05)处理
ggcorrplot(gt3$r,method = "circle",
hc.order = T,hc.method = "ward.D",
outline.col = "white",ggtheme = theme_bw(),
type = "upper",
colors = c("#8A2BE2","white","#FF0000"),
lab = T,lab_size = 2,
p.mat = gt3$P,insig = "blank")
.
.
没有绝对的完美,只有不断的进步
相信看过的也看出来了,此图也有它的一大缺点,就是显著性的数值大小没有在图中展示明确。另外还有一点,也是我技术上的缺陷,如果把横坐标放到上边可能会更好一点吧。
.
坑边闲话:本来是准备随便找一个FPKM类代表性数据来操作练习的,于是翻了一下文件夹,却意外的找到了一些从那个地方带过来的“武林秘籍”,然后心里就有点波澜了。可能,我最大的机遇是遇到了他们,最大的希望现在也是了他们。我想我对他们最大的辜负大概是我的不努力吧。之后的日子就先把生信放一放了,该好好准备英语了,晚安