EGAPx文档中文版-AI生成

EGAPx 真核生物基因组注释流程 - 中文使用指南

一、EGAPx 是什么?

EGAPx(Eukaryotic Genome Annotation Pipeline - External)是 NCBI(美国国立生物技术信息中心)官方开源的真核生物基因组自动化注释工具。

简单来说,EGAPx 能做什么?

给你一个基因组的 DNA 序列 + 物种信息 + 转录组数据,它就能自动预测出:

  • 哪里是基因
  • 基因分几个外显子
  • 基因表达什么蛋白
  • 蛋白有什么功能

它的工作原理

1
输入文件 → 比对蛋白和RNA-seq数据 → Gnomon预测基因结构 → 功能注释 → 输出结果
  1. 蛋白比对:用 miniprotprosplign 把已知物种的蛋白序列比对到你的基因组
  2. 短RNA-seq比对:用 STAR 比对短reads(如Illumina数据)
  3. 长RNA-seq比对:用 minimap2 比对长reads(如PacBio、Nanopore数据)
  4. 基因预测:基于这些证据,用 Gnomon 预测基因结构
  5. 功能注释:给预测的基因加上功能描述

二、支持的物种

✅ 支持的物种(按分类群)

分类群 包含范围
脊索动物 哺乳动物、鸟类、鱼类、其他脊椎动物
节肢动物 膜翅目、双翅目、鳞翅目、鞘翅目、半翅目等
棘皮动物 海星、海胆等
腔肠动物 珊瑚、水母等
单子叶植物 水稻、玉米等
双子叶植物 菊类、蔷薇类、豆类、石竹目等

❌ 不支持的物种

  • 真菌原生生物线虫 - 这三类不在支持范围内,建议用其他工具

⚠️ 如果你用了不支持的物种TaxID,流程会报错失败。


三、安装

系统要求

  • 容器:Docker 或 Singularity
  • 集群:AWS Batch、SLURM/UGE,或单机(推荐 32核CPU + 256GB内存)
  • Nextflow:v23.10.1 或更高
  • Python:v3.11+

安装步骤

1
2
3
4
5
6
7
8
9
10
# 1. 克隆仓库
git clone https://github.com/ncbi/egapx.git
cd egapx

# 2. 创建Python虚拟环境
python3 -m venv venv
source venv/bin/activate

# 3. 安装依赖
pip install -r requirements.txt

四、准备输入数据

1. 必需输入

EGAPx 使用 YAML 格式的配置文件,至少需要两个参数:

1
2
genome: /path/to/your_genome.fasta    # 基因组文件路径
taxid: 6954 # NCBI Taxonomy ID(物种ID)

如何获取 taxid?

