生物信息学基因组学

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

2022-01-20  本文已影响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-

文 | 小吴在学生信

上一篇 下一篇

猜你喜欢

热点阅读