R语言富集分析clusterProfiler

介绍

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系列包
# fromType和toType包括:"ACCNUM, ALIAS, ENSEMBL, ENSEMBLPROT, ENSEMBLTRANS, ENTREZID, 
# ENZYME, EVIDENCE, EVIDENCEALL, GENENAME, GO, GOALL, IPI, MAP, OMIM, ONTOLOGY, 
# ONTOLOGYALL, PATH, PFAM, PMID, PROSITE, REFSEQ, SYMBOL, UCSCKG, UNIGENE, UNIPROT"
eg <- bitr(x, 
           fromType="SYMBOL", 
           toType=c("ENTREZID","ENSEMBL",'SYMBOL'),
           OrgDb="org.Hs.eg.db")
head(eg)

# Run GO enrichment analysis 
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
# Multiple samples KEGG analysis
#使用enrichKEGG函数,同样建议使用ENTREZID id
kegg <- enrichKEGG(eg$ENTREZID, 
                   organism = 'hsa',  ## hsa为人的简写,bta是牛的简写 
                   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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容