基因功能注释一言以概之,就是symbol--->ENTREZID--->GO/KEGG/GSEA。
第一步:加载包
library(DOSE)
library(GO.db)
library(org.Hs.eg.db)
library(topGO)
library(GSEABase)
library(clusterProfiler)
没安装的请自行安装
第二步:symbol--->ENTREZID
###上调基因注释
gene <- resSig_up$symbol
gene = bitr(gene, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db")
org.Hs.eg.db是symbol转换成ENTREZID所依据的数据库,ENTREZID关联着很多文献数据,为后面的功能注释提供线索,所以需要ID转换。
第三步:GO和KEGG注释
###细胞组分
ego_CC <- enrichGO(gene = gene$ENTREZID,
OrgDb= org.Hs.eg.db,
ont = "CC",
pAdjustMethod = "BH",
minGSSize = 1,
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
readable = TRUE)
###生物过程
ego_BP <- enrichGO(gene = gene$ENTREZID,
OrgDb= org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
minGSSize = 1,
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
readable = TRUE)
###分子功能:
ego_MF <- enrichGO(gene = gene$ENTREZID,
OrgDb= org.Hs.eg.db,
ont = "MF",
pAdjustMethod = "BH",
minGSSize = 1,
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
readable = TRUE)
pdf(file="ego_MF.pdf")
barplot(ego_MF, showCategory=20,title="EnrichmentGO_MF", drop=T)#条状图,按p从小到大排的
dev.off()
pdf(file="ego_BP.pdf")
dotplot(ego_BP,title="EnrichmentGO_BP_dot")#点图,按富集的数从大到小的
dev.off()
也可以一步到位:
go <- enrichGO(gene = gene$ENTREZID, OrgDb = org.Hs.eg.db, ont='ALL',
pAdjustMethod = 'BH',
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,keyType = 'ENTREZID'
)
dim(go)
dim(go[go$ONTOLOGY=='BP',])
dim(go[go$ONTOLOGY=='CC',])
dim(go[go$ONTOLOGY=='MF',])
gbarplot(go,showCategory=20,drop=T)
dotplot(go,showCategory=50)
###KEGG分析
kk <- enrichKEGG(gene = gene$ENTREZID,
organism ="human",
pvalueCutoff = 0.01,
qvalueCutoff = 0.01,
minGSSize = 1,
#readable = TRUE ,
use_internal_data =FALSE)
pdf(file="barplot_kk.pdf")
barplot(kk)
dev.off()
pdf(file="dotplot_kk.pdf")
dotplot(kk)
dev.off()