精华内容
下载资源
问答
  • 富集分析原理
    万次阅读
    2021-01-29 16:20:44

    KEGG 通路富集分析

    KEGG数据库

    KEGG(京都基因和基因组百科全书)数据库是日本京都大学生物信息学中心的Kanehisa实验室于1995年建立了的生物信息学数据库。现在是基因组测序和其他高通量实验技术产生的大规模分子数据集的整合和解释的重要生物信息数据参考知识库。KEGG是一个整合了基因组、化学和系统功能信息的数据库。其中最核心的为 KEGG PATHWAY和KEGG ORTHOLOGY 数据库。而在 KEGG PATHWAY 数据库中,将生物代谢通路划分为 6 类,分别为:细胞过程(Cellular Processes)、环境信息处理(Environmental Information Processing)、遗传信息处理(Genetic Information Processing)、人类疾病(Human Diseases)、新陈代谢(Metabolism)、生物体系统(Organismal Systems)。

    KEGG作为参考知识库,可以用于预测各种细胞过程的蛋白质相互作用网络,整合了当前关于分子相互作用网络的知识,如路径和复合物,以及关于基因组计划产生的基因和蛋白质的信息(GENES / SSDB / KO数据库)和有关生化化合物和反应的信息。因此在生物信息学分析过程中,KEGG通路富集分析常常应用于差异表达基因的功能注释,了解差异表达基因的相关功能与作用通路。

    图例
    FIG 1. KEGG pathway enrichment analysis of differentially expressed genes 在这里插入图片描述

    • 横轴表示富集因子,纵轴表示路径。
    • 不同的颜色代表不同adjusted p-value,从蓝色到红色,表示adjusted p-value从大到小,富集程度越来越显著。
    • 原点的大小代表富集到此通路的基因数目。

    参考文献

    1. Peng T, et al. KEGG pathway enrichment analysis of differentially expressed genes between S28 and S6[J]. PLOS ONE. (2017). https://doi.org/10.1371/journal.pone.0178008.g004.
    更多相关内容
  • 基因富集分析是指对于给定一组基因根据基因组注释信息(GO、KEGG)对基因进行聚类分析,即给定的基因是不是GO中的一个功能(或KEGG中的一个通路)。 基因的功能富集的目的说明给定的基因集对哪些功能的影响有针对性...

    概念:

    基因富集分析是指对于给定一组基因根据基因组注释信息(GO、KEGG)对基因进行聚类分析,即给定的基因是不是GO中的一个功能(或KEGG中的一个通路)。

    基因的功能富集的目的是说明给定的基因集对哪些功能的影响有针对性的,不是随机影响的。

    原理:

    基因富集分析是通过研究给定的基因集在功能节点上是否过出现得到关注的基因集显著注释的功能节点。通常利用超几何分布等方法计算给定基因在某个功能(或通路)上的P值,判断给定的基因在功能(或通路)的基因数目超过了随机的期望,是一个小概率事件

    变量差异表达分析
    N基因组所有基因、所有分析的基因
    x差异表达基因集中有功能F的基因
    MN中具有某种功能(F)的基因总数
    K差异表达基因

     clusterProfiler包进行GO、KEGG富集分析:

    1.加载R包,下载R包请参考:

    富集分析--R包--clusterProfiler下载安装与报错分析解决_Tian問的博客-CSDN博客

    #加载包
    library(clusterProfiler)
    library(org.Hs.eg.db)
    library(topGO)

    ●  clusterProfiler包由Y叔开发,可以进行基因及基因簇的分析和基因谱功能可视化,功能强大。

    ●   org.Hs.eg.db人类的基因组注释包进行基因ID的转换

    ●  topGO包辅助绘制GO富集分析结果的有向无环图

    2、数据准备,筛选感兴趣的基因集

    #自行选择筛选自己感兴趣的基因集
    gene_set <- rownames(pro_result[which(pro_result$FDR < 0.01 & abs(pro_result$log2FC) >= 2),])

    ●  根据自己的需求获取差异基因

    3、基因ID转换

    gene_symbol <- bitr(geneID = gene_set,  #感兴趣的基因集
                        fromType="ENSEMBL",   #输入ID的类型
                        toType=c("SYMBOL", "ENTREZID"),   #输出ID的类型,可为多个
                        OrgDb="org.Hs.eg.db")  #物种注释数据库

    ●  可能出现部分ID无法匹配的结果,通常输出的ID少于输入的ID

    4、GO富集分析

    gene <- gene_symbol[,3]
    CC <- enrichGO(gene = gene,  #基因列表(转换的ID)
                   keyType = "ENTREZID",  #指定的基因ID类型,默认为ENTREZID
                   OrgDb=org.Hs.eg.db,  #物种对应的org包
                   ont = "CC",   #CC细胞组件,MF分子功能,BF生物学过程
                   pvalueCutoff = 0.01,  #p值阈值
                   pAdjustMethod = "fdr",  #多重假设检验校正方式
                   minGSSize = 1,   #注释的最小基因集,默认为10
                   maxGSSize = 500,  #注释的最大基因集,默认为500
                   qvalueCutoff = 0.01,  #p值阈值
                   readable = TRUE)  #基因ID转换为基因名

    #展示GO的CC的富集结果result
    df <- CC@result

    ●  ID:GO数据库ID

    ●  Decription:基因功能描述

    ●  GeneRAatio:K/x

    ●  BgRatio:M/N

    ●  pvalue,qvalue:p值和校正过的p值

    ●  count:差异基因的数目

     5、GO富集分析可视化

    5.1绘制点图

    dotplot(CC,  #GO富集分析结果
            x = "GeneRatio",  #横坐标,默认GeneRation,也可以为Count
            color = "p.adjust",  #右纵坐标,默认p.adjust,也可以为pvalue和qvalue
            showCategory = 20,  #展示前20个点,默认为10个
            size = NULL,  #点的大小
            title = "CC_dotplot"  #设置图片的标题
            )

     5.2绘制条状图

    barplot(CC,  #GO富集分析结果
            x = "Count",  #横坐标,默认Count,也可以为GeneRation
            color = "p.adjust",  #右纵坐标,默认p.adjust,也可以为pvalue和qvalue
            showCategory = 20,  #展示前20个,默认为10个
            size = NULL,  
            title = "CC_barplot"  #设置图片的标题
            )

     5.3GO富集分析的有向无环图(DAG)

    plotGOgraph(CC,  #输出enrichGO或gseGO的有向无环图(与输入的对象对应)
                firstSigNodes = 10,  #显著性节点的个数,默认10个
                useInfo = "all",  
                sigForAll = T,  #是否在所有节点展示score/p-value
                useFullNames = T,  #是否使用全称
                )

     ●  在GO富集分析的有向无环图(DAG)中,方形是默认输出的显著性最高的前10个节点;且颜色的深浅表示显著性,颜色越深,越显著。

    ●  图形中内容的含义:

     自上而下,依次为:

    ●  GO数据库中编号(ID)

    ●  节点功能注释

    ●  p值

    ●  K/M

     6、KEGG富集分析

    KEGG<- enrichKEGG(gene = gene,   #基因列表(同GO) 
                      organism = "hsa",  #物种
                      keyType = "kegg",  #指定的基因ID类型,默认为kegg
                      minGSSize = 1, 
                      maxGSSize = 500,
                      pvalueCutoff = 0.01,  
                      pAdjustMethod = "fdr",
                      qvalueCutoff = 0.01)

     

     

    #展示GO的CC的富集结果result
    df <- KEGG@result

      7、KEGG富集分析可视化

    KEGG可视化的点图和条图和GO富集分析可视化一致,不在展示,且KEGG不可绘制DAG图

     

    GO和KEGG富集分析还可以借助其他R包绘制诸如热图、弦图,大家可自行学习


    感谢您的查看,致谢!(`・ω・´)ゞ(`・ω・´)ゞ

    欢迎关注公众号《生信Tian問的笔记》ε≡٩(๑>₃<)۶ 一心向学

     

     

     

    展开全文
  • 具体的统计方法很简单,这篇笔记里面的代码可以从零搭建一个富集分析工具。 后台回复20211007获取本文的测试数据和代码,以及(单细胞)转录组分析中可能用到的GO KEGG富集分析代码(这部分本文不演示)。 关于...

    一般做完差异分析都会做这一步,目的是找到差异基因富集到的通路,进而与生物学意义联系起来。具体的统计方法很简单,这篇笔记里面的代码可以从零搭建一个富集分析工具。

    后台回复20211007获取本文的测试数据和代码,以及(单细胞)转录组分析中可能用到的GO KEGG富集分析代码(这部分本文不演示)。

    关于Gene Ontology (GO), KEGG这些背景就不讲了,网上很多资料。

    将富集分析中的问题抽象出来,其实就是下图的“摸球”问题。

    蓝色方框中的球是所有的基因【共N个】,在探究某个特定通路P时,通路里面涉及到的基因用红色表示【共M个】。绿色圆圈是一次摸球事件,用来表示做了一次差异分析得到的基因【共n个】,这些基因中,有属于通路P的(红色球)【共k个】,有不属于的(黑色球)。

    用摸球问题中的语言再描述一次:袋子中共有黑球和红球N个,其中红球M个。某次抽样中,一共摸球n个,其中红球k个,问在这次摸球中,红球的占比是否显著高于袋子中红球的占比? (以前学摸球问题/超几何分布的时候,可能只求概率,没有进一步到这个统计检验)

    回答这个问题,需要求出问题中这个事件的概率以及更极端事件的概率之和,也就是p值,小于0.05或者0.01就能认为是显著了。

    1. 一个通路,计算p值

    接下来以一个GO term (GO_extracellular_matrix_organization)为例,计算p值。 用的通路基因集是小鼠 GO BP的基因集,差异基因集是单细胞转录组分析中一个cluster的高表达基因

    library(tidyverse)
    library(clusterProfiler)
    
    gmt.df=read.gmt("Mm.c5.bp.v7.1.SYMBOL.gmt")
    deg=read.table("test_deg.txt",header = T,sep = "\t",stringsAsFactors = F)
    deg=deg[deg$gene %in% gmt.df$gene,]

    这种情况下,前面说的几个参数的值如下:

    • 全部球的个数/全部基因数: N=length(unique(gmt.df$gene))
    • 全部红球的个数/通路基因集的基因数: one.set=gmt.df[ gmt.df$term %in% c("GO_extracellular_matrix_organization") ,] M=length(one.set$gene)
    • 摸球数/差异基因数: n=length(deg$gene)
    • 摸球中红球的个数/差异基因中属于这个通路的基因数: k=sum(deg$gene %in% one.set$gene)

    N M n k的值分别为: 23210, 271, 47, 6

    求p值之前,先看一下满足N M n这三个参数的超几何分布,在不同的k值之下的概率:

    df1=data.frame(x=1:47,y=dhyper(x=1:47, M, N-M, n))
    df1%>%ggplot(aes(x,y))+geom_point()+
      geom_line()+
      geom_vline(xintercept=k,color="red",linetype=5)+  #这里k等于6,其作为阈值
      theme_bw()+
      theme(panel.grid = element_blank())

    dhyper()用来求概率,四个参数分别是:摸球中红球个数的向量,袋中红球数,袋中黑球数,摸球数

    我们要计算的就是红线以及右边那些红球数对应的概率之和,如下:

    > phyper(k-1,M, N-M, n, lower.tail=FALSE)
    [1] 1.722659e-05

    lower.tail=FALSE,计算的是P[X > x],即大于第一个参数的概率之和。上面的代码第一个参数写的是k-1,因为我们需要求k以及k右边的概率之和。

    以上是对一个通路求p值


    2. 多个通路,依次计算p值

    如果是多个通路,需要循环操作,依次对每个通路进行富集分析。 下面的演示用到的差异基因集和GO BP基因集同上

    分析哪些pathway?要满足两个条件:

    • 通路里面基因的数量满足一定要求
    • 至少和deg有基因交集

    下面的代码就是对通路做过滤的

    bp.stat=as.data.frame(table(gmt.df$term))
    colnames(bp.stat)[1]="pathway"
    bp.stat=bp.stat%>%filter(Freq >= 2 & Freq <= 2000)
    
    tmp.df=gmt.df
    tmp.df$TF=tmp.df$gene %in% deg$gene
    tmp.stat=as.data.frame(tmp.df %>% dplyr::group_by(term) %>% dplyr::summarize(counts=sum(TF)))
    tmp.stat=tmp.stat%>%filter(counts > 0)
    keep.pw=sort(intersect(bp.stat$pathway,tmp.stat$term))

    下面就是循环求p值了

    N=length(unique(gmt.df$gene))
    n=length(deg$gene)
    term=c()
    pvalue=c()
    
    for (i in keep.pw) {
      one.set=gmt.df[ gmt.df$term %in% i ,]
      M=length(one.set$gene)
      k=sum(deg$gene %in% one.set$gene)
      one.pvalue=phyper(k-1,M, N-M, n, lower.tail=FALSE)
      term=append(term,i)
      pvalue=append(pvalue,one.pvalue)
    }
    
    my_go_res=data.frame(term=term,pvalue=pvalue)
    my_go_res=my_go_res%>%arrange(pvalue)

    到这会儿还没有结束,还差一个FDR


    3. 计算矫正p值

    FDR, False Discovery Rates。为什么要控制FDR,降低假阳性。 这里用到的是The Benjamini-Hochberg method

    The Benjamini-Hochberg method

    假设我们对10个通路做了富集分析,我们会先得到10个p值:

    1. 将这10个p值从小到大排序
    2. 从1到10给这些p值排序
    3. 最大的FDR adjusted p value(第10位)等于原来最大的那个p值
    4. 第9位的FDR adjusted p value等于这两个值中的较小值: ①前一位矫正的p值; ②当前未矫正的p值 * (p值总个数/当前位数)
    5. 重复第4步,直到第1位

    代码如下:

    fdr=c()
    for (i in dim(my_go_res)[1]:1) {
      if (i==dim(my_go_res)[1]) {
        tmpfdr=my_go_res$pvalue[i]
      }else{
        tmpfdr=min(tmpfdr,my_go_res$pvalue[i] * (dim(my_go_res)[1] / i))
      }
      fdr=append(fdr,tmpfdr)
    }
    my_go_res$p.adj=rev(fdr)

    到这儿富集分析的完整流程才算结束


    4. 轮子有现成的

    当然,这个算法已经非常常见了,clusterProfiler的enricher()就能够自定义基因集做富集分析。使用如下:

    deg_gmt=clusterProfiler::enricher(deg$gene,TERM2GENE = gmt.df,minGSSize = 2,maxGSSize = 2000)
    go_res=deg_gmt@result

    和上面的结果是一模一样的。

    今天的内容就到这里,后台回复20211007获取本文的测试数据和代码,以及(单细胞)转录组分析中可能用到的GO KEGG富集分析代码(这部分本文不演示)。

    ref

    展开全文
  • 富集分析:(一)概述

    千次阅读 2022-06-26 16:27:33
    介绍了富集分析和分析软件,包括在线富集分析工具KOBAS-i和GOEAST,富集分析R包topGO,clusterProfiler。

    (全文约6600字)

    1. 富集分析

    1.1. 富集分析概念

    1. 富集分析

    富集分析,本质上是对数据的分布检验,如果分布集中在某个区域,则认为富集。

    常用的分布检验方法有卡方检验、Fisher精确检验以及KS检验等方法。

    1. 生物信息学领域的富集分析

    背景基因集(N) 下获得 一组特定基因集(S) ,S可能是基因列表,表达图谱,基因芯片等形式。在预先构建好基因注释数据库(例如GO,KEGG等)已对背景基因集(N)根据生物功能或过程进行分类的前提下,通过统计学算法找出有那些显著区别于背景基因集(N)的类别(生物组成/功能/过程),或者找出这组特定基因集间在生物组成/功能/过程的共性,经过聚类后去除冗余得到基因富集结果的过程,即为富集分析。

    1. 常用数据
    • 其中,背景基因集(N) 常常是一个物种的基因组注释基因总和。
    • 一组特定基因集(S) 常常是差异表达基因集(differentially expressed genes, DEGs)。
    • 预先构建好基因注释数据库常用GO或KEGG数据库。
    • 常见的统计学算法包括ORA,FCS,PT,NT四种。
    1. 实际应用

    通常会使用其他分析的结果作为特定基因集(S),做基因富集分析来查看这些基因集是否主要集中在某些类别,这些类别代表的功能是否与表型或者进化事件有关联。比如:

    • 比较转录组分析得到的差异表达基因集;
    • 比较基因组分析中得到的某物种特有的基因集;
    • 基因家族收缩扩张分析得到的基因组中显著扩张/收缩的基因集;
    • 基因组共线性分析中在全基因组复制事件附近的Ks值的基因集等各种分析得到的基因集;

    1.2. 富集分析的算法

    富集分析算法经过发展,常见的有四类:

    Figure 1. 富集分析四类算法
    图片来源:paper:Progress in Gene Functional Enrichment Analysis

    1.2.1. 过表达分析(Over Representation Analysis, ORA)

    1. 过表达分析(ORA)概念

    过表达分析(ORA)是对背景基因集(N)和特定基因集(S)按照已知的基因功能或通路等分组,并鉴定特定基因集(S)在哪些组包含比背景基因集(N)比例更多的基因(过度表达,over-represented,即富集enriched)或更少的基因(表达不足,under-represented)的一种统计学方法。

    ORA是出现最早,最常用,有完善的统计学理论基础的方法。ORA重点在于通过基因集组成的比例来判断富集程度。

    1. 过表达分析的分布检验

    ORA类方法用的是离散分布的检验(Fisher精确检验,依据超几何分布的原理)。

    超几何分布有很多资料可参考,比如:https://www.jianshu.com/p/13f46bebebd4

    1. 过表达分析(ORA)的局限性
    • ORA使用的统计方法(例如超几何分布,二项分布,卡方分布)只考虑差异基因数量,忽略了差异程度(不同表达水平),,需要人为设置阈值,没有一个设置规定,阈值设置有主观性。
    • 通过一刀切的人为规定的阈值,找出差异最显著的单个基因,而忽略其他基因,比如差异小但变化方向一致的基因集,往往后者比前者更重要。
    • 利用的统计学假设每个基因相互独立,但是就生物体本身而言,忽略了基因间内部的复杂的相互作用,并且每个基因在不同的生物学过程中发挥的作用大小不一样,同等看待结果可能会不准确。
    • 假设每条通路都独立其他通路。
    1. 过表达分析(ORA)的实际操作
      需要四组数据:
    • 背景基因集(N):常常是一个物种的基因组注释基因总和
    • 特定基因集(S):常常是差异表达基因集(differentially expressed genes, DEGs)
    • 背景基因集的分类信息:常常通过注释数据库(GO,KEGG等)和背景基因集获得
    • 特定基因集的分类信息:常常通过注释数据库(GO,KEGG等)和特定基因集获得

    通过四组数据获得基因数量的2×2列联表,再利用fisher精确检验或超几何分布得到p值。认为设置一个显著性阈值,高于阈值的即为富集基因。

    1.2.2. 功能分类打分(Functional Class Scoring,FCS)

    1.2.2.1. 功能分类打分(FCS)

    1. 功能分类打分(FCS)概念和改进

    功能分类打分(FCS)与ORA相比进行了基本假设的改变,除了考虑单个基因的显著变化外,还考虑微效基因的叠加效果。

    代表是基因集富集分析(Gene Set Enrichment Analysis, GSEA)

    1. FCS分析的三个步骤
    • 计算单个基因表达水平的统计值,采用如衡量差异基因的ANOVA、Q-statistic、t检验、Z-score、信噪比,进行打分或排序,或者直接使用排序好的基因表达谱
    • 同一通路上所有基因的表达水平统计值进行整合,汇集成单个通路水平的分数或统计值,采用基因水平统计的和、均值或中位数,Wilcoxon rank sum, Maxmean statistic, Kolmogorov-Smirnov statistic
    • 对通路水平的显著性进行评估:利用重抽样(bootstrap)的统计学方法
    1. 功能分类打分(FCS)的优势(与ORA相比)
    • 不需要人为规定的阈值来一刀切显著性
    • FCS考虑同一通路中基因表达的协调变化,即考虑微效基因的叠加效果。
    • 通过考虑基因表达的协调变化,FCS 方法解释了通路中基因之间的依赖性
    1. 功能分类打分(FCS)的限制
    • 与 ORA 类似,FCS 独立分析每个通路。一个基因可以在多个通路中发挥作用,这意味着这些通路可以交叉和重叠。
    • 许多 FCS 方法使用基因表达的变化来对给定通路中的基因进行排序,并丢弃进一步分析的变化。例如,假设通路中的两个基因 A 和 B 分别发生 2 倍和 20 倍的变化。只要它们与通路中的其他基因相比具有相同的各自等级,大多数 FCS 方法都会平等地对待它们。

    1.2.2.2. 基因富集分析(gene set enrichment analysis, GSEA)

    基因富集分析(GSEA)是FCS算法中最常用的一种。

    1. 基因富集分析(GSEA)的原理
    • 基因排序

    首先,根据各基因与表型间相关性r或两组间t检验统计量得分值对背景基因集(N)进行降序排列,比如把所有基因在两个分组(或表型)中的差异度从大到小排序,形成排好序的基因列表。

    • 基因富集

    查看基因注释数据库(GO/KEGG)中每个小组基因集(例如GO一个通路一个小组)里的基因是否在排序的背景基因集里均匀分布,或者主要分布在排序背景基因集的顶部/底部。均匀分布说明不在这两个分组(或表型)中富集,集中分布在顶部/底部说明这个小组基因集在两个分组(表型)之一富集。

    • 富集分析

    计算每一小组基因集的富集分数(enrichment score,ES)值,然后对ES值进行显著性检验和多重假设检验,计算得出显著富集的基因集。

    1. 基因富集分析(GSEA)分析步骤
    • 计算富集分数(enrichment score,ES)

    对每一个小组基因集,遍历排好序的背景基因集(N),当基因出现在特定基因集(S)就加分,反之减分,加减分值由基因与表型的相关性决定。

    • 估计ES的统计显著性

    基于样品的置换检验可以计算P值。

    • 多重假设检验矫正

    根据每一小组基因集的大小对每个基因的ES做标准化,得到标准化NES(normalized enrichment score ,NES)。为了检验每一小组基因集的NES是否显著,将排好序的背景基因集(N)随机打乱排列一定次数,每次都计算每个基因集的NES(ES),得到每个基因集的NES在随机排序情况下的理论分布,从而计算其p值。若p<0.05,则说明该基因集在有序背景基因集(N)中大都富集在顶部,为富集基因集。FDR则是对p值进行FDR校正之后的p值。

    1.2.3. 通路拓扑(Pathway Topology,PT)

    1. 背景
    • 大量公开可用的通路数据库提供的信息超出了每个通路的简单基因列表。与 GO 和分子特征数据库 (MSigDB) 不同,这些知识库还提供有关在给定途径中相互作用的基因产物、它们如何相互作用(例如,激活、抑制等)以及它们在何处相互作用(例如、细胞质、细胞核等)。这些知识库包括 KEGG、MetaCyc、Reactome、RegulonDB、STKE ( http://stke.sciencemag.org )、BioCarta ( http://www.biocarta.com )、和 PantherDB等。
    • ORA 和 FCS 方法仅考虑通路中的基因数量或基因共表达来识别重要通路,而忽略这些知识库中可用的附加信息。因此,即使通过基因之间的新联系完全重新绘制了通路,只要它们包含相同的基因组,ORA 和 FCS 也会产生相同的结果。
    • 已经开发的通路拓扑 (PT) 的方法则利用这些通路数据库的附加信息。
    • 通路路径拓扑 (PT) 的方法本质上与 FCS 方法相同,因为它们执行与 FCS 方法相同的三个步骤。两者之间的主要区别在于使用通路拓扑来计算基因水平的统计数据。
    1. 通路拓扑(PT)

    在通路的富集分析中,一般上游基因的表达水平改变要显著大于下游基因对整个通路的影响。PT方法就是把基因在通路中的位置,和其他基因的互作和调控关系结合在一起,评估每个基因对通路的贡献并算出权重,然后把权重整合到富集分析。

    代表是SPIA,由于可用数据库的限制,应用还很少。

    1.2.4. 网络拓扑结构(Network Topology,NT)

    利用现有的全基因组范围的生物网络,提取数据库的基因相互作用关系(如:基因连接度、基因在网络中的距离),把基因的生物学属性整合到功能分析。利用网络拓扑结构来计算基因对特定生物通路的重要性并给予相应的权重,再利用传统的ORA 或 FCS 方法来评估特定生物通路的富集程度,如GANPA 和 LEGO。缺点就是算法太复杂,计算速度慢。

    2. 富集分析常用基因集

    2.1. Gene Ontology(GO)

    2.1.1. GO

    • GO是一个国际标准化的基因功能分类体系,由基因本体联合会(Gene Ontology Consortium,GOC) 负责。它提供了一套动态并可控的词汇表(controlled vocabulary)来全面描述生物体中基因和基因产物的属性,它由一组预先定义好的GO术语(GO term)组成,这组术语对基因产物的功能进行限定和描述。
    • 可在GO官网)使用的AmiGO2网站查询GO ID和GO term信息。之前常用的WEGO 2.0也可以查询。

    GO由三个ontology(本体)组成,是由独立的术语表示的,分别描述基因的细胞组分(cellular component,CC)、分子功能(molecular function,MF)、参与的生物过程(biological process,BP)。

    GO这三个本体的含义:

    1. 细胞组成(cellular component,CC)

    描述基因产物执行功能的细胞结构相关的位置,比如一个蛋白可能定位在细胞核中,也可能定位在核糖体中。

    1. 分子功能(Molecular Function,MF)

    描述基因产物发生在分子水平上的活动,例如催化或运输。通常对应于单个基因产物(即蛋白质或RNA)可以进行的活动。常见的宽泛的分子功能描述是催化活性(catalytic activity)和转运活动(transporter activity)。为了避免与基因产物名称混淆,通常分子功能描述后加上"activity"一词。

    1. 生物过程(biological process,BP)

    描述的是指基因产物所关联的一个大的生物功能,或者说是多个分子活动完成的一个大的生物程序。例如有丝分裂或嘌呤代谢。

    2.1.2. GO terms

    GO terms,它提供生物过程的逻辑结构与相关关系,不同GO terms之间的关系可以通过一个有向无环图来表示。

    此处需要注意的是,GO terms是对基因产物,而不是基因本身进行描述,因为基因本身的产物有时候不止一种。GO数据库中的GO分类相关信息会得到不断地更新与增加,这个特点要记住,因为不同的GO分析工具使用的数据库版本有可能不一样,造成GO分析结果出现不同。

    2.1.3. GO annotations

    GO注释(GO annotations)是关于特定基因功能的声明,它主要是将GO terms和基因或基因产物相关联来提供注释,也就是描述这个GO terms关联的基因产物是什么(蛋白质,还是非编码RNA,还是大分子等),有什么功能,如何在分子水平发挥作用,在细胞中的哪个位置发挥作用,以及它有助于执行哪些生物过程(途径、程序)。

    2.2. Kyoto Encyclopedia of Genes and Genomes(KEGG)

    2.2.1. KEGG

    • KEGG是处理基因组,生物通路,疾病,药物,化学物质的数据库集合,于1995年由京都大学化学研究所教授Minoru Kanehisa在当时正在进行的日本人类基因组计划下发起。
    • KEGG 是一种数据库资源,用于从基因组和分子级信息了解生物系统(例如细胞、生物体和生态系统)的高级功能和效用。它是生物系统的计算机表示,由基因和蛋白质(基因组信息)和化学物质(化学信息)的分子构建块组成,它们与相互作用、反应和关系网络(系统信息)的分子接线图知识相结合。它还包含疾病和药物信息(健康信息)作为对生物系统的扰动。

    KEGG网站提供了KEGG信息查询入口,包括KEGG Pathway中查询KEGG Pathway ID(ko00000)的详细信息。

    2.2.2. KEGG Database

    KEGG 是一个集成的数据库资源,由如下所示的 16 个数据库组成。它们大致分为系统信息、基因组信息、化学信息和健康信息,它们通过网页的颜色编码来区分。

    KEGG Database

    CategoryDatabaseContentColor
    Systems informationKEGG PATHWAYKEGG pathway mapskegg3green
    KEGG BRITEBRITE hierarchies and tables
    KEGG MODULEKEGG modules and reaction modules
    Genomic informationKEGG ORTHOLOGY (KO)Functional orthologskegg4 yellow
    KEGG GENESGenes and proteinskegg1red
    KEGG GENOMEKEGG organisms and viruses
    Chemical informationKEGG COMPOUNDMetabolites and other chemical substanceskegg2blue
    KEGG GLYCANGlycans
    KEGG REACTIONKEGG RCLASSBiochemical reactionsReaction class
    KEGG ENZYMEEnzyme nomenclature
    Health informationKEGG NETWORKDisease-related network variationskegg5purle
    KEGG VARIANTHuman gene variants
    KEGG DISEASEHuman diseases
    KEGG DRUGKEGG DGROUPDrugsDrug groups

    2.2.3. KEGG PATHWAY Database

    KEGG PATHWAY Database是KEGG资源的核心,是一组手工绘制的KEGG通路图,代表细胞和生物体的新陈代谢和各种其他功能的实验知识。每个通路图都包含一个分子相互作用和反应网络,旨在将基因组中的基因与通路中的基因产物(主要是蛋白质)联系起来。

    3. 富集分析程序

    目前有许多程序可以用于富集分析。包括NASQAR,PlantRegMap,MSigDB,Broad Institute,WebGestalt,Enrichr,GeneSCF,DAVID,Metascape,AmiGO 2,GREAT,FunRich,FuncAssociate,InterMine,ToppGene Suite,QuSAGE,Blast2GO,g:Profiler。

    可以根据需要分析的物种类别和数据库更新选择分析平台,根据需要选择先验基因集。

    大部分富集分析程序都只支持已有数据库的物种的富集分析,如果是不在支持物种列表里的物种,可以用富集分析的R包做富集分析。

    下面介绍几种常见的。

    3.1. NASQAR

    NASQAR (Nucleic Acid SeQuence Analysis Resource)是一个开源的网页平台,可以用R包clusterProfiler做GSEA分析,支持Org.Db数据库的所有物种的GO Term和KEGG Pathway富集分析。

    3.2. PlantRegMap

    PlantRegMap,支持165种植物的GO注释和GO富集分析。

    3.3. Enrichr

    Enrichr是针对哺乳动物的基因富集分析工具。可以通过API使用,并提供可视化结果。

    3.4. GeneSCF

    GeneSCF支持多个物种,实时的功能富集分析工具。不需要额外更新数据库,GeneSCF是实时最新的数据库,并且支持多物种富集分析。结果以文本呈现。

    3.5. DAVID

    DAVID是做注释,富集和可视化的整合的数据库。但注释数据库自从2016年10月就没有更新。

    3.6. Blast2GO

    Blast2GO可以做组学数据的功能注释和GSEA分析。

    3.7. KOBAS-i

    3.7.1. KOBAS-i简介

    1. KOBAS是中科院和北大联合开发的做功能注释和GSEA分析的工具。
    2. 目前已经发表了第三个版本,KOBAS-intelligence(KOBAS-i),KOBAS-i引入了之前发布的基于机器学习的新方法CGPS,并扩展了可视化功能,支持的物种增加到5944个。
    3. KOBAS包含注释模块和富集模块。
    • 注释模块接受基因列表作为输入,包括 ID 或序列,并根据通路、疾病和GO信息等多个数据库为每个基因生成注释。
    • 富集模块给出了关于哪些通路和 GO 术语与输入基因列表或表达在统计上显着相关的结果。有两种不同的富集分析可用,命名为基因列表富集和 exp-data 富集。
    1. KOBAS-i有网页版,也有本地版。

    3.7.2. KOBAS-i网页版【推荐】

    给了两个可用的网址:http://kobas.cbi.pku.edu.cn/,http://bioinfo.org/kobas。
    KOBAS-i

    3.7.2.1. 注释(annotation)和富集(Enrichment)的步骤

    1. 输入
      注释只有三个输入项:
    • 选择物种。

    目前支持5944个物种。

    • 选择输入基因集数据类型。

    支持核苷酸或者蛋白质的fasta序列,blast的Tabular输出结果,Ensembl Gene ID,Entrez Gene ID,UniProtKB AC,Gene Symbol。

    • 输入基因集。

    可以粘贴文本,也可以上传文件。

    富集除了需要上面三个输入项外,还需要选择用哪写先验基因集的数据库来做富集分析。包括PATHWAY,DISEASE,GO。其中KEGG Pathway是所有物种都可以用,其他的只有部份物种可以选。

    • PATHWAY。有四个选项,KEGG Pathway(K),Reactome®,BioCyc(B),PANTHER§。
    • DISEASE。
      有三个选项,OMIM(o),KEGG Disease(k),NHGRI GWAS Catalog(N)
    • GO(G)

    此外还有高级选项,可以选择统计学方法和纠错方法。

    然后点击Run,就可以等待运行结果了。

    1. 结果
      运行结束后,点击右上角的Download total terms就可以下载到结果。
      富集分析还可以点击Visualization得到结果的可视化图。

    3.8. GOEAST

    在线工具GOEAST

    4. 富集分析的R包

    如果是模式物种,或者已有数据库的物种,推荐在线网站PlantRegMapKOBAS-i做GO和KEGG的富集分析。

    常见的有topGO,clusterProfiler,有一些进行富集分析的程序使用了这些包。

    4.1. topGO

    用topGO做富集分析的具体教程可以查看博文blog_topGO

    topGO是一个R包,用于半自动的GO terms的富集分析。topGO的结果可以展示为有向无环图。

    DAG图

    Figure 1. DAG图示例
    from wikipedia:directed acyclic graph

    注:对每个GO节点进行富集,在图中用方框表示显著度最高的10个节点,图中还包含其各层对应关系。每个方框(或椭圆)内给出了该GO节点的内容描述和富集显著性值。不同颜色代表不同的富集显著性,颜色越深,显著性越高。

    4.2. clusterProfiler

    clusterProfiler包的具体使用参考博文blog_clusterProfiler

    4.2.1. clusterProfiler

    clusterProfiler是一个R包,是一个解释组学数据的通用富集工具,支持Gene Ontology(GO), Kyoto Encyclopedia of Genes and Genomes(KEGG), Disease Ontology(DO), Disease Gene Network(DisGeNET), Molecular Signatures Database(MSigDb), wikiPathways和许多其他的基因集的功能注释和富集分析,以及富集分析结果的可视化。2021年07月发布了clusterProfiler 4.0版本。

    4.2.2. clusterProfiler支持的基因集(gene sets)

    1. Gene Ontology(GO)
    2. Kyoto Encyclopedia of Genes and Genomes(KEGG)
    3. Disease Ontology(DO)
    4. Disease Gene Network(DisGeNET)
    5. Molecular Signatures Database(MSigDb)
    6. wikiPathways

    4.2.3. clusterProfiler功能 —— enrichment analysis

    1. Over Representation Analysis, ORA

    ORA是用于判断已知的生物功能或过程在实验产生的基因列表(例如差异表达基因列表, differentially expressed genes, DEGs)中是否过表达(over-represented=enriched)的常用方法。

    1. Gene Set Enrichment Analysis, GSEA
    2. Leading edge analysis and core enriched genes

    5. references

    1. GSEA wiki:https://en.wikipedia.org/wiki/Gene_set_enrichment_analysis
    2. paper-Ten Years of Pathway Analysis: Current Approaches and Outstanding Challenges:https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002375
    3. paper-Progress in Gene Functional Enrichment Analysis:https://www.sciengine.com/SSV/article?doi=10.1360/N052016-00139&scroll=
    4. enrichment analysis:https://www.jianshu.com/p/be8fe1318850
    5. enrichment analysis methods:https://www.jianshu.com/p/042b888d5520
    6. enrichment analysis methods:https://blog.csdn.net/fjsd155/article/details/103064166
    7. GOEAST introduction:https://mp.weixin.qq.com/s?__biz=MzI5MTcwNjA4NQ==&mid=2247484456&idx=1&sn=bbcd0b5d10ba9312d92b7baae777ccde&scene=21#wechat_redirect
    8. topGO tutorial:https://bioconductor.org/packages/release/bioc/vignettes/topGO/inst/doc/topGO.pdf
    9. topGO blog:https://datacatz.wordpress.com/2018/01/19/gene-set-enrichment-analysis-with-topgo-part-1/
    10. R topGO:https://www.codenong.com/cs105162324/
    11. enrichment:https://www.jianshu.com/p/47b5ea646932
    12. GO explanation:https://www.jianshu.com/p/7177c372243f
    13. GO overview:http://geneontology.org/docs/ontology-documentation/
    14. KEGG:https://en.wikipedia.org/wiki/KEGG
    15. clusterProfiler github:https://github.com/YuLab-SMU/clusterProfiler
    16. universal enrichment analysis using clusterProfiler:http://yulab-smu.top/biomedical-knowledge-mining-book/universal-api.html
    17. clusterProfiler paper:https://www.cell.com/the-innovation/fulltext/S2666-6758(21)00066-7?_returnURL=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS2666675821000667%3Fshowall%3Dtrue
    展开全文
  • 转录组功能分析数据库及富集分析

    千次阅读 2022-03-16 21:08:08
    转录组功能分析数据库及富集分析
  • 我们在GO,KEGG的富集分析时就采用的是这个模型。 其数学表达式如下: f(k;n,m,N)={{{m \choose k}{{N-m} \choose {n-k}}} \over {N \choose n}}. 其中: N: 总样本数 m: 总样本中“特定类别”的数量 n: 从总样本...
  • 「GO富集分析」从原理到实践 ~ 零基础掌握

    千次阅读 多人点赞 2021-12-10 14:53:30
    针对第二点,…在前两天我推的文稿《零基础快速完成基因功能注释 / GO / KEGG / PFAM…》中,评论区答应了下,阅读过5000,那就写一写富集分析。于是,如果不写,总是不对。如果要写,只能现在写。毕竟有些事情,...
  • 富集分析

    万次阅读 2019-11-14 11:19:52
    说到富集分析,做生信的童鞋立刻就会想到GO/KEGG Enrichment、GSEA这两大类方法。但这只是富集分析的两种常见形式,富集分析的概念要更广。GO/KEGG Enrichment 这一类富集分析是最简单的富集方法,只关心基因集的...
  • 富集分析超几何分布

    千次阅读 2020-08-23 00:36:03
    我们在GO,KEGG的富集分析时就采用的是这个模型。 其数学表达式如下: p(k)=P(X=k)=(Mk)∗(N−Mn−k)(Nn) p(k)=P(X=k)=\frac{\binom{M}{k}*\binom{N-M}{n-k}}{\binom{N}{n}} p(k)=P(X=k)=(nN​)(kM​)∗(n−kN−M​)...
  • 传统富集分析(基于超几何分布或者Fisher精确检验):关注一列差异基因是否是随机分布在某一感兴趣的基因集中(某通路的基因)得到通路富集的结果时:(1)、一条通路中既有上调基因又有下调基因,无法确定这条通路总体的...
  • 写在前面——书接上回,通过绘制...这次我们通过对差异基因的GO富集分析,可以看到涉及到的具体通路,更进一步的了解实验变化。本文使用的数据集为私有数据集,不过绘图并不难,弄懂原理之后,套用在自己的数据上即可。
  • 在实际使用中,气泡图常用于展示基因富集分析的结果。本期使用R包gapminder中现有数据集,基于ggplot2制作气泡图 Part 2 :图像与代码 在加载数据并对数据进行简单的筛选后,很容易做出一个简单的气泡图: #加载...
  • 生信宝典之前总结了一篇关于GSEA富集分析的推文——GSEA富集分析:从概念理解到界面实操,介绍了GSEA的定义、GSEA原理、GSEA分析、Leading-edge分析等,是全网最流行的...
  • 超几何分布富集分析 GO,KEGG富集分析,循环Fisher‘s testID转换GOKEGG把KEGG里的geneid转回名称(readable table)超几何分布以及生成data frame生成用来循环fisher的table循环Fisher's test 这几天真的被这个超...
  • 一、基因集功能富集分析(Gene Set Enrichment Analysis) 基因功能富集分析,是指借助各类数据库和分析工具进行统计分析,挖掘在数据库中与我们要研究的生物学问题具有显著相关性的基因功能类别。 For example, ...
  • 结合实验结果和结论,提出了对矿井回风流中的CH4进行富集回收的技术思路,在详尽分析了矿井通风机回风口扩散装置中风流能量转换与守恒定律的时空位置关系基础上,提出构建从矿井总回风中分离富集CH4的技术思想及回收...
  • 该笔记详细解释了富集分析的工作原理,并简要地利用gseapy在python中进行富集分析的操作。
  • 富集分析GO KEGG GSEA的区别

    千次阅读 2022-04-22 09:47:02
    GO和KEGG是基于不同的分类思想而储存的基因相关功能的数据库,富集分析就是一个把这些功能进行进行整合计算的算法,GO富集,就是研究基因的本质的,从三个层面,分别描述基因的分子功能(molecular function)、细胞...
  • 单细胞转录谱可以根据基因表达水平进行差异分析,通过差异分析,我们可以知道不同分群之间是否存在差异,以及...理解这些DEG所代表的生物学意义的最佳途径就是基因富集分析(Gene Set Enrichment Analysis, GSEA)。...
  • 浅谈富集分析的Pvalue

    千次阅读 2020-05-02 01:31:28
    浅谈富集分析的Pvalue引言超几何分布Python计算超几何分布 引言 今天给大家带来一个关于“撒币“的问题,说起”撒币“,最经典就是二项分布,也就是你拿起一枚硬币抛向空中,当它转体n个360°,最后华丽的落在地上,...
  • GSEA原理的通俗易懂的理解

    万次阅读 2020-07-01 15:13:59
    我们先提出问题:在解读传统的富集分析(基于超几何分布或Fisher检验)结果时,经富集分析筛选的功能通路中,既有上调差异基因,也有下调差异基因,那么这条通路总体的表现形式改如何定义(是被抑制还是激活)?...
  • 单个基因集富集分析泡泡图绘制

    千次阅读 2021-05-15 00:48:12
    富集分析是生物信息分析中快速了解目标基因或目标区域功能倾向性的最重要方法之一。其中代表性的计算方式有两种:一是基于筛选的差异基因,采用超几何检验判断上调或下调基因在哪些GO或KEGG或其它...
  • GSEA富集分析

    千次阅读 2021-05-05 10:53:14
    Gene Set Enrichment Analysis (基因集富集分析)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因表中的分布趋势,从而判断其对表型的贡献。其输入数据包含两部分,一是已知功能的基因集 (可以是GO注释...
  • GSEA定义Gene Set Enrichment Analysis (基因集富集分析)用来评估一个预先定义的基因集的基因在与表型相关度排序的基因表中的分布趋势,从而判断其对表型的贡献。...
  • 一文掌握GSEA富集分析-最详细教程

    万次阅读 多人点赞 2019-04-26 17:02:46
    之前总结了一篇关于GSEA富集分析的推文——《GSEA富集分析 - 界面操作》,大略介绍了GSEA的定义、GSEA原理、GSEA分析、Leading-edge分析等,不太了解的朋友可以点击阅读先理解下概念。 最近用自己数据实战分析时...
  • 本文章主要涉及基因功能富集分析原理解释,统计检验以及最终基于Python代码的整体逻辑实现。富集分析应该算生信里是最常用的分析方法之一了,很多做生信的都是基于R或者Spss等软件,所以这次想用Python来回顾每...
  • 7.富集分析(Metascape数据库)“实践是检验真理的唯一标准。”“复现是学习R语言的最好办法。”2021.4.12_1DOI: 10.1016/j.cell.2020.05.032这...
  • GO、GSEA富集分析一网打进

    千次阅读 2020-10-22 16:27:00
    生物信息学习的正确姿势NGS系列文章包括NGS基础、高颜值在线绘图和分析、转录组分析(Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析(ChIP-se...
  • singleseqgset | 单细胞RNA-Seq基因集富集分析NGS系列文章包括NGS基础、转录组分析(Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,260
精华内容 504
关键字:

富集分析原理