美文网首页生物信息学基因组学
生信分析之基因富集分析(GeneSet Enrichment A

生信分析之基因富集分析(GeneSet Enrichment A

作者: 科研侠 | 来源:发表于2022-01-20 17:31 被阅读0次

    01

    基因富集分析基本概念

    今天我们来讲一讲什么是基因富集分析

    首先我们要抓住一个核心,那就是:

    “将我们挑出来的基因归归类,聚类分析,看看这些基因的功能和我们的研究是否具有共性”。

    知道了这一点,对富集分析的原理就更好理解:所谓富集分析,本质上就是对分布的检验,如果分布集中在某一个区域,则认为富集。比如正态分布就是一种富集在均值附近的分布。它是一种挖掘在数据库中,与我们要研究的生物学问题具有显著相关性,基因功能类别的分析方法。

    简单来说,当我们获得了一批生物数据时,例如转录组的数据,蛋白质组的数据,在基因差异表达分析之后,你得到了差异基因,可能几个到上百个不等,局限于单纯的某个基因的分析是很困难的,但是想要从庞大的关系网络中挑选出有效信息,比如直接将某几个基因和某个研究的生物学现象结合起来也很耗时。

    因此为了降低研究的复杂度,有人就将不同生物学现象与基因的对应关系做成了多个数据库。当我们手上有成百个差异基因时,做什么分析就用什么数据库去比对,这个过程就叫做富集分析。

    采用富集分析后,就发现在生物学过程中起关键作用的生物通路,并且帮助理解生物学过程的分子机制。

    02

    富集分析工具

    对于富集分析,有两种常见方法,一是GO分析,一种是KEGG。

    对此我们列出了两种常见的分析方法,理论成立,实践开始。

    一.GO富集分析Gene Ontology:

    这是一个基因本体联合会组织(Gene Ontology Consortium)建立的数据库,规范统一了对于不同物种的基因和蛋白描述。

    首先,想要对一个芯片做富集分析,我们要先完成差异分析,得到我们想要进行富集分析的差异基因,将差异基因导入再经过转换id即可

    1,导入数据

    #转换idrm(list = ls()) #魔幻操作,一键清空~

    library(tidyverse)

    library(data.table)

    library(org.Hs.eg.db)

    library(clusterProfiler)

    library(biomaRt)

    library(enrichplot)

    gene <-read.table(“ex_deg.txt”) #导入数据

    s.EntrezID<bitr(gene$symbol,fromType='SYMBOL',toType= 'ENTREZID',OrgDb = "org.Hs.eg.db") #转换成ENTREZID进行后续操作。

    2,GO分析

    go <- enrichGO(gene = s.EntrezID$ENTREZID,

                  OrgDb= org.Hs.eg.db,

                  ont = "ALL",

                  pAdjustMethod = "BH",

                  pvalueCutoff = 0.05,

                  qvalueCutoff = 0.05,

                  keyType = 'ENTREZID')

    3,生成条图

    #条图

    Ontology<factor(go2$Description,labels=go2$ONTOLOGY)

    go3<ggplot(go2,aes(x=Description,y=Count,fill=Ontology))+

      geom_bar(stat = "identity",width = 0.5)+

      coord_flip()

    go3

    二.KEGG (Kyoto Encyclopedia of Genes and Genomes

    1,同样导入数据

    #转换idrm(list = ls()) #魔幻操作,一键清空~

    library(tidyverse)

    library(data.table)

    library(org.Hs.eg.db)

    library(clusterProfiler)

    library(biomaRt)

    library(enrichplot)

    gene<-read.table(“ex_deg.txt”) #导入数据

    s.EntrezID<bitr(gene$symbol,fromType='SYMBOL',toType='ENTREZID',OrgDb="org.Hs.eg.db") #转换成ENTREZID进行后续操作。

    2,KEGG分析

    KEGG<enrichKEGG(gene=s.EntrezID$ENTREZID,

                      organism = 'hsa',

                      pvalueCutoff = 0.05)

    kegg <- data.frame(KEGG@result)

    kegg <- kegg[kegg$pvalue<0.05,]

    kegg <- arrange(kegg,desc(Count))

    kegg1 <- kegg[1:10,]gr<- data.frame(strsplit(kegg1$GeneRatio,'/'))

    gr1 <- as.numeric(gr[1,])/as.numeric(gr[2,])

    kegg1$GeneRatio <- gr1

    3,生成气泡图

    #气泡图

    kegg2<ggplot(kegg1,aes(x=GeneRatio,y=Description))+

      geom_point(aes(size=Count,color=-1*log10(pvalue)))+

      scale_colour_gradient(low="blue",high="red")+

      labs(    color=expression(-log[10](P.value)),

        size="Gene number",    x="GeneRatio",

        y="Pathway name",

        title="Pathway enrichment")+

      theme_bw()+

      theme(axis.text.y = element_text(size = rel(1.3)),

            axis.title.x = element_text(size=rel(1.3)),

            axis.title.y = element_blank())

    参考资料:

    [1] clusterProfiler(version 4.0.5)

    [2] org.Hs.eg.db(version 3.5.0)

    -END-

    文 | 小吴在学生信

    相关文章

      网友评论

        本文标题:生信分析之基因富集分析(GeneSet Enrichment A

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