美文网首页
通过R分析物种与代谢物的相关性及绘制热图

通过R分析物种与代谢物的相关性及绘制热图

作者: 队长的生物实验室 | 来源:发表于2022-06-22 11:35 被阅读0次

在16s与代谢组贯穿分析中,相关性热图是一个重要的分析手段,主要用于逐一呈现细菌物种与代谢物间的相关性高低,是筛选潜在关联的物种与代谢物的主要途径,对于下游的实验起到指导意义。另外通过相关性热图表示显著性(p)值更显直观。本文将介绍R中具体操作。

1.加载R包。

library(psych)  #psych包用于计算相关性、p值等信息

library(pheatmap) #用于绘制热图

library(reshape2) #reshape2包用于输出数据的整合处理

2.读入数据。

df1 <- read.csv("d:/Rdata/R-compounds.csv",header=T,row.names = 1) #读入化合物丰度列表
df2 <- read.csv("d:/Rdata/R-taxon.csv",header=T,row.names = 1) #读取微生物丰度信息表
代谢物丰度格式(选自其他文章) 微生物丰度格式(选自其他文章)
3.计算相关性及p值。
res <- corr.test(df1,df2,method = "pearson",alpha = 0.05) #method可选“pearson”、“spearman”、“kendall”
result_p <- res$p #提取p值
result_r <- res$r #提取cor值
p.out<-cbind(rownames(result_p),result_p) #输出p值
r.out<-cbind(rownames(result_r),result_r) #输出cor值
write.csv(p.out,"pout.csv",row.names = F)
write.csv(r.out,"rout.csv",row.names = F)

4.整合数据。

df <-melt(result_r,value.name="cor")
df$pvalue <-as.vector(result_p)  #宽格式转长格式
df2 <- subset(df,abs(df$cor)>0.75&df$pvalue<0.05)#筛选
write.csv(df,"melt_p_r.csv",row.names = F)#输出长格式
write.csv(df2,"melt_p005_r075.csv",row.names = F)

5.绘制显著性及热图。

if (!is.null(result_p)){
  ssmt <- result_p< 0.01
  result_p[ssmt] <-'**'
  smt <- result_p >0.01& result_p <0.05
  result_p[smt] <- '*'
  result_p[!ssmt&!smt]<- ''
} else {
  result_p <- F
}  #判断p值大小,若p<0.01,则'**',若0.01<p<0.05,则'*',否则无显著。

pheatmap(result_r,scale = "row",cluster_row = T, cluster_col = T, border=NA,display_numbers = result_p, number_color = "white")#根据自己的喜好绘制热图
结果展示

相关文章

网友评论

      本文标题:通过R分析物种与代谢物的相关性及绘制热图

      本文链接:https://www.haomeiwen.com/subject/apipvrtx.html