进行GO富集分析时,需要使用OrgDb包帮助进行分析。而OrgDb包,对于模式物种而言,可以通过在Bioconductor下载获取,具体有哪些及其详细信息见bioconductor-orgdb;而对于非模式物种而言,则比较麻烦,需要自己构建Orgdb包,以下是使用AnnotationForge和AnnotationHub进行orgdb包构建的一次过程记录
1.数据准备
首先需要收集想要需要进行转换的各种信息,根据需要的信息和能收集到哪些信息决定最后orgdb包内包含的信息。
收集的水稻信息主要来自ensembl plants的biomart,选择基因数据库内的IRGSP-1.0数据;
选择后会出现filter和Attributes选项,在选项内选择自己想要的信息,Results导出,
除了bimart内的信息外,基因描述信息,symbol_id信息从RAP-DB数据库内下载得到
2.注释包构建
使用,makeOrgPackages进行orgdb包进行注释时,需要确定一个GID,及Geneid,后面进行的转换全部基因GID进行,这里以RAP-id作为GID,构建GID到各种信息的转换数据框,每个数据框内仅包含GID到各种信息的对应。注意,有一个转换必须要有,GID2GO,同时GID2GO必须包含也仅能包含GID,GO,EVIDENCE这三个信息
# 加载包和数据
if(!require(yulab.utils)) install.packages("yulab.utils")
library(yulab.utils)
pload(tidyverse)
pload(clusterProfiler)
pload(xlsx)
pload(AnnotationForge)
pload(AnnotationHub)
# GID为RAP ID
# 最后构建的数据对应框需要没有重复行,构建好对应的信息转换之后可以使用unique去除重复
unique(GID2GO)
# 构建好的几个数据框如下
head(GID2GO,5)
GID GO EVIDENCE
1019 Os06g0238000 GO:0005515 IEA
1020 Os06g0238000 GO:0004842 IEA
1021 Os06g0238000 GO:0016567 IEA
1022 Os06g0238000 GO:0005634 IBA
1024 Os02g0779000 GO:0004252 IEA
head(GID2KEGGGID,5)
GID KEGGGID
6096 Os01g0100200 Os01t0100200-01
48606 Os01g0100400 Os01t0100400-01
39692 Os01g0100650 Os01t0100650-00
43179 Os01g0100800 Os01t0100800-01
12722 Os01g0101150 Os01t0101150-00
head(GID2DES,5)
GID DES
1 Os01g0100100 RabGAP/TBC domain containing protein.
2 Os01g0100200 Conserved hypothetical protein.
3 Os01g0100300 Cytochrome P450 domain containing protein.
4 Os01g0100400 Similar to Pectinesterase-like protein.
5 Os01g0100466 Hypothetical protein.
head(GID2ENTEZID,5)
GID ENTREZID
1147 Os09g0508300 4347526
1149 Os07g0593000 4343786
1151 Os06g0608300 4341492
1155 Os01g0873800 4324767
1158 Os12g0141800 4351474
构建物种注释包
makeOrgPackage(go=GID2GO,
SYMBOL_info =GID2SYMBOL,
MSU_info = GID2MSU,
DES_info = GID2DES,
KEGGGID_info = GID2KEGGGID,
ENTREZID_info = GID2ENTREZID,
ENA_info = GID2ENA,
version="2.0",
maintainer="yourname<youremaildress>",
author = "yourname<youremaildress>",
tax_id = "39947",
genus = "Os",
species="sativaV2",
goTable = "go")
install("yourworkpath/org.OsativaV2.eg.db",repo=NULL,type="source")
library(org.OsativaV2.eg.db)
keytypes(org.OsativaV2.eg.db)
# 出现需要的id类型就是成功
一个小问题
在后续进行GO分析过程中,发现ont 3种分开选择都没有问题,选择ALL会出现部分ONTOLOGY显示为NA,原因未知,可以保存一个GO与ONTOLOGY的对应表,导入后去除原resultONTOLOGY列,merge即可