生信喵 发表于 2022-10-10 10:54:36

基因功能注释以及富集分析

一、注释相关包介绍
       clusterProfiler 是南方医科大学余光创(微信公众号 biobabble)写的一个 R包,可以用来做各种富集分析,如 GO、KEGG、DO(Disease Ontology
analysis)、Reactome pathway analysis 以及 GSEA 富集分析等。而除了富集分析,还可以非常方便的对富集分析结果进行可视化。只需要输入一个基因 ID的列表,就可以完成的分析,非常方便。

网址:
http://www.bioconductor.org/packages/release/bioc/html/clusterProfiler.html使用说明:
http://www.bioconductor.org/packages/release/bioc/vignettes/clusterProfiler/inst/doc/clusterProfiler.htmlhttp://yulab-smu.top/clusterProfiler-book/安装和使用:

library(dplyr)
library(tidyr)
library(DOSE)
library(GO.db)
library(org.Hs.eg.db)
library(GSEABase)
library(clusterProfiler)
二、基因 ID 转换
       对于具有注释信息的物种,基因注释的过程就是各种 ID 转换的过程,在转换过程中,需要注意 ID 的类型,以及一对多和多对多的情况。

#前面差异分析得到的res005文件
dta <- read.csv("res005.csv",header = T,row.names = 1,stringsAsFactors = F)

## ------------------------------------------------------------------------
x <- rownames(dta)
length(x)
keytypes(org.Hs.eg.db)
eg <-bitr(x, fromType="ENSEMBL", toType="ENTREZID", OrgDb="org.Hs.eg.db")
head(eg)
ids <- bitr(x, fromType="ENSEMBL", toType=c( "SYMBOL"), OrgDb="org.Hs.eg.db")
head(ids)
go <-bitr(x,fromType = "ENSEMBL",toType = c("SYMBOL","GO","ONTOLOGY"),OrgDb = "org.Hs.eg.db")
head(go)

三、GO 功能注释与富集
       Gene Ontology(简称 GO)是一个国际标准化的基因功能分类体系,提供了一套动态更新的标准词汇表(controlled vocabulary)来全面描述生物体中基因和基因产物的属性。GO 总共有三个 ontology(本体),分别描述基因的分子功能(molecular function)、细胞组分(cellular component)、参与的生物过程(biological process)。GO 的基本单位是 term(词条、节点),每个term 都对应一个属性。
基因 GO/KEGG 富集分析

GO 官网:gene <- eg$ENTREZID
gene.df <- bitr(gene, fromType = "ENTREZID",
                toType = c("ENSEMBL", "SYMBOL"),
                OrgDb = org.Hs.eg.db)
head(gene.df)
ggo <- groupGO(gene   = gene,
               OrgDb    = org.Hs.eg.db,
               ont      = "MF",
               level    = 3,
               readable = TRUE)
head(ggo)
View(as.data.frame(ggo))

ego <- enrichGO(gene          = gene,
                OrgDb         = org.Hs.eg.db,
                ont         = "CC",
                pAdjustMethod = "BH",
                readable      = TRUE)
head(ego)
View(as.data.frame(ego))
四、GO功能注释可视化
barplot(ggo, drop=TRUE, showCategory=12)

## ----fig.height=5, fig.width=8-------------------------------------------
barplot(ego, showCategory=15)

dotplot(ego)

goplot(ego)

五、KEGG 功能注释与富集
       KEGG(Kyoto Encyclopedia of Genes and Genomes,京都基因与基因组百科全书)是一个关于基因组、酶促途径以及生物化学物质的在线数据库。虽然决定生物体基因分类的基因组测序工程有了飞速的发展,但对单个基因功能的研究仍然相差甚远。同时活细胞的生物学功能是许多分子相互作用的结果,不能仅仅归功于单个基因或单个分子。
KEGG 官网:http://www.genome.jp/kegg/

search_kegg_organism('ece', by='kegg_code')
search_kegg_organism('hsa', by='kegg_code')
ecoli <- search_kegg_organism('Escherichia coli', by='scientific_name')
dim(ecoli)
head(ecoli)

kk <- enrichKEGG(gene         = gene,
               organism   = 'hsa',
               pvalueCutoff = 0.05)
View(kk@result)
browseKEGG(kk, 'hsa04750')
六、KEGG 功能注释可视化
barplot(kk)
dotplot(kk)
#自定义画图
y <- kk@result #保留kk结果
head(y)
par('mar')
par(mar=c(5.1,15.1,4.1,2.1))
barplot(height = y$Count,names.arg = y$Description,horiz = T,las=2)
七、单独绘制 kegg 条目图
library(ggplot2)
pathway <-read.csv("kegg.csv",header=T)
head(pathway)
colnames(pathway)

p <-ggplot(data=pathway,mapping = aes(x=richFactor,y=Pathway))
p
p + geom_point()
p + geom_point(aes(size=AvsB))
p + geom_point(aes(size=AvsB,color=Qvalue))
p + geom_point(aes(size=AvsB,color=Qvalue)) + scale_colour_gradient(low="green",high="red")
p + geom_point(aes(size=AvsB,color=Qvalue)) + scale_colour_gradient(low="green",high="red")+labs(title="Top20 of pathway enrichment",x="Rich factor",y="Pathway Name",color="-log10(Qvalue)",size="Gene Numbers")
p + geom_point(aes(size=AvsB,color=Qvalue)) + scale_colour_gradient(low="green",high="red")+labs(title="Top20 of pathway enrichment",x="Rich factor",y="Pathway Name",color="-log10(Qvalue)",size="Gene Numbers")+theme_bw()      
       示例结果的ggplot2可视化
页: [1]
查看完整版本: 基因功能注释以及富集分析