2. 基因组文件要求

  • 格式:标准 FASTA 格式(.fasta.fa
  • 命名:序列名尽量简短、简单,避免特殊字符
  • 重复序列不需要提前软屏蔽(softmask),流程会自动处理
  • 细胞器序列:建议保留在基因组中,避免reads错误比对
  • 污染筛查强烈建议在运行前用 FCS 筛查污染

3. 转录组数据(强烈推荐)

短RNA-seq数据(Illumina)

方式一:从SRA数据库下载

1
2
3
short_reads:
- SRR8506572
- SRR9005248

方式二:使用本地文件

1
2
3
4
5
6
7
8
9
short_reads:
# 单端测序
- - sample1
- /path/to/sample1.fastq

# 双端测序(注意两个文件顺序:R1在前,R2在后)
- - sample2
- /path/to/sample2_R1.fastq
- /path/to/sample2_R2.fastq

长RNA-seq数据(PacBio / Nanopore)

1
2
3
long_reads:
- - sample_nanopore
- /path/to/nanopore.fastq

同时使用短reads和长reads

1
2
3
4
5
6
7
8
9
genome: /path/to/genome.fasta
taxid: 6954
short_reads:
- - sample1
- /path/to/sample1_R1.fastq
- /path/to/sample1_R2.fastq
long_reads:
- - sample_pacbio
- /path/to/pacbio.fastq

五、运行 EGAPx

1. 首次运行 - 生成配置文件

1
2
3
4
python3 ui/egapx.py ./examples/input_D_farinae_small.yaml \
-e <执行器> \
-w <工作目录> \
-o <输出目录>

执行器选项:

参数 说明
-e local 本地单机运行
-e docker 使用 Docker
-e singularity 使用 Singularity
-e slurm SLURM集群(需编辑配置文件)
-e aws AWS云平台
-e biowulf NIH Biowulf集群

首次运行后,会在 ./egapx_config/ 目录生成配置文件,可按需修改。

2. 资源配置调整

如果基因组很大(如 > 3Gb)或数据量很大,可能需要调整内存:

编辑 egapx_config/process_resources.config

1
2
3
4
5
6
7
8
9
withLabel: 'small_mem' {
memory = 8.GB
}
withLabel: 'med_mem' {
memory = 64.GB --> 128.GB # 改大
}
withLabel: 'large_mem' {
memory = 128.GB --> 200.GB # 改大
}

3. 离线模式(无网络或需可重复运行)

1
2
3
4
5
# 下载所有支持文件
python3 ui/egapx.py input.yaml -dl -lc local_cache

# 运行
python3 ui/egapx.py input.yaml -e <executor> -w work -o output -lc local_cache

六、输出文件解读

主要输出文件

文件名 说明
annotated_genome.asn 最终注释结果(ASN格式,用于提交NCBI)
complete.genomic.gff GFF3格式注释(最常用,推荐)
complete.genomic.gtf GTF格式注释
complete.genomic.fna 基因组序列(FASTA)
complete.cds.fna 编码区序列
complete.transcripts.fna 转录本序列
complete.proteins.faa 蛋白序列
annotation_data.cmt 注释元数据(用于提交)

质量评估文件

文件/目录 说明
GNOMON/contam_rpt.tsv 污染报告,检查是否有原核生物污染
GNOMON/new.gnomon_report.txt 每个基因的证据支持详情
busco/ BUSCO完整性评估结果
stats/feature_counts.xml 特征数量统计
stats/feature_stats.xml 特征详细统计

输出统计示例

1
2
3
4
5
6
7
Overall Counts:
genes: 12650 # 总基因数
genes (protein coding): 11549 # 蛋白编码基因
genes (non coding): 886 # 非编码RNA基因
mRNAs: 23281 # 总转录本数
mRNAs (fully supported): 21577 # 完整支持
non-coding RNAs: 1963 # 非编码RNA

关键质量指标

  • fully supported:该转录本有完整的实验证据支持(蛋白或RNA-seq)
  • ab initio > 5%:超过5%的序列是ab initio预测(仅靠HMM模型),可能质量较低
  • major correction:存在移码突变或内部终止密码子,可能是低质量蛋白,标记为”LOW QUALITY PROTEIN”

⚠️ 如果超过10%的蛋白编码基因有”major correction”,建议先优化基因组组装质量再注释。


七、常见问题

Q1: 运行时间多久?

取决于基因组大小和数据量:

  • 果蝇(144Mb)+ 1个Illumina数据:约 3小时
  • 鸡(1.1Gb)+ 20个RNA-seq数据:约 5.5小时

Q2: BUSCO分数低怎么办?

  • 可能原因:组装质量差、基因组特殊、物种与BUSCO模型距离远
  • 检查 busco/short_summary.txt 了解具体情况
  • https://busco.ezlab.org/ 查看同物种的预期分数

Q3: 污染怎么办?

EGAPx 会在蛋白质比对阶段检测污染。如果超过5%的基因模型比对到原核生物,会报错停止。

建议:

  1. 运行前用 FCS 筛查污染
  2. 检查 GNOMON/contam_rpt.tsv 中的可疑序列

Q4: 单染色体基因组出问题?

某些步骤(如 bam_bin)在单染色体基因组上可能失败。临时解决方案:添加一个假的scaffold或线粒体序列。


八、提交到NCBI

准备文件

  1. BioProjectBioSample:在 https://submit.ncbi.nlm.nih.gov/subs/bioproject/ 注册
  2. locus_tag前缀:提交时会分配
  3. source table:序列来源信息表
  4. assembly structured comment:从 https://submit.ncbi.nlm.nih.gov/structcomment/genomes/ 生成

使用 prepare_submission 工具

1
2
3
4
5
6
7
8
9
10
11
# Docker
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" \
ncbi/egapx:0.5.1 prepare_submission \
--egapx-annotated-genome-asn annotated_genome.asn \
--submission-template-file template.sbt \
--bioproject-id PRJNAxxxxx \
--locus-tag-prefix xxxx \
--src-file source_table.txt \
--assembly-data-structured-comment-file genome.asm \
--linkage-evidence paired-ends \
--out-dir submission_output

检查输出

  • .sqn 文件:最终提交文件
  • .val 文件:验证报告(检查是否有ERROR/FATAL)
  • .dr 文件:差异报告

⚠️ BACTERIAL_* 相关的FATAL可以忽略。


九、快速开始示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 1. 安装
git clone https://github.com/ncbi/egapx.git
cd egapx
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt

# 2. 创建输入文件 input.yaml
cat > input.yaml << 'EOF'
genome: /path/to/your_genome.fasta
taxid: 6954 # 示例:尘螨
short_reads:
- - SRR8506572
- https://example.com/sample_R1.fastq
- https://example.com/sample_R2.fastq
EOF

# 3. 运行(单机)
python3 ui/egapx.py input.yaml -e local -w work -o output

# 4. 查看结果
ls output/

十、获取帮助


文档版本:基于 EGAPx v0.4.1-alpha


EGAPx文档中文版-AI生成
https://lixiang117423.github.io/article/egxpa-cn/
作者
李详【Xiang LI】
发布于
2026年4月17日
许可协议