专栏首页生信补给站clusterProfiler|GSEA富集分析及可视化

clusterProfiler|GSEA富集分析及可视化

GSEA(Gene Set EnrichmentAnalysis),即基因集富集分析,无需设定阈值来区分上调下调基因,使用所有的基因进行分析。

GO 和 KEGG 可参考:R|clusterProfiler-富集分析

一 准备数据

1.1,加载R包,数据
library(org.Hs.eg.db)
library(clusterProfiler)
library(pathview)
library(enrichplot)

data <- read.csv("limmaOut.csv",header=TRUE)
head(data)

GSEA分析只需要两列信息,基因列和logFC(不同软件的差异分析这一列的名字会有差别)。

1.2 ID转化

基因名是symbol,将之转换为entrezid格式

gene <- data$SYMBOL
#开始ID转换,会有丢失
gene=bitr(gene,fromType="SYMBOL",toType="ENTREZID",OrgDb="org.Hs.eg.db") 
#去重
gene <- dplyr::distinct(gene,SYMBOL,.keep_all=TRUE)

#合并data 和 entrezid

data_all <- data %>% 
  inner_join(gene,by="SYMBOL")
dim(data_all)
head(data_all)
1.3 基因列表排序

将基因按照logFC进行从高到低排序,只需要基因列和logFC即可

data_all_sort <- data_all %>% 
  arrange(desc(logFC))
head(data_all_sort)

geneList = data_all_sort$logFC #把foldchange按照从大到小提取出来
names(geneList) <- data_all_sort$ENTREZID #给上面提取的foldchange加上对应上ENTREZID
head(geneList)

#结果为排序的logGC,names为ENTREZID 345557 1308 55220 8788 6770 8745 2.425345 1.938050 1.831625 1.825617 1.786812 1.767371

二 GSEA分析

2.1 GSEA分析

需要gmt文件,http://www.gsea-msigdb.org/gsea/downloads.jsp路径下载,选择合适的

kegg_gmt <- read.gmt("c2.cp.biocarta.v7.4.entrez.gmt") #读gmt文件
gsea <- GSEA(geneList,
             TERM2GENE = kegg_gmt) #GSEA分析
head(gsea)

其中:

  • ID :信号通路
  • Description :信号通路的描述
  • setSize :富集到该信号通路的基因个数
  • enrichmentScore :富集分数,也就是ES
  • NES :标准化以后的ES,全称normalized enrichment score
  • pvalue:富集的P值
  • p.adjust :校正后的P值
  • qvalues :FDR (false discovery rate)错误发现率
  • rank :排名
  • core_enrichment:富集到该通路的基因列表。

可视化-点图

dotplot(gsea)
2.2 GSEA-GO分析
gse.GO <- gseGO(
  geneList, #geneList
  ont = "BP",  # 可选"BP"、"MF"和"CC"或"ALL"
  OrgDb = org.Hs.eg.db, #人 注释基因
  keyType = "ENTREZID",
  pvalueCutoff = 0.05,
  pAdjustMethod = "BH",#p值校正方法
)
head(gse.GO,2)
2.3 GSEA-KEGG分析
gse.KEGG <- gseKEGG(geneList, 
                    organism = "hsa", # 人 hsa
                    pvalueCutoff = 1,
                    pAdjustMethod = "BH",) #具体参数在下面
head(gse.KEGG)
#为方便展示,最后一列暂不展示
head(gse.KEGG)[1:10]

三 GSEA可视化

使用gseaplot2函数进行可视化

3.1 简单可视化
gseaplot2(gse.KEGG,
          1) #展示第一个通路

可以进行一些调整以接近文献

1)修改GSEA线条颜色

2)添加P值的table

3)展示指定的通路

4)展示多个通路

5)只展示上两部分

3.2 展示指定通路
gseaplot2(gse.KEGG,
          title = "Olfactory transduction",  #设置title
          "hsa04740", #绘制hsa04740通路的结果
          color="red", #线条颜色
          base_size = 20, #基础字体的大小
          subplots = 1:2, #展示上2部分
          pvalue_table = T) # 显示p值
3.3 展示多个GSEA结果
A:使用数字的方式
gseaplot2(gse.KEGG,
          1:3, #绘制前3个
          pvalue_table = T) # 显示p值
B:使用向量指定通路
gseaplot2(gse.KEGG,
          c("hsa04740","hsa05310"), #指定通路向量
          pvalue_table = T) # 显示p值
C:点 形式
gseaplot2(gse.KEGG,          1:5, #按照第一个作图          ES_geom = "dot",          base_size = 20,
          pvalue_table = T) 

应该和文献中的图很接近了,剩下的就是用自己的数据去尝试了。

四 参考资料:

http://yulab-smu.top/clusterProfiler-book/

PS:有个交流的讨论组,想沟通交流的,后台回复”入群“。

◆ ◆ ◆ ◆ ◆

