R语言进行GSEA分析

作者: CrimsonUMO | 来源:发表于2022-05-08 23:37 被阅读0次

先加载R包

> library(GSEABase)
> library(limma) 
> library(clusterProfiler)
> library(enrichplot)

第一步:差异分析

首先是用limma包做差异分析的过程

#差异分析:
dat <- exprSet
group_list <- c(rep("Control",3),
                rep("Combine",3))
group_list <- factor(group_list,ordered = F)
design <- model.matrix(~factor( group_list ))
fit=lmFit(dat,design)
fit=eBayes(fit)
options(digits = 4)
topTable(fit,coef=2,adjust='BH')
deg=topTable(fit,coef=2,adjust='BH',number = Inf)
head(deg)

这里由于做的时候是FPKM数据,所以参考了生信技能树的教程:

https://mp.weixin.qq.com/s/BEvFqu-BNA9lWFNaE9Jkdw

第二步:获取基因集

MSigDB可以方便地获取GMT文件,读进来

> geneset <- read.gmt("./h.all.v7.5.1.symbols.gmt")

第三步:进行GSEA

> geneList <- deg$logFC
> names(geneList) <- toupper(rownames(deg))
> geneList <- sort(geneList,decreasing = T)

GSEA输入的geneList是排序后的gene名,因此这里需要对geneList进行一个排序。实际上得到差异分析的结果后,只需要logFC和gene名就可以构建geneList进行GSEA富集分析了。

> gsea_results <- GSEA(
+   geneList = geneList,
+   TERM2GENE = geneset,
+   verbose = F,
+   eps=1e-10
+ )
Warning messages:
1: In serialize(data, node$con) :
  'package:stats' may not be available when loading
2: In serialize(data, node$con) :
  'package:stats' may not be available when loading
3: In fgseaMultilevel(...) :
  For some pathways, in reality P-values are less than 1e-10. You can set the `eps` argument to zero for better estimation.

P值太小时可能会报warning,不过不影响。可以把eps这个参数设置成0。得到的结果是一个gseaResult对象

> class(gsea_results)
[1] "gseaResult"
attr(,"package")
[1] "DOSE"

可视化

接下来可以对这个gseaResult对象进行可视化。

> for (i in 1:length(list)) {
+   p <- gseaplot2(x=gsea_results,geneSetID=paste("HALLMARK_",list[i],sep="")) 
+   d <- paste("./",list[i],".pdf",sep="")
+   pdf(file=d,
+       family = "Times",width=10,height = 6)
+   print(p)
+   dev.off()
+ }

这里循环读取感兴趣的每一个基因集进行作图,并输出为PDF。


GSEA

当然也可以多个图放在一起

> p <- gseaplot2(gsea_results,
+           gsea_results@result[["ID"]][1:3],
+           pvalue_table = TRUE)

比如这个样子


gseaplot2

相关文章

  • R语言进行GSEA分析

    先加载R包 第一步:差异分析 首先是用limma包做差异分析的过程 这里由于做的时候是FPKM数据,所以参考了生信...

  • GSEA基因富集分析实战

    GSEA在很多文献中都有使用到,可以使用R分析,也可以使用GSEA软件进行分析,个人觉得用软件分析出来的图好看些,...

  • 第三步:简单的GEO数据的KEGG分析和GSEA分析

    KEGG分析 按照count数目进行KEGG count数目进行kegg,并且可视化 GSEA分析 GSEA与KE...

  • GSVA + limma进行差异通路分析

    一般我们做GSEA都是先进行差异基因分析,然后取差异倍数排序结果进行GSEA。但如果你没有条件进行差异基因分析也可...

  • R实战 | 森林图绘制

    R实战 | 森林图绘制 回答一下R绘图实战|GSEA富集分析图 - 知乎 (zhihu.com)[https://...

  • 使用log2FC排序的基因集进行GSEA分析

    目前做GSEA主要有两种办法,一种是使用GSEA的java软件,另一种是使用R语言包,当时还有在线的工具做GSEA...

  • R语言进行ssGSEA分析

    富集分析 先加载相关的package 然后提取想要的基因集,变成list 然后进行富集分析 需要注意的点:1.ex...

  • R语言网状Meta 分析-原理和实战

    R语言meta分析⑴meta包 R语言meta分析(2)单个率的Meta分析 R语言meta分析(3)亚组分析 R...

  • GSVA计算原理

    GSVA的用途 一般我们做GSEA都是先进行差异基因分析,然后取差异倍数排序结果进行GSEA。但如果你没有条件进行...

  • 专题:富集分析

    GSEA基因集富集分析 1、用clusterProfiler做GSEA - 简书 2、GSEA-基因集富集分析 -...

网友评论

    本文标题:R语言进行GSEA分析

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