美文网首页富集分析TCGA生信
RNA-seq学习:No.6富集分析--GESA

RNA-seq学习:No.6富集分析--GESA

作者: 小贝学生信 | 来源:发表于2020-03-17 09:34 被阅读0次

如前所说,过表达富集分析有不少缺点。因此以GSEA为代表的FCS方法也是人们所倾向的选择。接下来将简单了解下方法原理,并利用差异分析数据实操一遍~

1、基础知识

GSEA,gene set enrichment analysis 属于第二代富集分析方法--FCS(Functional Class Scoring)功能集打分的范畴。

(1) 原始分析数据

为差异分析所得到的所有有效结果(不需要过滤),取其中的的基因名(需要是ENTREZID格式)与log2FoldChange列,并按照log2FoldChange值进行从大到小的排序;所得到的基因列表即是GSEA分析所需要的。(顶部可以看做是上调的差异基因,而底部是下调的差异基因)

(2)GSEA的假设检验

  • 原假设为某个go term与 pathway通路基因集里的基因在排序后的基因列表中随机分布。
  • 如果某个基因集下的所有基因是否在这个排序列表的顶部或者底部富集,具有显著意义,就可拒绝原假设。
  • 如果在顶部富集,从总体上看,该基因集是上调趋势,反之,如果在底部富集,则是下调趋势。

(3)富集分数ES(Enrichment score)

  • 富集分数是判断显著性的重要指标。打分机制(如下图)简单来说就是:基于某一基因集(Gene set),重头到尾完整遍历一遍排序好的基因列表。如果遇见基因列表基因在基因集范围内就加分(hit),不在(missing)就减分。具体加减分的多少标准就不细究了。


    ES
  • 最终的得到的富集分数为遍历过程中绝对值最大的值,Leading Edge Subset为对ES值有贡献的基因。
  • 若ES为正值,则一般峰在左边,Leading Edge Subset则为最左边到出现峰值所在基因的基因集范围内的集合(结合下图进行理解)


    ES
  • 若ES为负值,则一般峰在右边(倒峰),Leading Edge Subset则为最右边到出现峰值所在基因的基因集范围内的集合。

2、R包分析

基因列表准备

如上所述,GSEA分析的基因名格式需要为ENTREZID格式,并且不知由于什么原因我之前得到得316个原始ENSEMBL差异基因仅转换成267个ENTREZID格式基因(之前做过表达基因也是的),这就给取数据带来一点麻烦。

mydata=read.table("results.csv",header=TRUE,
                  sep=",",stringsAsFactors=FALSE)
gene=data.frame(mydata$X,mydata$log2FoldChange,stringsAsFactors=FALSE)
names(gene)[1]="ENSEMBL"  #修改列名,后续合并表格需要
library(org.Hs.eg.db)  #使用select()函数转换ID
geneID=select(org.Hs.eg.db,keys=mydata$X,columns="ENTREZID",keytype="ENSEMBL")
geneID=na.omit(geneID)  #仅有267个了
library(dplyr)
tmp=left_join(geneID,gene,by="ENSEMBL")
genelist=tmp$mydata.log2FoldChange
names(genelist)=tmp$ENTREZID
head(genelist)
genelist_sort=sort(genelist,decreasing = T)
head(genelist_sort)

以上我们就取得了按照log2FoldChange降序排列的差异基因列表(267个)


head(genelist_sort)

2.1 GO 基因集

library(clusterProfiler)
go.BP <- gseGO(genelist_sort ,
                   ont = "BP", 
                   OrgDb = org.Hs.eg.db,
                   minGSSize    = 10,  #设置基因集范围
                   maxGSSize = 500,
                   pvalueCutoff = 1)
dim(go.BP)
go.BP.df=as.data.frame(go.BP)
  • setSize为go term基因集与基因列表交集的基因;

  • NES 为归一化的富集分数;

  • core_enrichment为Leading Edge Subset里的基因;

  • leading_edge列与rank列的含义暂时还未理解,存疑


    go.BP.df
  • 得到结果,可根据P值的筛选感兴趣的Go term,并将其可视化,如下--

gseaplot(go.BP,geneSetID = "GO:0007610")

如下图,可分为两个部分

  • 下图绿色折线图即为根据GO:0007610基因集对基因列表打分过程。纵轴0.0水平刻度即为对应二者交集基因,红色虚线即指明ES,而红线往后的7个基因就是Leading Edge Subset。总体来看就是差异基因在这个go term基因集中是低表达的。
  • 上图中表示对应交集基因的log2FoldChange值。


    GO:0007610

2.2 KEGG 基因集

kegg <- gseKEGG(genelist_sort ,
              organism     = 'hsa',
              nPerm        = 1000,
              minGSSize    = 10,
              maxGSSize = 500,
              pvalueCutoff = 1,
              verbose      = FALSE)
dim(kegg)
kegg.df=as.data.frame(kegg)

结果仅发现两个富集pathway结果,而且只有第一个的p值还有点可靠(0.12),画个图看看吧~


hsa01100

以上就是GSEA分析的一些认识与操作,当然也有一些在线工具可以可以使用。重在理解与过表达分析的区别,从上面过程来看基因表达值的属性信息(log2FoldChange), 而且以待测基因功能整体为对象来进行检验的, 也使得检验结果更加灵敏,但也存在一些不足,这里就不叙述啦,详见参考链接。


参考文章
1、功能富集分析概述 - 简书
2、刘小泽学习GSEA - 简书
3、GSEA分析结果详细解读 - 简书

相关文章

  • RNA-seq学习:No.6富集分析--GESA

    如前所说,过表达富集分析有不少缺点。因此以GSEA为代表的FCS方法也是人们所倾向的选择。接下来将简单了解下方法原...

  • GESA (基因集富集分析)

    1. GESA 介绍 基因集富集分析(Gene Set Enrichment Analysis,GSEA)是麻省理...

  • RNA-seq分析实战

    在最最最开始!放上借鉴引用的文章链接!(后边还有)RNA-seq分析:从软件安装到富集分析详细过程RNA-seq实...

  • RNA-seq分析简洁版

    前面RNA-seq分析:从软件安装到富集分析部分已经把转录组全部流程走完了一遍,这次利用RNA-seq(2)-2:...

  • RNA-seq分析:从软件安装到富集分析

    从安装软件到富集分析,完整流程链接整理: RNA-seq(1) :用conda安装RNA-seq所需要的工具 RN...

  • R实战 | 用R也可以完成的RNA-Seq分析-5

    本文将介绍RNA-seq基因富集分析的实战代码。原文地址:https://bioinformatics-core-...

  • RNA-seq(10):KEGG通路可视化:gage和pathv

    这部分直接从上部分RNA-seq(9):富集分析(功能注释)的数据而来,当然如果你上部分数据存盘了,这部分直接导入...

  • RNA-seq(9):功能富集分析

    这部分开始进行基本的富集分析,两类 A:差异基因富集分析(不需要表达值,只需要gene name) B: 基因集(...

  • bulk RNA-Seq(9)富集分析

    欢迎关注Bioinfor 生信云! 这一期我们来讲讲富集分析。 构建OrgDB OrgDB是bioconducto...

  • 富集分析

    写在前面: 1某些富集代码 |关于GSEA|某些主流富集分析工具 两类富集分析 A:差异基因富集分析(不需要...

网友评论

    本文标题:RNA-seq学习:No.6富集分析--GESA

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