本文分享自微信公众号 - 生信补给站(Bioinfo_R_Python),作者:生信补给站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 单基因生信分析流程(4)单基因的下游通路GO、KEGG或者GSEA

    由于clusterProfiler富集分析推荐的输入文件是Entrez ID,因此这里提取的是Entrez ID,接下来就可以进行富集分析了:

    用户1359560
  • Y叔的clusterProfiler承包了富集分析结果的可视化

    见Y叔的网络在线书籍《clusterProfiler: universal enrichment tool for functional and compara...

    生信技能树
  • 关于GSEA的几点补充说明

    之前的文章中介绍了GSEA软件的使用和结果解读,但是有几点漏掉了,在本文中补充一下。首先是Leading Edge对应的3个统计量,示例如下

    生信修炼手册
  • GO、GSEA富集分析一网打进

    富集分析是生物信息分析中快速了解目标基因或目标区域功能倾向性的最重要方法之一。其中代表性的计算方式有两种: 一是基于筛选的差异基因,采用超几何检验判断上调或下调...

    生信宝典
  • clusterProfiler包进行KEGG,GO,GSEA富集分析

    本地的KEGG分析参考文章:KEGG数据库使用及通路分析教程,GO参考文章:FunRich数据库:一个主要用于基因和蛋白质的功能富集以及相互作用网络分析的独立的...

    DoubleHelix
  • 基因富集分析算法介绍

    昨天我们介绍了富集分析的基本的内容:GO分析和KEGG分析都是啥?。但是富集分析还是有很多不同的算法的,对于主要的算法过程其实不用太多了解,这个由专...

    医学数据库百科
  • 用clusterProfiler做GSEA(一)

    GSEA的介绍:https://www.omicsclass.com/article/230 GSEA有相应的软件,其实clusterProfiler除了做g...

    生信编程日常
  • WebSestalt富集分析软件

    昨天给大家简单的介绍了一下富集分析的常见算法(基因富集分析算法介绍),但是具体要怎么实现基因的富集分析呢?今天给大家推荐个软件,

    医学数据库百科
  • 差异分析得到的结果注释一文就够

    通过前面的讲解,我们顺利的了解了GEO数据库以及如何下载其数据,得到我们想要的表达矩阵,也学会了两个常用的套路分析得到的表达矩阵,就是GSEA分析和差异分析。 ...

    生信技能树
  • 生信文献 | Sirt6通过介导PI3K/Akt信号通路促进弥漫性大B细胞淋巴瘤的肿瘤发生和耐药性

    文章:Sirt6 promotes tumorigenesis and drug resistance of diffuse large B-cell lymp...

    DoubleHelix
  • 三阴性乳腺癌表达数据探索笔记之GSVA分析

    GSVA对数据库中的每一个通路在每个样本中算了一个值,相当于GSEA的enrichment score, 如果得分越高,说明这个通路在该样本中被改变的越严重。

    生信技能树
  • 三阴性乳腺癌表达矩阵探索笔记之GSEA

    基于超几何分布检验的富集分析做KEGG数据库的时候,它总共只有七千多个基因,人类总的背景基因有两万多个,被KEGG记住的只有6500个(一直在增加),假设一条通...

    生信技能树
  • webgestalt:基因富集分析的在线工具

    在组学数据分析中,基因富集分析是最常用的方法之一,所有的基因数据分析最终都要落实到功能上去,富集分析作为一种最基础的功能研究方法,通过go, kegg path...

    生信修炼手册
  • “个性化”GSEA分析 - Do GSEA with specified gene set

    首先,让我们再简单回顾下GSEA的操作过程,(1)我们需要按顺序排列好的gene list用于分析,(2)需要参考基因集pre-defined gene set...

    用户6317549
  • 教你如何预测参与调节差异基因的转录因子

    KnockTF(http://www.licpathway.net/KnockTF/search.php)数据库就是基于这个目的构建的数据库。关于这个数据库,我...

    DoubleHelix
  • 在线功能富集分析与qPCR引物设计

    之前写的RNA-seq数据差异表达分析一文中提到,筛选得到差异表达基因list后,需要进一步分析这些基因参与了哪些功能,因此要进行后续的一些分析,比如功能富集分...

    阿凡亮
  • GSEA分析中的gmt格式文件如何自定义

    在我前面的文章:clusterProfiler包进行KEGG,GO,GSEA富集分析,有介绍在GSEA分析中,在MSigDB(Molecular Signatu...

    DoubleHelix
  • GEO数据挖掘6

    使用SigDB(Molecular Signatures Database)基因集进行富集分析,包含8个系列

    火星娃统计
  • GSVA或者GSEA各种算法都是可以自定义基因集的

    GSVA分析的文章发表于2013年,GSVA: gene set variation analysis for microarray and RNA-Seq d...

    生信技能树

扫码关注云+社区

领取腾讯云代金券