简要介绍利用eggNOG进行在线注释GO
其原理将query序列与eggNOG编号的蛋白进行多序列比对,确定保守位点,分析其进化关系。 每个eggNOG编号的蛋白为一类蛋白。
简单操作
进入在线地址,提交蛋白序列,邮箱,其他可以选择默认,点击run即可。
有时候人多会特别的慢!!!
结果处理
首先需要下载GO的obo文件,点击此处下载,下载后利用脚本进行解析
python parse_go_obofile.py -i go-basic.obo -o go.tb
处理后的文件如下:
GO Description level
GO:0000001 mitochondrion inheritance biological_process
GO:0000007 low-affinity zinc ion transmembrane transporter activity molecular_function
而后,解析eggNOG的结果
python parse_eggNOG.py -i annotations \
-g go.tb \
-O ath,osa \
-o test
## 参数:
-i eggNOG结果
-g obo解析的文件
-O 参考物种(只用于KEGG注释,使用KEGG三字母物种缩写表示)。比如做植物可以选择拟南芥 水稻作为参考,可排序富集到动物通路上
-o 输出文件夹
处理的结果文件有两个:「GOannotation.tsv」和「KOannotation.tsv」 分别对应GO注释和KO注释。
GOannotation.tsv
Gene GO level
Pg_S3686.2 GO:0000165 biological_process
Pg_S3686.2 GO:0003674 molecular_function
KOannotation.tsv
Gene KO pathway decription
Pg_S6540.1 K05907 map00920 Sulfur metabolism
Pg_S6540.1 K05907 map01100 Metabolic pathways
富集分析
利用clusterProfiler中的enricher这个通用函数进行富集
library(clusterProfiler)
KOannotation <- read.delim("D:/RProject/MedicalPlantDB/KOannotation.tsv", stringsAsFactors=FALSE)
GOannotation <- read.delim("D:/RProject/MedicalPlantDB/GOannotation.tsv", stringsAsFactors=FALSE)
GOinfo <- read.delim("D:/RProject/MedicalPlantDB/go.tb", stringsAsFactors=FALSE)
# 前面获取gene list的过程略
gene_list<- # 你的gene list
# GO富集
## 拆分成BP,MF,CC三个数据框
GOannotation = split(GOannotation, with(GOannotation, level))
## 以MF为例
enricher(gene_list,
TERM2GENE=GOannotation[['molecular_function']][c(2,1)],
TERM2NAME=GOinfo[1:2])
# KEGG富集
enricher(gene_list,
TERM2GENE=KOannotation[c(3,1)],
TERM2NAME=KOannotation[c(3,4)])
上述设计到的脚本来自https://github.com/Hua-CM/HuaSmallTools/blob/master/parse/parse_go_obofile.py
本文来自Y叔公众号投稿内容,详情可查看https://mp.weixin.qq.com/s/Mr3YLoc_-Y1WeLKJku1TzQ