技术贴 | R语言:大样本多组学的相关性计算、热图绘制
本文由可爱的乔巴根据实践经验而整理,希望对大家有帮助。
原创微文,欢迎转发转载。
上期介绍了利用psych包计算两组小样本的相关性并进行热图可视化,但当样本数据量非常大时,psych包会耗费的时间非常长。今天推荐一个快速计算大样本量的相关性方法,可以使用WGCNA包中的cor函数和corPvalueStudent计算大样本的两组数据的相关性计算并进行热图展示。
##读取基因表达数据,行名为目标基因集的样品信息。列名为基因,每一列数据为基因对应于不同样品的表达量。
gene <- read.csv("Test_Gene_expre.csv",header = T,row.names = 1)
dim(gene) ##查看数据的大小,5行5397列。
#读取蛋白质组(代谢组)表达量文件,此处使用不同样品测定的代谢物表达量进行分析,计算激素于目标基因集的相关性。第一列为样品信息,与基因集的样品信息一致,第二列到第四列为测定的不同时期的不同代谢物对应的表达量。
meta <- read.csv("Test_meta_expre.csv",header = T,row.names = 1)
dim(meta) ##查看数据的大小,5行330列。
##这里使用WGCNA包中的cor函数进行相关性计算,利用corPvalueStudent计算相关性的p值。
library(WGCNA) ##载入WGCNA包
?cor ##查看WGCNA包中cor的具体使用方法。cor支持person、spearman和kendall算法。
metaGeneCor.r <- cor(gene, meta, method="pearson") ##相关性计算,非常的快5*5397的基因和5*330的代谢表达相关性计算,基本几秒就计算出结果了。
write.csv(metaGeneCor.r,file="GeneCorMeta.csv")###保存相关性计算结果。
?corPvalueStudent ##查看corPvalueStudent使用方法
nmeta=nrow(meta) ##样本数统计.
metaGeneCor.p <- corPvalueStudent(metaGeneCor.r, nmeta) ##计算样本相关性的p值,nmeta可以直接填写样本量,比如本示例中的5
write.csv(metaGeneCor.p,file = "MetaCorGene.p.csv") ##保存P值计算的结果
##相关性结果进行可视化
library(pheatmap) ##使用pheatmap包
pheatmap(metaGeneCor.r,show_rownames = F,show_colnames = F) 因为样本比较大,pheatmap进行可视化的稍微有点慢,需要等待,因为样本信息很多,没有办法完全展示基因和代谢物信息,故使用show_rownames和show_colnames 参数不展示行名和列名。
感谢阅读!