应该是最好的eggnog-mapper功能注释教程

应该是最好的eggnog-mapper功能注释教程eggnog mapper 实现功能注释 eggNOG Mapper 介绍通常功能注释的思路都是基于序列相似性找直系同源基因 常见的方法就是 BLAST BLAST2GO 或者是 InterProScan eggNOG mapper 的作者认为这种方法不够可靠 毕竟你有可能找到的的是旁系同源基因 近期对多个工具的整体评估发现 eggNOG evolutionar

eggnog-mapper实现功能注释

eggNOG-Mapper介绍

通常功能注释的思路都是基于序列相似性找直系同源基因,常见的方法就是BLAST+BLAST2GO, 或者是InterProScan。eggNOG-mapper的作者认为这种方法不够可靠,毕竟你有可能找到的的是旁系同源基因。近期对多个工具的整体评估发现eggNOG(evolutionary genealogy of genes: Non-supervised Orthologous Groups)在区分旁系同源基因和直系同源基因上表现不错,因此基于eggNOG数据库开发了eggNOG-mapper工具,用于对新序列进行功能注释。

eggNOG-mapper的算法实现如下:

第一步:序列比对。首先,每条蛋白序列用HMMER3在整理的eggNOG数据库中搜索。由于每个HMM匹配都和一个功能注释的eggNOG OG对应,这一步就提供了初步的注释信息。之后,每条蛋白序列用phmmer在最佳匹配的HMM对应的一组eggNOG蛋白中进一步搜索。最后,每条序列的最佳匹配结果以 seed ortholog 形式存放,用于获取其他直系同源基因。目前eggNOG HMM数据库中拥有1,911,745个OG,覆盖了1,678种细菌,115种古细菌,238种真核物种以及352种病毒。除了HMMER3外,还而可用DIAMOND直接对所有的eggNOG蛋白序列进行搜索,它的速度更快,适合类似于宏基因组这类大数据集,或者是已有物种和eggNOG所收集的物种比较近。当然服务器性能强大的话,还是有限选择HMMER3.

step1: 序列比对

第二步:推测直系同源基因。每个用于检索的蛋白序列的最佳匹配序列会对应eggNOG的一个蛋白, 这些蛋白基于预分析的eggNOG进化树数据库会提取一组更加精细的直系同源基因。这一步还会根据bit-screo或E-value对结果进行一次过来,剔除同源性不高的结果

step2: 推测直系同源基因

第三步:功能注释。用于搜索的蛋白序列对应的直系同源基因的功能描述就是最终的注释结果。比如说GO, KEGG, COG等。

step3: 功能注释

安装

git clone https://github.com/jhcepas/eggnog-mapper.git

之后需要下载所需要的数据库。eggNOG提供了107个不同物种的HMM数据库(xxxNOG)以及三个优化数据库, euk对应真核生物,bact对应细菌, arch对应古细菌(Archeabacteria), 以及一个病毒数据库(viruses). 这三个优化数据库包含了属于该分类内的所有物种的HMM模型。

cd eggnog-mapper ./download_eggnog_data.py euk
cd eggnog-mapper mkdir /data/database/EGGNOG-DB rmdir data && ln -s /data/database/EGGNOG-DB data

具体用法

eggnog-mapper用起来非常的简单,你需要提供蛋白序列作为输入

#假如我们现在都仍在软件安装的路径下 python emapper.py -i test/p53.fa --output p53_maNOG -d euk python emapper.py -i test/p53.fa --output p53_maNOG -d maNOG python emapper.py -i test/p53.fa --output p53_maNOG -d maNOG --usemem --cpu 10

eggnog-mapper默认是以HMMER进行序列搜索,尽管这可以通过-m diamond更改成DIAMOND,但结果中就会缺少一些信息列。HMM的搜索参数,有--hmm_maxhits, --hmm_evalue, --hmm_score, --hmm_qcov--Z, 一般用默认就行了。

-d/--database表示搜索数据库的类型,既可以是”euk, bact, arch” 三大类的其中一种,也可以是”eggnog-mapper/data/OG_fasta”中的小类,例如”maNOG”表示的就是哺乳动物的NOG。此外也可以是自定义HMM数据库, -d /path/to/pfam.hmm

如果服务器内存比较大,线程比较多,可以用--usemem--cpu 线程数提高运行速度。

--output表示输出文件的前缀,默认输出在当前文件夹下,--output_dir可以更改为其他文件路径。--resume表示任务重启后可以跳过之前已经完成的部分, 而--override则表示覆盖原先的输出结果。

如果你计划使用同一个数据库同时对多个物种进行注释(大部分人都没有这种需求),那么你需要以服务器模式启动eggnog-mapper,然后就可以同时启动多个任务,

# 终端1 python emapper.py -d arch --cpu 10 --servermode # 新建一个终端 python emapper.py -d arch:localhost:51600 -i test/polb.fa -o polb_arch

