资源描述
。
相关性分析
gaom
在我们平时分析的时候,经常会遇到样品间的相关性检验分析,并以此判断对我们后续分析的影响。今天主要跟大家讨论一下简单的相关性分析以及结果展示。
利用的测试数据还是之前我们在geo数据库中随便找的一份表达谱数据。首先还是导入数据,进行简单分析,获取相关数值。
rm(list=ls())#先把我们的R清空一下
data<-read.table(file = "C:\\Users\\gaom\\Desktop\\R语言绘图\\相关性分析\\test_data.txt",header = T,row.names =1,sep="\t")#读取数据
cor(data,method = "pearson")#方法可选pearson、kendall、spearman。
## T01 T02 T03 T04 T05 T06 T07
## T01 1.0000000 0.9626878 0.9820587 0.9775637 0.9672888 0.9664156 0.9752635
## T02 0.9626878 1.0000000 0.9871793 0.9739935 0.9779155 0.9794141 0.9786400
## T03 0.9820587 0.9871793 1.0000000 0.9823576 0.9819684 0.9808063 0.9833352
## T04 0.9775637 0.9739935 0.9823576 1.0000000 0.9915693 0.9890907 0.9815730
## T05 0.9672888 0.9779155 0.9819684 0.9915693 1.0000000 0.9943036 0.9805366
## T06 0.9664156 0.9794141 0.9808063 0.9890907 0.9943036 1.0000000 0.9798487
## T07 0.9752635 0.9786400 0.9833352 0.9815730 0.9805366 0.9798487 1.0000000
## T08 0.9714801 0.9791369 0.9816482 0.9814655 0.9804464 0.9796599 0.9938647
## T09 0.9746475 0.9802358 0.9845114 0.9814857 0.9800746 0.9794935 0.9947428
## T10 0.9636498 0.9717902 0.9757652 0.9759936 0.9771073 0.9755922 0.9850377
## T11 0.9739732 0.9677072 0.9775576 0.9796979 0.9778722 0.9760231 0.9876567
## T12 0.9613186 0.9685109 0.9732389 0.9739145 0.9757272 0.9737234 0.9855969
## T08 T09 T10 T11 T12
## T01 0.9714801 0.9746475 0.9636498 0.9739732 0.9613186
## T02 0.9791369 0.9802358 0.9717902 0.9677072 0.9685109
## T03 0.9816482 0.9845114 0.9757652 0.9775576 0.9732389
## T04 0.9814655 0.9814857 0.9759936 0.9796979 0.9739145
## T05 0.9804464 0.9800746 0.9771073 0.9778722 0.9757272
## T06 0.9796599 0.9794935 0.9755922 0.9760231 0.9737234
## T07 0.9938647 0.9947428 0.9850377 0.9876567 0.9855969
## T08 1.0000000 0.9942297 0.9858170 0.9849012 0.9837345
## T09 0.9942297 1.0000000 0.9849167 0.9850892 0.9839299
## T10 0.9858170 0.9849167 1.0000000 0.9867687 0.9878700
## T11 0.9849012 0.9850892 0.9867687 1.0000000 0.9919710
## T12 0.9837345 0.9839299 0.9878700 0.9919710 1.0000000
获得每个样品之间的相关系数,下面让我们把这些结果可视化。先利用基本函数plot展示下我们样品的结果。
plot(data[,1:6],pch=19,col=rgb(0,0,100,50,maxColorValue=255))#我们截取前面6个样品看看他们的相关性
从上面的结果来看T01、T02、T03之间的相关性要稍微差些,而T04、T05、T06之间的相关性要好的多。
下面我们根据cor函数的结果做成类似热图的形式。
library("lattice")
cor_data<-as.matrix(cor(data,method = "pearson"))#获取相关系数矩阵
levelplot(cor_data)#直接利用levelplot函数进行绘图
上图中颜色非常淡,所以我们想考虑一下自己把这个图再进化一下。
col<-colorRampPalette(c("green","black","red"),space = "rgb")#我们自己设置填充颜色
levelplot(cor_data,main ="cor plot test",xlab ="",ylab ="",col.regions = col(100))#main对应的是图的标题,以及xlab、ylab分别对应x轴和y轴的标题,这里表示不添加,所以都是"",引号里面是没东西的
从图中我们可以看出T04、T05、T06以及T07、T08、T09这两组的相关性就更好。当然,我们也可以直接用pheatmap这个画热图的函数将结果展示出来。
library("pheatmap")
pheatmap(cor_data,cluster_rows = F,cluster_cols = F,display_numbers = T,number_format = "%.4f",color = col(100),main = "correlation test",number_color = "white",fontsize_number = 5)#这里把聚类树部分都去除了,同时显示小数点后4位有效数字,并自己颜色设置为白色,同时可以利用fontsize_number设置数字大小
在这里我们把对应的相关系数值直接标记在了图中。也不只是说就pheatmap才能标记处数字。
library("pcaPP")
## Warning: package 'pcaPP' was built under R version 3.3.2
cor1<-cor(data,method = "pearson")
plotcov(cor1,method1 = "correlation")
## Warning in plot.xy(xy.coords(x, y), type = type, ...): 所提供的颜色值既不是
## 数字也不是字符
除了这些函数之外。我们的大ggplot表示画起来也无压力,只是我们需要稍微倒腾下数据。
library("reshape2")
## Warning: package 'reshape2' was built under R version 3.3.2
library("ggplot2")
## Warning: package 'ggplot2' was built under R version 3.3.2
cor_data2<-melt(cor(data))
p<-ggplot(cor_data2,aes(x=cor_data2$Var1,y=cor_data2$Var2,fill=cor_data2$value))+geom_tile()+scale_fill_gradient(low = "green",high = "red")
p
上述的展现方式其实主要还是通过不同颜色的方式进行直观展示。但实际在我们再展示结果的时候,不仅仅局限于只是颜色改变。
library("corrgram")
## Warning: package 'corrgram' was built under R version 3.3.2
corrgram(data,lower.panel=panel.pts,upper.panel=panel.pie,text.panel=panel.txt)
利用corrgram函数能画出各种更酷炫的相关性结果。上图中的圆形图中蓝色所占面积越大,表示相关系数值越接近1。
THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考
-可编辑修改-
展开阅读全文