R包及依赖下载安装非模式生物富集分析存在着缺少注释等问题,而clusterProfiler不仅针对模式生物,对非模式生物也能进行富集,并且支持用户自定义注释文件,可以说是相当友好了。
source("https://bioconductor.org/biocLite.R")
biocLite("AnnotationHub")
biocLite("biomaRt")
biocLite("clusterProfiler")
# load package
library(AnnotationHub)
library(biomaRt)
library(clusterProfiler)
clusterProfiler主要通过OrgDb进行富集分析,Bioconductor自带20个OrgDb可供使用,多半是模式生物,可以通过AnnotationHub在线检索并抓取OrgDb。以嗜热四膜虫(Tetrahymena thermophila)为例。
hub AnnotationHub()
query(hub, "Tetrahymena thermophila")
AnnotationHub with 2 records
# snapshotDate(): 2017-10-27
# $dataprovider: Inparanoid8, ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/
# $species: Tetrahymena thermophila, Tetrahymena thermophila SB210
# $rdataclass: Inparanoid8Db, OrgDb
# additional mcols(): taxonomyid, genome, description,
# coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
# rdatapath, sourceurl, sourcetype
# retrieve records with, e.g., 'object[["AH10445"]]'
title
AH10445 | hom.Tetrahymena_thermophila.inp8.sqlite
AH59150 | org.Tetrahymena_thermophila_SB210.eg.sqlite
选择带有注释信息的org数据
annoDB hub[["AH59150"]]
注释可以对注释信息进行查看
> annoDB
OrgDb object:
| DBSCHEMAVERSION: 2.1
| DBSCHEMA: NOSCHEMA_DB
| ORGANISM: Tetrahymena thermophila_SB210
| SPECIES: Tetrahymena thermophila_SB210
| CENTRALID: GID
| Taxonomy ID: 312017
| Db type: OrgDb
| Supporting package: AnnotationDbi
Please see: help('select') for usage information
> columns(annoDB)
[1] "ACCNUM" "ALIAS" "ENTREZID" "EVIDENCE" "EVIDENCEALL"
[6] "GENENAME" "GID" "GO" "GOALL" "ONTOLOGY"
[11] "ONTOLOGYALL" "PMID" "REFSEQ" "SYMBOL"
#查看注释信息每一列
> head(keys(annoDB,keytype = "ALIAS"))
[1] "NEWENTRY" "TTHERM_000000023" "TTHERM_000000031" "TTHERM_000000042"
[5] "TTHERM_000000045" "TTHERM_000000090"
GO富集分析#挑选100个ENTREZ基因ID进行富集,也可以使用bitr来转换ID,甚至于直接检索GO注释
#newID
> sample_genes keys(annoDB)[1:100]
> head(sample_genes)
[1] "7822955" "7822974" "7823109" "7823219" "7823307" "7823613"
go enrichGO(sample_genes, OrgDb=annoDB, pvalueCutoff=0.05, qvalueCutoff=0.2, readable = T)
> barplot(go)
> dotplot(go)
KEGG富集分析kegg enrichKEGG(sample_genes,keyType = 'kegg',organism = 'tet',pvalueCutoff = 0.01,qvalueCutoff = 0.05)
#可以使用bitr_kegg功能转换ID
ke bitr_kegg(sample_genes, fromType='Path', toType='ncbi-proteinid', organism='tet')
#不过fromType或者toType只支持'kegg' 'ncbi-geneid' 'ncbi-proteinid'或者'uniprot'
search_kegg_organism('ece', by='kegg_code')
可以从https://www.genome.jp/kegg/catalog/org_list.html查找支持KEGG分析的物种的list



