124 lines
3.1 KiB
Markdown
Executable File
124 lines
3.1 KiB
Markdown
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` | 文件校验 |
|
||
|
||
## 使用方法
|
||
|
||
### 命令行
|
||
```bash
|
||
# 基本用法
|
||
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
|
||
```python
|
||
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
|
||
```
|
||
|
||
## 依赖要求
|
||
|
||
```bash
|
||
conda install -c bioconda eggnog-mapper diamond
|
||
```
|
||
|
||
或:
|
||
```bash
|
||
conda env create -f config.yaml # 使用技能自带配置
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. **数据库**: 首次运行会自动下载 eggNOG 数据库到 `~/.eggnog-mapper/`
|
||
2. **内存**: 大基因组建议调整 `--block-size` 参数
|
||
3. **路径**: 自动检测常见 conda 环境中的 emapper.py
|
||
|
||
## 下一步建议
|
||
|
||
1. 在 pipeline backend 中集成此技能
|
||
2. 添加 GO enrichment 分析(基于生成的 annotations)
|
||
3. 可视化 COG 分类分布图
|
||
4. 与现有 domain-analysis 技能结果合并展示
|