结果解读

eggnog-mapper会生成三个文件,

  • [project_name].emapper.hmm_hits: 记录每个用于搜索序列对应的所有的显著性的eggNOG Orthologous Groups(OG). 所有标记为”-“则表明该序列未找到可能的OG
  • [project_name].emapper.seed_orthologs: 记录每个用于搜索序列对的的最佳的OG,也就是[project_name].emapper.hmm_hits里选择得分最高的结果。之后会从eggNOG中提取更精细的直系同源关系(orthology relationships)
  • [project_name].emapper.annotations: 该文件提供了最终的注释结果。大部分需要的内容都可以通过写脚本从从提取,一共有13列。

[project_name].emapper.annotations每一列对应的记录如下:

  1. query_name: 检索的基因名或者其他ID
  2. sedd_eggNOG_ortholog: eggNOG中最佳的蛋白匹配
  3. seed_orholog_evalue: 最佳匹配的e-value
  4. seed_ortolog_evalu: 最佳匹配的bit-score
  5. predicted_gene_name: 预测的基因名,特别指的是类似AP2有一定含义的基因名,而不是AT2G17950这类编号
  6. GO_term: 推测的GO的词条, 未必最新
  7. KEGG_KO: 推测的KEGG KO词条, 未必最新
  8. BiGG_Reactions: BiGG代谢反应的预测结果
  9. Annotation_tax_scope: 对该序列在分类范围的注释
  10. Matching_OGs: 匹配的eggNOG Orthologous Groups
  11. best_OG|evalue|score: 最佳匹配的OG(HMM模式才有)
  12. COG functional categories: 从最佳匹配的OG中推测出的COG功能分类
  13. eggNOG_HMM_model_annotation: 从最佳匹配的OG中推测出eggNOG功能描述

如果打算做富集分析,用命令行的cut/awk提取对应的列,过滤掉其中未注释的部分就行了。

推荐阅读

  • eggNOG-Mapper的文章: 如果你专门是做数据分析,用别人的软件的时候最好把文章也看了
  • 官方教程: 简洁明了
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218433.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:16
下一篇 2026年3月18日 上午7:16


相关推荐

  • caffe使用教程_单反使用入门教程

    caffe使用教程_单反使用入门教程目录一、概况简介:优点:二、使用坐标缓存填充策略过期策略时间监听外部存储springboot集成三、参考文档功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入一、概况就一般的互联网行业中的应用而言,目前比较通用的并且也是普遍存在的

    2025年6月25日
    6
  • 成员变量和局部变量的区别

    成员变量和局部变量的区别成员变量和局部变量的区别 nbsp nbsp nbsp 1 在类中的位置不同 nbsp nbsp nbsp nbsp nbsp nbsp 成员变量 类中方法外 nbsp nbsp nbsp nbsp nbsp nbsp 局部变量 方法定义中或者方法声明上 nbsp nbsp nbsp 2 在内存中的位置不同 nbsp nbsp nbsp nbsp nbsp nbsp 成员变量 在堆中 nbsp nbsp nbsp nbsp nbsp nbsp 局部变量 在栈中 nbsp nbsp nbsp 3 生命周期不同 nbsp nbsp nbsp nbsp nbsp nbsp 成员变量 随着对象的创建而存在 随着对象的消失而消失 nbsp nbsp nbsp nbsp nbsp nbsp 局部变量 随着方法的调用而存在 随着

    2026年3月20日
    2
  • linux 文档编辑命令_vim编辑器常用命令

    linux 文档编辑命令_vim编辑器常用命令Linux文档编辑命令1.vi或vim命令1.基本操作1.vim文件名:进入一般模式(不能输入)2.按下i从一般模式,进入到插入模式3.按下esc从插入模式,退出到一般模式4.在一般模式下,输入:wq,退出编辑。2.vi基本概念3.常用命令2.管道linux提供管道符号“|”作用是“命令1”的输出内容,将作为“命令2”…

    2026年4月15日
    4
  • FTP命令 上传下载文件[通俗易懂]

    FTP命令 上传下载文件[通俗易懂]1.连接ftp服务器格式:ftp[hostname|ip-address]a)在linux命令行下输入:ftp192.168.1.1b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。2.下载文件下载文件通常用get和mget这两条命令。a)get格式:get[remote-file][local-file]将文件从远端主机中传送至…

    2026年2月9日
    5
  • mysql 日志的启动与查看:有利于开发者研究网站一个页面执行时的sql语句变化…

    mysql 日志的启动与查看:有利于开发者研究网站一个页面执行时的sql语句变化…

    2021年8月20日
    71
  • ActiveMQ objecmessage 无法调用问题。

    ActiveMQ objecmessage 无法调用问题。

    2021年6月16日
    109

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号