R语言-Go分析结果的富集

R语言 富集分析的结果聚类

Distinct placental molecular processes associated with early-onset and late-onset preeclampsia
在这里插入图片描述

这篇文章的Fig4,作者在对进行EOSPE和LOSPE进行GO富集分析后,为了总结过多的GO条目,结合了Cytoscape和Jaccard得分,进行了“二次富集”,分为了5+2组。
Cytoscape大家都很熟悉。由于文章中没有细述相关步骤,这里就主要推断下计算Jaccard的步骤,仅抛砖引玉,以及提出相应的解决办法,希望大家可以批评指正。

1. 准备数据

我们只分析下作者分为两组的LOSPE部分。

library(vegan)
library(data.table)
library(dplyr)
temp <- read.csv(file = './thnov11p5028s9.CSV') #文章数据
exprMatrix <- read.csv(file = './1.CSV') #整理的92个差异基因,行名为GOterm,列名为GeneSymbol
rownames(exprMatrix) <- exprMatrix[,1]
exprMatrix <- exprMatrix[,-1]
identical(temp$ID, rownames(exprMatrix))

首先全部置0。
在这里插入图片描述

2. 判断差异基因是否在该条目上

#判断该基因是否在条目中,若是则为1.
for (i in 1:nrow(exprMatrix)) {
  for (j in 1:ncol(exprMatrix)) {
    if(colnames(exprMatrix)[j] %in% tstrsplit(temp[i,]$GeneSymbol, "/", fixed=TRUE)){
      print(j)
      exprMatrix[i, j] <- 1
    }
  }
}

在这里插入图片描述

3. 计算Jaccard得分

d <- vegdist(exprMatrix, method = "jaccard")
d
# 画出谱系图
fit <- hclust(d, method = "single")
plot(fit, labels=rownames(data),cex=0.5)
abline(h = 0.5)

在这里插入图片描述

4. 查看结果及分析

table(cutree(fit,k=8)) # 以0.5为标准,k = 8
result <- cutree(fit,k=8)
cluster <- as.data.frame(result)
write.csv(cluster,"./clusterByjaccard.csv",row.names = F)

可以看到8个cluster的频数:
请添加图片描述
接下来就是Cytoscape部分不再详述,参考部分有更好的文章。当然与文章作者的分为两组的结果相比,我们的2,4,5,7cluster就是作者的GroupB

clusterB <- temp[temp$Groups == 'GroupB',]$ID
clusterJa <- cluster[cluster$Var1 %in% clusterB,]
table(clusterJa$result)

在这里插入图片描述
至于如何挑选的这四组文章中没有细述,按表达是结合了Cytoscape的绘图,或许也有先验知识的参与,各位大佬们有什么见解吗?

PS:simplifyEnrichment这个包就是开发出用以GOterm聚类的,大家可以试试看。

参考文章:
simplifyEnrichment,一个对GO富集结果进行聚类和可视化的工具
Jaccard系数聚类分析-R语言

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值