FC甜蜜之家
103.03M · 2026-03-26
该笔记写于2025年2月13日,请注意参考该教程的时效性
这里我是利用Conda安装的(已测试可行)
conda install -c bioconda -c conda-forge eggnog-mapper
另有其他的安装方法
Pypi 版本
pip install eggnog-mapper
github.com/eggnogdb/eg…
从以下链接下载最新版本的 eggnog - mapper:github.com/eggnogdb/eg…解压.tar.gz 或.zip 文件。进入解压后的目录,通过以下方式安装依赖项:
下载(克隆)仓库:git clone github.com/eggnogdb/eg…进入仓库目录,可通过以下任意一种方式安装依赖项:
如果你想确保 eggNOG-mapper 使用的是随附的外部工具(如 Prodigal、HMMER、Diamond、MMseqs)二进制文件,将 emapper 脚本和二进制文件添加到你的环境变量或 PATH 变量中可能会有所帮助。例如,如果你的 eggnog-mapper 安装路径为 /home/user/eggnog-mapper
可以执行以下命令:
export PATH=/home/user/eggnog-mapper:/home/user/eggnog-mapper/eggnogmapper/bin:"$PATH"
此外,如果你想将 eggNOG-mapper 数据库存储在特定目录中,你可能希望创建一个环境变量,这样就无需在所有命令中都指定该目录。例如,使用 --data_dir 参数指定目录的功能可以通过环境变量来实现。
你可以这样设置环境变量:
export EGGNOG_DATA_DIR=/home/user/eggnog-mapper-data
下一步是下载 eggNOG-mapper 数据库,你可以运行以下脚本:(conda安装的直接使用以下命令,其他安装方式如果未按照上面方法设置环境变量请在执行时带上绝对路径)
download_eggnog_data.py
这将下载 eggNOG 注释数据库(以及分类群数据库),还有用于 Diamond 搜索的 eggNOG 蛋白质数据库。
如果既没有定义 EGGNOG_DATA_DIR 环境变量,在运行 download_eggnog_data.py 脚本时也没有使用 --data_dir 选项,那么该脚本会尝试将文件下载到 eggnog-mapper 目录下的 data/ 文件夹中。
请注意,Diamond 数据库是可选的。你可以选择进行 HMMER 或 MMseqs2 搜索,或者你可能希望创建特定分类范围的 Diamond 或 MMseqs2 数据库。要做到这一点,请查看 download_eggnog_data.py --help(用于下载 HMMER 数据库或完整的 Diamond 或 MMseqs2 数据库),并查看 create_dbs.py --help(用于创建特定分类群的 Diamond/MMseqs2 数据库)。此外,你可能希望下载 PFAM 数据库,以便能够使用 --pfam_realign realign 或 --pfam_realign denovo 进行 PFAM 重新比对。
例如,download_eggnog_data.py 有以下一些选项:
P 标志:下载 PFAM 数据库时需要使用此标志。M 标志:下载 MMseqs2 数据库时需要使用此标志。完整的 MMseqs2 数据库包含不属于任何 eggNOG 直系同源组(OG)的 eggNOG 蛋白质,而 Diamond 数据库仅包含属于某个 OG 的蛋白质。此外,请注意,不会提供 MMseqs2 索引。若要创建该索引,你可以使用命令 mmseqs createindex "$EGGNOG_DATA_DIR"/mmseqs tmp(更多详细信息请参阅 mmseqs.com/latest/user… )。H -d taxID 标志:下载给定分类单元 ID(taxID)的 HMMER 数据库时需要使用此标志(可在 eggnog5.embl.de/#/app/downl… 查看数据库列表)。同样地,可以使用 create_dbs.py 脚本。例如,仅为细菌创建一个 Diamond 数据库,可使用以下命令:
create_dbs.py -m diamond --dbname bacteria --taxa Bacteria
这将在默认数据目录或环境变量 EGGNOG_DATA_DIR 指定的目录中创建一个 Diamond 数据库。该数据库可与 emapper.py --dmnd_db bacteria.dmnd 配合使用。请注意,首次使用 create_dbs.py 时,下载 eggNOG 蛋白质并创建 Diamond 或 MMseqs2 数据库需要一些时间。后续再次调用 create_dbs.py(指向由 EGGNOG_DATA_DIR、--data_dir 指定的同一数据目录,或默认目录)时,无需再次下载 eggnog5 蛋白质。如果不再创建更多数据库,可以删除这些蛋白质。如需更多信息,请查看 create_dbs.py --help。
eggnog的数据库包含两个文件:可以直接执行download_eggnog_data.py 会自动下载这两文件
也可在下面两网址自己下载上传到服务器上
eggnogdb.embl.de/download/em…
eggnogdb.embl.de/download/em…
然后我需要构建原核生物的数据库
原核生物包含了细菌和古菌,所以我执行
create_dbs.py -m diamond --dbname prokaryotes --taxa Bacteria --taxa Archaea --data_dir /media/sutai/D/eggnog_data/prokaryotes/
-m diamond:指定创建 Diamond 数据库
--dbname prokaryotes:指定数据库的名称为 prokaryotes
--taxa Bacteria 和 --taxa Archaea:指定目标分类群为细菌和古菌
--data_dir 指定下载的数据库的目录
然后,不知道为什么我的服务器连接不上网络,我看他是用wget进行下载的,可能需要科穴上网。
然后我看下载的是这两个文件,于是通过本地的windows在网页上下载了这两文件
![[../Notion-图片/image 42.png|image 42.png]]
然后上传到了linux服务器上,执行create_dbs.py -m diamond --dbname prokaryotes --taxa Bacteria --taxa Archaea --data_dir /media/sutai/D/eggnog_data/prokaryotes/ 相同的命令,会提示文件已经存在,就能成功构建数据库了
![[../Notion-图片/image 1 3.png|image 1 3.png]]
要启动一个注释任务,请提供一个包含查询序列的 FASTA 文件(-i 选项),指定一个项目名称,该名称将用作所有输出文件的前缀(-o 选项),然后运行 emapper.py。
emapper.py -i FASTA_FILE_PROTEINS -o test
这个基本示例将运行搜索,并对那些与 eggNOG 蛋白序列匹配的查询序列进行功能注释。
emapper.py -i FASTA_FILE_PROTEINS -o test
使用 Diamond 在 blastx 模式下运行搜索和注释:
emapper.py -m diamond --itype CDS -i FASTA_FILE_NTS -o test
使用 MMseqs 对输入的 CDS 进行翻译后运行搜索和注释,并将搜索和注释结果添加到现有的 GFF 文件的属性中(GFF 装饰),使用 GeneID 字段将 GFF 中的特征与注释结果关联:
emapper.py -m mmseqs --itype CDS --translate -i FASTA_FILE_CDS -o test
--decorate_gff MY_GFF_FILE --decorate_gff_ID_field GeneID
对组装的 contigs 运行搜索和注释,使用 MMseqs2 的 "blastx" 命中进行基因预测:
emapper.py -m mmseqs --itype metagenome -i FASTA_FILE_NTS -o test
对基因组运行搜索和注释,使用 Diamond 对 Prodigal 预测的蛋白进行搜索,并更改输出目录:
emapper.py -m diamond --itype genome --genepred prodigal
-i FASTA_FILE_NTS -o test --output_dir /home/me/mydir
使用基因组训练 Prodigal 进行基因预测:
emapper.py -m mmseqs --itype genome --genepred prodigal -i FASTA_FILE_NTS -o test
--training_genome FASTA_FILE --training_file OUT_TRAIN_FILE
进行分两步(搜索 + 注释)运行,使用 Diamond 的更敏感模式,并将注释数据库加载到内存中(**-dbmem**;需要约 44 GB 的空闲内存):
emapper.py -m diamond --sensmode more-sensitive --no_annot -i FASTA_FILE_PROTS -o test
emapper.py -m no_search --annotate_hits_table test.emapper.seed_orthologs -o test_annot_1 --dbmem
重复注释步骤,使用特定分类群作为目标,并报告找到的一对一同源物:
emapper.py -m no_search --annotate_hits_table test.emapper.seed_orthologs -o test_annot_2 --dbmem
--report_orthologs --target_orthologs one2one --target_taxa 72274,1123487
使用 HMMER 搜索一个细菌蛋白数据库,使用当前目录作为临时文件目录,并使用一个 "scratch" 目录在与读取不同的硬盘上写输出。一旦 **emapper.py** 完成,scratch 目录中的输出文件将被移动到实际的输出目录中,scratch 目录将被删除:
emapper.py -m hmmer -d bact -i FASTA_FILE_PROTS -o test --scratch_dir /scratch/test --temp_dir .
进行 Diamond 搜索,并在注释时也将查询序列重新比对到同源群组中找到的 PFAM 域:
emapper.py -i FASTA_FILE_PROTS -o test --pfam_realign realign
进行 Diamond 搜索,并在注释时也将查询序列重新比对到整个 PFAM 数据库:
emapper.py -i FASTA_FILE_PROTS -o test --pfam_realign denovo
进行 Diamond 搜索和注释,将检索注释的同源群组限制为细菌分类群:
emapper.py -i FASTA_FILE_PROTS -o test --tax_scope Bacteria
进行 Diamond 搜索和注释,将检索注释的同源群组限制为预定义的分类范围(定义在文件中)针对细菌及其后代。与前一个示例的区别在于,这里使用的细菌文件包含一个分类群列表,而不仅仅是细菌。如果几个 OG 与范围相交,对于给定的蛋白质,最窄的范围将被用来将注释传递给查询:eggnogmapper/annotation/tax_scopes/bacteria:
emapper.py -i FASTA_FILE_PROTS -o test --tax_scope bacteria
进行 Diamond 搜索和注释,将检索注释的同源群组限制为 Gammaproteobacteria 分类范围。此外,从这些 OG 中,强制在细菌级别检索注释:
emapper.py -i FASTA_FILE_PROTS -o test --tax_scope Gammaproteobacteria --tax_scope_mode Bacteria
**--version**:**--list_taxa**:--tax_scope 和 --tax_scope_mode 的有效分类名称和 ID。**--cpu NUM_CPU**:-cpu 0 可以使用所有可用的 CPU。默认值为 1。**--resume**:emapper 运行,跳过已存在的输出文件中的结果。**--override**:**--mp_start_method [fork,spawn,forkserver]**:spawn(自版本 2.1.6 起)。**i FILE**:
包含查询序列的输入 FASTA 文件(默认为蛋白质序列;参见 -itype 和 -translate)。除非使用 -no_search,否则此选项是必需的。
**-itype INPUT_TYPE**:
输入文件中的序列类型。默认值为 proteins。所有 INPUT_TYPE 选项如下表所示:
| INPUT_TYPE | 描述 |
|---|---|
| proteins | 输入序列将直接用于搜索步骤。 |
| CDS | 输入序列将直接用于 Diamond 和 MMseqs2,它们将以 "blastx" 模式运行并报告最佳匹配,除非使用了 --translate,在这种情况下,输入序列将被翻译为蛋白质并以 "blastp" 模式进行搜索。对于 HMMER,输入的 CDS 始终被翻译为蛋白质(--translate 自动激活)。 |
| genome | 输入序列被视为染色体/contigs,将进行基因预测(参见 --genepred)。 |
| metagenome | 与 genome 相同,但 Prodigal 将以不同的模式运行(参见 --genepred prodigal)。 |
**--translate**:
当 --itype CDS 时,输入序列将在搜索前被翻译为蛋白质。如果 --itype CDS 和 --translate 同时使用,输入序列将被翻译为蛋白质,就像 --translate 自动激活一样。如果 --itype CDS 或 --itype genome 或 --itype metagenome 且未指定其他选项,则搜索将以 "blastx" 模式进行,并注释最佳匹配。请注意,这与使用 --translate 或 --genepred 不同,后者可以注释每个查询的多个匹配。
**--annotate_hits_table FILE**:
注释 TSV 格式的表格,至少包含 4 个字段:查询、匹配、E 值、分数。通常,FILE 是之前 eggNOG-mapper 运行生成的 emapper.seed_orthologs 文件。如果使用 --no_search,则此选项是必需的。
-**c FILE, --cache FILE**:
包含序列的 MD5 校验和的注释文件。如果使用 -m cache,则此选项是必需的。
**--data_dir DIR**:
指定 eggNOG-mapper 数据库的路径。默认为 data/ 文件夹或由环境变量 EGGNOG_DATA_DIR 指定的文件夹。注释数据库必须始终位于此目录中,而 HMMER、Diamond 和 MMseqs2 数据库可以在使用 --database、--dmnd_db 和 --mmseqs_db 时位于不同的目录中。
**--genepred search|prodigal**:
--itype genome 或 --itype metagenome 时,将进行基因预测。有两种基因预测模式:
search,这意味着将根据参数运行 Diamond 或 MMseqs2(取决于 m 参数)的 blastx 模式。目前,我们不推荐在完整基因组上使用 Diamond,除非组装较为碎片化和/或 contigs 不是非常大。对于组装的基因组,MMseqs2 比 Diamond 更快,对于大 contigs,MMseqs2 是推荐的选择。prodigal,将使用 Prodigal 进行基因预测,并将 Prodigal 预测的蛋白用于后续的搜索和注释步骤。根据使用 --itype genome 或 --itype metagenome,Prodigal 将以不同的模式运行。**--trans_table TRANS_TABLE_CODE**:
--query-gencode、MMseqs2 的 --translation-table-g 和 Prodigal 的 --trans-table。通常,值是一个整数,对应于特定的翻译表(例如,NCBI 的翻译表)。当使用 --translate 时,此选项也适用于输入和输出序列。**--training_genome FASTA_FILE**:
--itype genome 和 --genepred prodigal。注意,只有当训练文件不存在时,才会运行训练。如果训练文件已经存在,将直接使用该文件进行基因预测,跳过训练。**--training_file FILE**:
--training_genome 选项)创建训练文件,然后立即使用该训练文件进行基因预测。如果训练文件已经存在,训练将被跳过,--training_genome 选项将被忽略,并使用现有的训练文件进行基因预测。**--allow_overlaps none|strand|diff_frame|all**:
--genepred search 和 --itype genome/metagenome 时,此选项控制是否注释重叠的 blastx 命中。默认情况下,将注释重叠命中中的最佳命中。如果设置为 none,将注释每个链上的最佳非重叠命中。如果设置为 diff_frame,将注释每个链上每个框架中的最佳非重叠命中。如果设置为 all,将注释所有命中。**--overlap_tol FLOAT**:
overlap_tol,则认为这两个命中重叠。默认值为 0.0,即任何重叠都被视为重叠。相反,overlap_tol 1.0 表示其中一个命中必须完全重叠,才能认为这两个命中相互重叠。**m MODE**:
diamond。所有 MODE 选项如下表所示:| MODE | 描述 | 注意事项 |
|---|---|---|
| diamond | 使用 Diamond 搜索 eggNOG 序列 | 需要 -i FILE |
| hmmer | 使用 HMMER 搜索序列/HMM | 需要 -i FILE 和 -d DB_NAME |
| mmseqs | 使用 MMseqs2 搜索 eggNOG 序列 | 需要 -i FILE |
| cache | 使用之前注释的文件(包含注释序列的 MD5 哈希)注释查询 | 需要 -i FILE 和 -c FILE |
| no_search | 跳过搜索阶段。注释现有的 emapper.seed_orthologs 文件 | 需要 --annotate_hits_table FILE,除非使用 --no_annot |
**--pident FLOAT**:
None。如果 m hmmer,则无效。**--evalue FLOAT**:
**--score FLOAT**:
None。**--query_cover FLOAT**:
None。如果 m hmmer,则无效。**--subject_cover FLOAT**:
None。如果 m hmmer,则无效。**--dmnd_algo [auto, 0, 1, ctg]**:
-algo 选项。当输入序列集较小时,使用此选项可以进行更快的搜索。默认值为 Diamond 的默认值(自版本 2.1.6 起)。**--dmnd_db FILE**:
data/、EGGNOG_DATA_DIR 或 -data_dir 不同的位置。**--sensmode DIAMOND_SENS_MODE**:
default、fast、mid-sensitive、sensitive、more-sensitive、very-sensitive 或 ultra-sensitive。默认值为 sensitive(请确保检查您版本的默认值,运行 emapper.py --help)。**--dmnd_iterate [yes, no]**:
sensmode 指定的灵敏度。需要使用 Diamond 版本 >= 2.0.11。在版本 2.1.5 中使用 -iterate 激活。在版本 2.1.6 中默认激活;使用 -dmnd_iterate no 禁用。**--matrix MATRIX_NAME**:
BLOSUM62、BLOSUM90、BLOSUM80、BLOSUM50、BLOSUM45、PAM250、PAM70、PAM30。**--dmnd_frameshift INT**:
-frameshift 选项。默认值为 Diamond 的默认值(禁用)。**--gapopen INT**:
**--gapextend INT**:
**--block_size FLOAT**:
b/--block-size 选项。默认值为 Diamond 的默认值。**--index_chunks INT**:
c/--index-chunks 选项。默认值为 Diamond 的默认值。**--outfmt_short**:
seed_orthologs 文件也将仅包含这些字段。当不使用身份百分比、查询和目标覆盖阈值时,此选项可用于提高性能(更多信息,请参阅 Diamond 文档关于回溯的部分)。**--dmnd_ignore_warnings**:
-ignore-warnings 选项。使用此选项可以避免 Diamond 因警告而停止执行(例如,当查询包含仅包含 ATGC 氨基酸的蛋白质时)。自版本 2.1.6 起可用。**--mmseqs_db FILE**:
data/、EGGNOG_DATA_DIR 或 -data_dir 的位置,此选项非常有用。**--start_sens FLOAT**:
**--sens_steps INT**:
**--final_sens FLOAT**:
**--mmseqs_sub_mat MMSEQS_SUB_MAT**:
--sub-mat 选项的替换矩阵。默认值为 MMseqs2 使用的默认矩阵。**-d DB_NAME, --database DB_NAME**:
DB_NAME 应该是使用 download_eggnog_data.py -H -d taxID 下载的数据库名称,或者是加载在服务器上的此类数据库(例如,db.hmm:host:port;参见 hmm_server.py --help)。**--servers_list FILE**:
hmmpgmd 服务器列表的文件。文件中的每一行代表一个服务器,格式为 host:port。如果指定了 -servers_list,则会忽略 -database 选项中的 host 和 port。**--qtype QUERY_TYPE**:
hmm 或 seq(序列)。**--dbtype DB_TYPE**:
hmmdb 或 seqdb。**--usemem**:
-dbtype hmmdb,数据库必须是经过 hmmpress 处理的数据库。如果使用 -dbtype seqdb,数据库必须是使用 esl-reformat 创建的 HMMER 格式数据库。执行完毕后,数据库将从内存中卸载。注意,此选项与 -dbmem 不同,后者用于将注释数据库加载到内存中。**-p INT, --port INT**:
-pfam_realign 模式。**--end_port PORT**:
-pfam_realign 模式。**--num_servers INT**:
-usemem 时,指定要启动的服务器数量。默认情况下,仅使用 1 个服务器。注意,使用 -cpu 指定的 CPU 将在服务器和工作线程之间分配。也用于 -pfam_realign 模式。重要的是要考虑,对于每个服务器实例,HMM 数据库将被加载到内存中,因此随着服务器数量的增加,内存消耗也会增加。**--num_workers INT**:
-usemem 时,指定每个服务器要启动的工作线程数量。默认情况下,使用 -cpu 指定的 CPU 将在服务器和工作线程之间分配。也用于 -pfam_realign 模式。在我们的测试中,增加 -num_workers 并未达到预期的性能提升效果,需要增加 -num_servers 才能真正提高速度,尽管必须满足内存需求。然而,在其他系统、编译版本或 hmmpgmd 的版本中,情况可能有所不同。**--hmm_maxhits INT**:
**--report_no_hits**:
**--hmm_maxseqlen INT**:
**-Z FLOAT**:
phmmer/hmmscan 中使用的固定数据库大小,允许在不同数据库之间比较 E 值。默认值为 40,000,000。**--cut_ga**:
-cut_ga(例如,对于 Pfam 映射很有用)。更多信息请参阅 HMMER 文档。**--clean_overlaps CLEAN_OVERLAPS_MODE**:
none。在执行 hmmscan 类型搜索时(即数据库中包含域),使用 all 和 clans 选项。在执行 hmmsearch 类型搜索时(即域是查询),使用 hmmsearch_all 和 hmmsearch_clans 选项。clans 和 hmmsearch_clans 选项仅对 Pfam 的命中/查询有效。**--no_annot**:
emapper.seed_orthologs 文件)。**--dbmem**:
**--seed_ortholog_evalue FLOAT**:
**--seed_ortholog_score FLOAT**:
**--tax_scope FILE|PREDEFINED_FILENAME|LIST_OF_TAXA|none**:
-tax_scope 交集的种子同源物将被过滤掉,且不会被注释。可能的参数如下表所示。默认值为 auto,这是一个预定义的文件名。| tax_scope | 描述 |
|---|---|
| FILE | 包含分类 ID 和/或分类名称列表的文件路径。 |
| PREDEFINED_FILENAME | 存储在 eggnogmapper/annotation/tax_scopes/ 中的文件名,包含分类 ID 和/或分类名称的列表。可用的选项有:auto(同义词 all)、auto_broad(同义词 all_broad)、all_narrow、archaea、bacteria、bacteria_broad、eukaryota、eukaryota_broad 和 prokaryota_broad。 |
| LIST_OF_TAXA | 以逗号分隔的分类 ID 和/或分类名称列表。例如,针对真核生物、古菌、细菌和根部:--tax_scope 2759,2157,2,1。 |
| none | 不根据分类范围过滤注释。 |
**--tax_scope_mode broadest|inner_broadest|inner_narrowest|narrowest|FILE|PREDEFINED_FILENAME|LIST_OF_TAXA**:
-tax_scope 作为过滤器,确定使用种子同源物的哪个分类级别(即哪个同源群组)来检索注释。默认值为 inner_narrowest。可能的参数如下表所示。| tax_scope_mode | 描述 |
|---|---|
| broadest | 使用具有最广谱系的 OG。 |
| inner_broadest | 从与 --tax_scope 交集的 OG 中,使用具有最广谱系的 OG。 |
| inner_narrowest | 从与 --tax_scope 交集的 OG 中,使用具有最窄谱系的 OG。 |
| narrowest | 使用具有最窄谱系的 OG。 |
| FILE、PREDEFINED_FILENAME、LIST_OF_TAXA | 与 --tax_scope 接受的相同值,除了 none。如果使用此选项,OG 的分类群将首先与 --tax_scope 进行交集,以过滤掉超出分类范围的种子同源物。其次,OG 的分类群将与 --tax_scope 进行交集。从剩余的 OG 中,使用具有最窄谱系的 OG(如 inner_narrowest)。当我们希望过滤掉使用与注释不同的分类范围的查询时,这很有用。例如,我们希望仅注释在 Gammaproteobacteria 范围内的查询,但使用细菌级别的 OG 进行这些查询的注释:--tax_scope Gammaproteobacteria --tax_scope_mode Bacteria。 |
**--target_orthologs one2one|many2one|one2many|many2many|all**:
all。**--target_taxa all|LIST_OF_TAX_IDS**:
-tax_scope/-tax_scope_mode 选项选择的同源群组相互作用。首先,基于 -tax_scope/-tax_scope_mode 确定 OG 中的物种事件。然后,将从这些物种事件中找到的同源物转移注释:如果 -target_taxa all(默认),则从所有同源物中转移;如果指定了 -target_taxa LIST_OF_TAX_IDS,则仅从该列表中的分类群转移注释。**--excluded_taxa none|LIST_OF_TAX_IDS**:
-target_taxa 相反的行为。默认值为 none(不排除任何物种进行注释)。**--report_orthologs**:
emapper.orthologs 文件)。**--go_evidence experimental|non-electronic|all**:
experimental = 仅使用从实验证据推断的术语;non-electronic(默认)= 仅使用非电子策划的术语;all = 将检索所有 GO 术语。**--pfam_realign none|realign|denovo**:
none:将直接从同源物转移的 PFAM 列表报告。realign:将同源物的 PFAM 重新比对到查询,并报告 PFAM 及其在查询中的位置。denovo:每个查询将重新比对到整个 PFAM 数据库,并报告 PFAM 及其在查询中的位置。**--md5**:
c CACHE_FILE)用于 --m cache 模式。**--output,-o FILE_PREFIX**:
**--output_dir DIR**:
**--scratch_dir DIR**:
**--temp_dir DIR**:
**--no_file_comments**:
**--decorate_gff no|yes|FILE**:
no。no:不进行 GFF 装饰。如果使用 Prodigal 进行基因预测,其 GFF 文件无论如何都会包含在输出文件中。如果运行基于 blastx 的基因预测(-genepred search),命中 CDS 的 GFF 文件无论如何都会包含在输出文件中。yes:将创建一个新的 GFF 文件,并用命中和/或注释进行装饰。自 emapper 版本 2.1.7 起,这与基因预测期间创建的 GFF 文件不同。FILE:将创建一个新的 GFF 文件,并将命中和/或注释添加到指定 FILE 中已存在的属性中。可以使用 -decorate_gff_ID_field 指定 GFF 属性(参见 -decorate_gff_ID_field)。自 emapper 版本 2.1.7 起,这与基因预测期间创建的 GFF 文件不同。**--decorate_gff_ID_field ID**:
-decorate_gff FILE 时,用于链接 GFF 特征和注释结果的 GFF 属性的 ID 或名称。默认值为 ID。**--excel**:
**Search hits (prefix.emapper.hits)**:
**Seed orthologs (prefix.emapper.seed_orthologs)**:
**Annotations (prefix.emapper.annotations)**:
**Excel (prefix.emapper.annotations.xlsx)**:
-excel 选项时创建。**Orthologs (prefix.emapper.orthologs)**:
-report_orthologs 选项时创建。**Sequences of predicted CDS (prefix.emapper.genepred.fasta)**:
-itype genome 还是 -itype metagenome,都会生成此文件。**GFF of predicted CDS (prefix.emapper.gff)**(仅限版本 2.1.5 和 2.1.6):
-decorate_gff。**GFF of predicted CDS (prefix.emapper.genepred.gff)**(仅限版本 2.1.7):
**GFF decorated with hits and/or annotations (prefix.emapper.decorated.gff)**(仅限版本 2.1.7):
-decorate_gff。**Sequences without annotation (prefix.emapper.no_annotations.fasta)**:
m cache 模式)。此文件可以用作不使用缓存的另一个 eggNOG-mapper 运行的输入,尝试注释这些序列。**PFAM hits (prefix.emapper.pfam)**:
-pfam_realign realign 或 -pfam_realign denovo 时创建。所有文件都包含以制表符分隔的列或字段。
**query**:
**target**:
**e-value**:
m 选项)返回的 E 值。**bit-score**:
**pident**:
**qstart**:
**qend**:
**sstart**:
**send**:
**qcov**:
**scov**:
当使用 Diamond 进行搜索时,可以使用 --outfmt_short 选项仅输出种子同源物文件的前 4 个字段(参见上述选项)。
**Search hit fields**:
**query_name**:
**seed_eggNOG_ortholog**:
**seed_ortholog_evalue**:
**seed_ortholog_score**:
**Orthologous Groups fields**:
**eggNOG_OGs**:
**max_annot_lvl**:
**COG_cat**:
**Description**:
**Transferred annotations fields**:
**Preferred_name**:
**GOs**:
**EC**:
**KEGG_ko**:
**KEGG_Pathway**:
**KEGG_Module**:
**KEGG_Reaction**:
**KEGG_rclass**:
**BRITE**:
**KEGG_TC**:
**CAZy**:
**BiGG_Reaction**:
**PFAMs**:
**md5**:
-md5 时)。**Orthologs file**:
**query**:
**orth_type**:
-target_orthologs。**species**:
**HMMER hits file**:
**query**:
**hit**:
**evalue**:
**sum_score**:
**query length**:
**HMM position "from"**:
**HMM position "to"**:
**Sequence position "from"**:
**Sequence position "to"**:
**query coverage**:
**Diamond hits file**:
-outfmt_short。更多信息请参阅 Diamond 文档。**MMseqs2 hits file**:
如果使用搜索命中(Diamond 或 MMseqs2 的“blastx”命中)进行基因预测,序列标识符将包括找到 CDS 的原始序列的标识符,后面跟着一个下划线和一个数字,以区分来自同一原始序列的 CDS(例如,在 >query_seq 中找到的 CDS 将被命名为 >query_seq_1。第二个将被命名为 >query_seq_2,……)。如果使用 Prodigal 进行基因预测,此输出文件是 Prodigal 生成的文件(参阅 Prodigal 文档以了解输出格式)。
所有 eggNOG-mapper 属性都将以前缀“em_”开头。如果使用 Prodigal 进行基因预测并使用了 --decorate_gff no,此输出文件是 Prodigal 生成的文件(参阅 Prodigal 文档以了解更多信息)。
与原始序列具有相同标识符的 FASTA 文件。
**query_name**:
**hit**:
**evalue**:
**sum_score**:
**query_length**:
**hmmfrom**:
**hmmto**:
**seqfrom**:
**seqto**:
**query_coverage**:
我的是宏基因组数据,事先我已经利用Prodigal软件预测了组装后的contigs的CDS,然后我已经有蛋白和DNA序列,我这里使用DNA的序列进行注释
我的命令是:
emapper.py -i /media/sutai/I/LXD/marine/de_prodigal_orf/DNA/ERR599155.fasta -o /media/sutai/I/LXD/marine/eggnog_output/ERR599155_DNA --itype CDS --cpu 128 --dmnd_db /media/sutai/D/eggnog_data/prokaryotes/prokaryotes.dmnd -m diamond --data_dir /media/sutai/D/eggnog_data/prokaryotes
-i /media/sutai/I/LXD/marine/de_prodigal_orf/DNA/ERR599155.fasta 输入的目录文件
-o /media/sutai/I/LXD/marine/eggnog_output/ERR599155_DNA 输出文件的位置和前缀
--itype CDS 以CDS模式进行运行,会以blastx的模式与库中蛋白进行比对,即边翻译边比对,我对比过使用蛋白序列和DNA序列的注释结果,单条结果是完全一样的,但是使用DNA序列能够比对注释的更多(即假如我有10000条序列,使用它们的蛋白序列,其中9000条能被注释,使用DNA能有9100条序列被注释)
--cpu 128 使用线程数量,加快运行速度
--dmnd_db /media/sutai/D/eggnog_data/prokaryotes/prokaryotes.dmnd 我之前构建的原核生物的数据库
-m diamond 搜索比对阶段使用diamond模式,默认也是这个模式
--data_dir /media/sutai/D/eggnog_data/prokaryotes eggnog数据库的位置,我之前下在这个位置的,并且没有设置环境变量,所以每次使用的时候需要加上
构建批量运行shell脚本命令:
#!/bin/bash
# 定义输入和输出目录
input_dir="/media/sutai/I/LXD/marine/de_prodigal_orf/DNA"
output_dir="/media/sutai/I/LXD/marine/eggnog_output"
dmnd_db="/media/sutai/D/eggnog_data/prokaryotes/prokaryotes.dmnd"
data_dir="/media/sutai/D/eggnog_data/prokaryotes"
# 检查输出目录是否存在,不存在则创建
mkdir -p "$output_dir"
# 遍历输入目录中的所有.fasta文件
for file in "$input_dir"/*.fasta; do
if [[ -f "$file" ]]; then
# 获取文件名(不包含路径)
filename=$(basename "$file" .fasta)
# 定义输出路径
output_path="$output_dir/${filename}_DNA"
# 运行emapper.py命令
echo "Processing $file..."
emapper.py -i "$file" -o "$output_path" --itype CDS --cpu 200 --dmnd_db "$dmnd_db" -m diamond --data_dir "$data_dir"
echo "Completed processing $file"
fi
done
echo "All files processed."
作者:Evil Autuman | Autuman Lab
微信公众号:Evil Autuman
更新时间:2026年1月