前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 eggnog-mapper 进行功能注释

用 eggnog-mapper 进行功能注释

作者头像
生信菜鸟团
发布2020-08-28 10:36:20
3.7K0
发布2020-08-28 10:36:20
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团

eggnog-mapper 是一种用于对未知序列进行快速功能注释的工具。它使用 eggNOG 数据库中预先计算好的直系同源基因组和系统发育树,根据其进化关系推断他们的功能信息。eggnog-mapper 一般用于注释新的基因组,转录组亦或是宏基因组数据。

使用直系同源预测功能注释的方法比传统的序列相似性搜索(即 BLAST 搜索)具有更高的精度,因为它会避免从旁系同源进行注释。

eggnog-mapper 的Github 地址:https://github.com/eggnogdb/eggnog-mapper

eggnog-mapper 的网页界面版本请访问:http://eggnog-mapper.embl.de

Fast genome-wide functional annotation through orthology assignment by eggNOG-mapper. Mol Biol Evol (2017). https://doi.org/10.1093/molbev/msx148

eggNOG-mapper v2

•注释数据库已更新至 eggNOG v5.0。包括 5090 个代表性基因组(4445 个细菌,168 个古细菌和 477 个真核生物)以及 2502 个病毒。

eggNOG 5.0: a hierarchical, functionally and phylogenetically annotated orthology resource based on 5090 organisms and 2502 viruses. Nucleic Acids Res (2019). https://doi.org/10.1093/nar/gky1085

•在该版本中 HMMer 搜索模式已被弃用。因为在测试中,DIAMOND 模式运行效率更高,并可获得相似甚至更好的结果。•更新了功能注释数据(例如 KEGG,GeneOntology)•输出文件中新添加的列:

代码语言:javascript
复制
1. query_name2. seed eggNOG ortholog3. seed ortholog evalue4. seed ortholog score5. Predicted taxonomic group6. Predicted protein name7. Gene Ontology terms 8. EC number9. KEGG_ko10. KEGG_Pathway11. KEGG_Module12. KEGG_Reaction13. KEGG_rclass14. BRITE15. KEGG_TC16. CAZy 17. BiGG Reaction18. tax_scope: eggNOG taxonomic level used for annotation19. eggNOG OGs 20. bestOG (deprecated, use smallest from eggnog OGs)21. COG Functional Category22. eggNOG free text description

软件安装

•需要 Python 2.7 环境和 BioPython 包(注:v2.0.1[1] 开始的版本已基于 Python 3 重写)•需要至少 50GB 硬盘空间

软件下载

代码语言:javascript
复制
git clone https://github.com/jhcepas/eggnog-mapper.git

下载数据库

代码语言:javascript
复制
python download_eggnog_data.py

该脚本会自动下载并解压数据库至脚本路径的 ./data 目录下。

基本使用方法

只需输入包含需要查询序列的 fasta 文件即可进行注释:

代码语言:javascript
复制
python emapper.py -i test/p53.fa --output p53_maNOG -m diamond

注释数据量较大的基因组和宏基因组数据集

eggnog-mapper 的工作流程分为两个阶段: 1) 寻找直系同源序列; 2) 扩展注释。第一阶段主要消耗 CPU 算力,而第二阶段则主要考验磁盘读写能力。因此,我们可以根据这两个步骤的特性进行优化。

第一阶段: 同源性搜索

1) 对于较大的 fasta 文件,我们可以先将其拆分,方便我们进行并行运算,充分利用集群算力。这里直接使用 Linux 自带的 split 命令进行拆分。

代码语言:javascript
复制
split -l 2000000 -a 3 -d input_file.faa input_file.chunk_

-l 选项根据文件的行数来分割文件•-a 指定输出文件的后缀长度•-d 使用数字作为后缀

2) 使用 diamond 模式进行同源性搜索。这一步我们需要使用 --no_annot 参数暂时跳过注释阶段。用下面的代码批量生成集群运行命令,然后进行批量运行。

代码语言:javascript
复制
# 批量生成运行命令,方便提交至集群for f in *.chunk_*; doecho ./emapper.py -m diamond --no_annot --no_file_comments --cpu 16 -i $f -o $f; done

第二阶段: 功能注释

在注释阶段我们需要检索 data/eggnog.db数据库。该文件是一个 sqlite3 数据库,因此我们建议将该文件放在速度最快的磁盘中。例如,存储在 SSD 磁盘中,如果内存足够大也可以直接放在 /dev/shm (基于内存的文件系统)下。

3) 合并上一步生成的 chunk_*.emapper.seed_orthologs 文件。

代码语言:javascript
复制
cat *.chunk_*.emapper.seed_orthologs > input_file.emapper.seed_orthologs

4) 进行注释。

代码语言:javascript
复制
emapper.py --annotate_hits_table input.emapper.seed_orthologs --no_file_comments -o output_file --cpu 10

一般来说,如果把数据库放在 /dev/shm下,调用 10 核进行运算,每秒可以注释 300-400 个蛋白。

引用链接

[1] https://github.com/eggnogdb/eggnog-mapper/tags [2] https://github.com/eggnogdb/eggnog-mapper/wiki/eggNOG-mapper-v2

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • eggNOG-mapper v2
  • 软件安装
    • 软件下载
      • 下载数据库
      • 基本使用方法
      • 注释数据量较大的基因组和宏基因组数据集
        • 第一阶段: 同源性搜索
          • 第二阶段: 功能注释
            • 引用链接
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档