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 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)•输出文件中新添加的列:
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 硬盘空间
git clone https://github.com/jhcepas/eggnog-mapper.git
python download_eggnog_data.py
该脚本会自动下载并解压数据库至脚本路径的 ./data
目录下。
只需输入包含需要查询序列的 fasta
文件即可进行注释:
python emapper.py -i test/p53.fa --output p53_maNOG -m diamond
eggnog-mapper
的工作流程分为两个阶段: 1) 寻找直系同源序列; 2) 扩展注释。第一阶段主要消耗 CPU 算力,而第二阶段则主要考验磁盘读写能力。因此,我们可以根据这两个步骤的特性进行优化。
1) 对于较大的 fasta
文件,我们可以先将其拆分,方便我们进行并行运算,充分利用集群算力。这里直接使用 Linux 自带的 split
命令进行拆分。
split -l 2000000 -a 3 -d input_file.faa input_file.chunk_
•-l
选项根据文件的行数来分割文件•-a
指定输出文件的后缀长度•-d
使用数字作为后缀
2) 使用 diamond
模式进行同源性搜索。这一步我们需要使用 --no_annot
参数暂时跳过注释阶段。用下面的代码批量生成集群运行命令,然后进行批量运行。
# 批量生成运行命令,方便提交至集群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
文件。
cat *.chunk_*.emapper.seed_orthologs > input_file.emapper.seed_orthologs
4) 进行注释。
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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有