R语言分析方法数据-R语言-图表-决策-Linux-Python

R语言富集分析clusterProfiler

2019-08-11  本文已影响11人  nnlrl

介绍

y叔的包,支持GO,KEGG,GSEA等富集分析。同时还整合了gene id转换,富集结果可视化等等功能。

代码

首先当我们通过差异基因或者其他方式获得一个基因子集之后如果我们想要知道这些基因的功能这时候就需要对这些基因进行富集分析,一般常用的在线网站包括David,kobas等等,而在R语言中的富集分析则可以使用clusterProfiler完成。

GO富集
#首先读入基因列表
rt = read.table('diff_gene_list.txt',header = T,sep = '\t')
x = rt$gene_id

#bitr函数进行id转换,使用的是bioconductor的db系列包
eg <- bitr(x, fromType="SYMBOL", toType=c("ENTREZID","ENSEMBL",'SYMBOL'), OrgDb="org.Hs.eg.db")
head(eg)

#enrichGO函数对基因集进行GO富集,建议使用ENTREZID id
go <- enrichGO(eg$ENTREZID, OrgDb = org.Hs.eg.db, ont='ALL',pAdjustMethod = 'BH',pvalueCutoff = 0.05, 
               qvalueCutoff = 0.2,keyType = 'ENTREZID')
dim(go)

#随后对富集结果进行总览,查看BP,CC,MF的个数
dim(go[go$ONTOLOGY=='BP',])
dim(go[go$ONTOLOGY=='CC',])
dim(go[go$ONTOLOGY=='MF',])

#结果可视化
barplot(go,showCategory=20,drop=T)
dotplot(go,showCategory=20)

kegg富集
#使用enrichKEGG函数,同样建议使用ENTREZID id
kegg <- enrichKEGG(eg$ENTREZID, organism = 'hsa', keyType = 'kegg', pvalueCutoff = 0.05,pAdjustMethod = 'BH', 
                   minGSSize = 3,maxGSSize = 500,qvalueCutoff = 0.2,use_internal_data = FALSE)
head(kegg)

#可视化,和上面的一样
dotplot(kegg, showCategory=20) #气泡图
barplot(kegg,showCategory=20,drop=T) #柱状图
cnetplot(kegg, foldChange=geneList) #网络图
heatplot(kegg) #热力图

还有许多东西值得探索,更多内容请参考https://yulab-smu.github.io/clusterProfiler-book/

上一篇 下一篇

猜你喜欢

热点阅读