新手教程 | 非模式物种GO/KEGG注释!使用 EggNOG-mapper 快速完成~
前段时间,毕业转医学的师弟和我讨论了一些基因集合功能富集分析的项目。对于非模式生物来说,麻烦的不仅仅是富集分析,更在于“注释”,如Gene Ontology注释和KEGG注释。聊到后面,想想对于几乎所有人来说,最为方便的方法,或许就是使用一些安装极其简单的软件(如TBtools),或者使用网页工具。TBtools要求用户下载一些数据库文件,相对还是麻烦。替代的最好办法,就是使用 eggNOG-mapper。于是建议他试试,并写个稿件投送过来。与大伙一起学习讨论。
CJ - 陈程杰
对于非模式物种,需要做GO或KEGG富集,可以尝试使用EGGNOG-Mapper来对你的物种序列进行快速注释。在注释结果文件中,可以同时获得序列映射上的GO号或KO号,直接提取出来即可。
此外,EGGNOG-Mapper对序列进行注释,似乎对区分旁系同源基因和直系同源基因上有更好的表现。
EGGNOG-Mapper可以直接使用网页版,也能在服务器上进行本地化。由于比对调用的是diamond,因此运行速度很快,2W+基因只需要十来分钟,推荐直接使用网页版。
一、EGGNOG-Mapper网页注释
注释网址
http://eggnog-mapper.embl.de/
运行提交的任务
注释完成之后会收到通知邮件,通过邮件中的链接下载注释结果
其中,out.emapper.annotations是最终的注释结果
其中,out.emapper.annotations是最终的注释结果
结果文件如下,其中我们最关注的是第十列的GO号以及第十二列的KO号。
这里以提取KO号为例,制作query2ko背景文件,可以以此直接使用TBtools进行富集分析。
提取基因及其映射上的KO号,KO号在第12列
cut -f 1,12 out.emapper.annotations > out.emapper.annotations.query2ko
查看提取结果发现有些基因没有被注释上,需要去掉没有注释的基因以及去掉KO号前面的ko:
注意:需要保持ID的一致性,否则注释不出结果(例如拿来做注释的往往是蛋白序列,一般会包括可变性剪切的标识符AT4G36920.1
,这个时候需要注意做富集的差异基因是否包含该标识符,需要统一;再者,如果使用的是ensembl ID,则需要注意统一使用Transcript ID或Gene ID)
去掉没有注释的基因以及去掉KO号前面的ko:
grep -v '-' out.emapper.annotations.query2ko|sed 's/ko://g' > out.emapper.annotations.query2ko.final
整理好的query2ko文件如图
直接使用TBtools进行富集分析
二、本地化EGGNOG数据库及注释
需要python3.7以上的版本
安装,直接使用conda安装,可以一键解决eggnog-mapper需要的环境以及分析需调用的软件,省事
conda install -c bioconda eggnog-mapper
下载数据库,eggnog-mapper的新版本已经将几个主要数据库都整合在一起,直接运行下载脚本即可。也可以上官网选择自己所需要的物种数据库进行下载
http://eggnog5.embl.de/#/app/downloads
download_eggnog_data.py
使用emapper.py脚本进行注释
emapper.py --cpu 80 -i 待注释文件 -o 输出文件名
注释结果整理参考前述的结果整理
写在后面
硕士三年匆匆而过,现在也步入新的研究领域,就如同三年前初到914一样。
一切重来,要学的还有很多,大家加油!
最后,干饭喊我 哈哈。