介紹
y叔的包蝶柿,支持GO
,KEGG
,GSEA
等富集分析墩莫。同時還整合了gene id轉(zhuǎn)換津畸,富集結(jié)果可視化等等功能蠢护。
代碼
首先當我們通過差異基因或者其他方式獲得一個基因子集之后如果我們想要知道這些基因的功能這時候就需要對這些基因進行富集分析伺通,一般常用的在線網(wǎng)站包括David
,kobas
等等箍土,而在R語言中的富集分析則可以使用clusterProfiler
完成。
GO富集
#首先讀入基因列表
rt = read.table('diff_gene_list.txt',header = T,sep = '\t')
x = rt$gene_id
#bitr函數(shù)進行id轉(zhuǎn)換罐监,使用的是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)
#隨后對富集結(jié)果進行總覽吴藻,查看BP,CC弓柱,MF的個數(shù)
dim(go[go$ONTOLOGY=='BP',])
dim(go[go$ONTOLOGY=='CC',])
dim(go[go$ONTOLOGY=='MF',])
#結(jié)果可視化
barplot(go,showCategory=20,drop=T)
dotplot(go,showCategory=20)
kegg富集
#使用enrichKEGG函數(shù)沟堡,同樣建議使用ENTREZID id
# Multiple samples KEGG analysis
#使用enrichKEGG函數(shù),同樣建議使用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) #網(wǎng)絡圖
heatplot(kegg) #熱力圖
還有許多東西值得探索,更多內(nèi)容請參考https://yulab-smu.github.io/clusterProfiler-book/