3.1 KiB
Executable File
3.1 KiB
Executable File
eggNOG-mapper Annotation Skill - 实现总结
完成情况 ✅
已完成为 bbav20311 添加 eggNOG-mapper 调用功能,自动生成 .emapper.annotations 文件。
创建的文件
skills/annotation/
├── config.yaml # 技能配置(参数、依赖)
├── run.py # 主程序(~400行)
├── SKILL.md # 技能文档
├── example_usage.py # 集成示例
├── tests/
│ └── test_annotation.py # 单元测试
└── IMPLEMENTATION_SUMMARY.md # 本文件
功能特性
核心功能
- 调用本地
emapper.py进行功能注释 - 自动生成
.emapper.annotations文件 - 同时生成
.emapper.seed_orthologs和.emapper.pfam - 支持 diamond/mmseqs/hmmer 三种搜索模式
配置参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| mode | diamond | 搜索模式 |
| evalue | 0.001 | E-value阈值 |
| score | 60 | 最小bit score |
| query_cover | 20 | query覆盖度(%) |
| subject_cover | 20 | subject覆盖度(%) |
| tax_scope | auto | 分类范围 |
| cpu | 8 | CPU线程数 |
输出文件
| 文件 | 描述 |
|---|---|
*.emapper.annotations |
主注释结果(TSV) |
*.emapper.seed_orthologs |
种子直系同源 |
*.emapper.pfam |
Pfam注释 |
report.md |
分析报告(含GO/KEGG/COG/Pfam统计) |
commands.sh |
可复现命令 |
environment.yml |
Conda环境配置 |
checksums.sha256 |
文件校验 |
使用方法
命令行
# 基本用法
python run.py --input protein.fa --output ./annotation
# 指定参数
python run.py --input protein.fa --output ./annotation \
--prefix mygene --cpu 16 --mode diamond --evalue 0.0001
# Demo模式
python run.py --demo --output ./annotation_demo
Python API
from run import AnnotationSkill
skill = AnnotationSkill()
result = skill.run(
protein_fasta=Path("protein.fa"),
output_dir=Path("./annotation"),
prefix="gene_family"
)
# result["annotations"] -> Path to .emapper.annotations
# result["stats"] -> Dict with GO/KEGG/COG/Pfam counts
集成到 Registry
已在 gfa_core/mas/tools/registry.py 中添加:
TOOL_PATHS["emapper"]路径配置ToolMetadata注册(category="annotation")
测试状态
$ python3 tests/test_annotation.py -v
test_find_emapper ... ok
test_parse_annotations ... ok
test_demo_mode ... ok
test_config_loading ... ok
----------------------------------------------------------------------
Ran 4 tests in 0.005s
OK
依赖要求
conda install -c bioconda eggnog-mapper diamond
或:
conda env create -f config.yaml # 使用技能自带配置
注意事项
- 数据库: 首次运行会自动下载 eggNOG 数据库到
~/.eggnog-mapper/ - 内存: 大基因组建议调整
--block-size参数 - 路径: 自动检测常见 conda 环境中的 emapper.py
下一步建议
- 在 pipeline backend 中集成此技能
- 添加 GO enrichment 分析(基于生成的 annotations)
- 可视化 COG 分类分布图
- 与现有 domain-analysis 技能结果合并展示