Files
2026-08-03 18:42:47 +08:00
..
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00
2026-08-03 18:42:47 +08:00

Annotation Skill - 功能注释技能

提供两种模式的功能注释:

模式对比

特性 API 模式 (run_api.py) 本地模式 (run.py)
速度 慢 (~1秒/基因) 快 (批量处理)
数据库 不需要 需要 (~20GB)
网络 需要联网 不需要
适用数据量 < 1000 基因 任意规模
输出格式 gene2go.txt .emapper.annotations
注释内容 仅 GO GO + KEGG + COG + Pfam

快速开始

API 模式(推荐小数据集)

# 基本用法
python run_api.py --input protein.fa --output ./annotation

# 调整请求间隔(避免被限流)
python run_api.py --input protein.fa --output ./annotation --delay 1.5

本地模式(推荐大数据集)

# 1. 先下载数据库(只需一次)
bash download_db.sh

# 2. 运行注释
python run.py --input protein.fa --output ./annotation --cpu 8

输出文件

API 模式

  • *.gene2go.txt - 基因-GO对应表
  • report.md - 统计报告

本地模式

  • *.emapper.annotations - 完整注释结果
  • *.emapper.seed_orthologs - 种子直系同源
  • *.emapper.pfam - Pfam结构域
  • report.md - 统计报告
  • commands.sh - 可复现命令

测试

# 测试 API 模式
python run_api.py --demo --output ./test_api

# 测试本地模式
python run.py --demo --output ./test_local

# 运行单元测试
python tests/test_annotation.py

集成到 Pipeline

# 小数据集用 API
from skills.annotation.run_api import AnnotationAPISkill
skill = AnnotationAPISkill()
result = skill.run(protein_fasta, output_dir)

# 大数据集用本地
from skills.annotation.run import AnnotationSkill
skill = AnnotationSkill()
result = skill.run(protein_fasta, output_dir)

注意事项

  1. API 模式:eggNOG 服务器可能有请求限制,建议 --delay 1.0 以上
  2. 本地模式:首次需下载 20GB 数据库,使用 download_db.sh 脚本
  3. 基因数量:API 模式超过 1000 基因会非常慢,建议改用本地模式