Files

241 lines
5.2 KiB
Markdown
Raw Permalink Normal View History

2026-08-03 18:42:47 +08:00
# bbav5 分析流程代码依赖分析
## 以"进化树分析"为例,串完整流程
### 阶段1: 前端调用
```
用户点击"进化树分析"按钮
↓
Vue3 前端 → POST /api/execute (stage="phylogeny")
↓
apps/web/vue3/main.py → execute_stage()
```
**必须保留:**
- `apps/web/vue3/main.py` - FastAPI 主入口
- `apps/web/vue3/index.html` - Vue3 前端页面
---
### 阶段2: API 层处理
```
apps/web/vue3/main.py
↓
检查 stage 是否在 ASYNC_STAGES 中
↓
调用 run_stage_sync() 或同步执行
↓
from apps.web.pipeline_backend import run_stage, JobInfo
```
**必须保留:**
- `apps/web/vue3/main.py` - API 端点定义
- `apps/web/pipeline_backend.py` - 后端 pipeline 核心
---
### 阶段3: Pipeline 后端
```
apps/web/pipeline_backend.py → run_stage()
↓
stage == "phylogeny"
↓
导入 apps/cli/run_phylogeny.py
↓
构建命令行参数
↓
subprocess 执行
```
**必须保留:**
- `apps/web/pipeline_backend.py` - stage 路由和参数处理
- `apps/cli/run_phylogeny.py` - 进化树分析脚本
---
### 阶段4: 分析脚本执行
```
apps/cli/run_phylogeny.py
↓
1. 读取 input/{job_id}/Ft.SPL.final_members.pep.fa
2. 运行 MAFFT 多序列比对
3. 运行 IQ-TREE 建树
4. 生成输出到 workspace/{job_id}/final/
- Ft.SPL.pep.msa.fa
- Ft.SPL.tree.nwk
- Ft.SPL.phylogeny_report.md
- Ft.SPL.phylogeny.manifest.json
```
**必须保留:**
- `apps/cli/run_phylogeny.py` - 进化树分析
- `apps/cli/run_identify.py` - 基因家族鉴定(前置依赖)
- `apps/cli/run_motif.py` - Motif分析
- `apps/cli/run_domain.py` - 结构域分析
- `apps/cli/run_structure.py` - 基因结构
- `apps/cli/run_promoter.py` - 启动子分析
- `apps/cli/run_synteny.py` - 共线性分析
- `apps/cli/run_karyotype.py` - 核型分析
- `apps/cli/run_expression.py` - 表达分析
- `apps/cli/run_pep.py` - 蛋白特征
- `apps/cli/run_*.py` - 其他分析脚本
---
### 阶段5: 依赖的 gfa_core 模块
```
apps/cli/run_phylogeny.py
↓
from gfa_core.api_clients import ...
from gfa_core.reproducibility_v2 import ReproducibilityManager
```
**必须保留:**
- `gfa_core/api_clients.py` - API客户端(PlantCARE等)
- `gfa_core/reproducibility_v2.py` - 可复现性管理
- `gfa_core/pipelines/*.py` - pipeline 工具函数
---
### 阶段6: Agent 系统(LangGraph 迁移目标)
```
用户自然语言输入
↓
Orchestrator (LangGraph)
↓
RouterAgent → PlanningAgent → ExecutionAgent
↓
调用 apps/cli/run_*.py
```
**必须保留(迁移到 LangGraph):**
- `gfa_core/mas/agents/*.py` - 9个Agent
- `base.py` - Agent 基类
- `router.py` - 意图路由
- `planning.py` - 任务规划
- `execution.py` - 任务执行
- `knowledge.py` - 知识检索
- `diagnosis.py` - 错误诊断
- `validator.py` - 结果验证
- `result_parser.py` - 结果解析
- `learning.py` - 学习优化
- `discovery.py` - 科学发现
- `gfa_core/mas/core/orchestrator.py` - 编排器(参考代码)
- `gfa_core/mas/llm/` - LLM管理
- `gfa_core/mas/tools/` - 工具注册
- `gfa_core/mas/cost_tracker.py` - 成本追踪
---
### 阶段7: Skills 系统
```
apps/cli/run_*.py
↓
skills/{stage}/run.py
```
**必须保留:**
- `skills/*/run.py` - 各阶段技能实现
- `skills/*/templates/` - 报告模板
---
### 阶段8: 配置文件
```
加载配置
↓
config/
prompts/
```
**必须保留:**
- `config/` - 配置文件
- `prompts/` - Agent 提示词
- `.env` - 环境变量
---
## 必须保留的文件类型总结
### 1. 前端层
- `apps/web/vue3/main.py` - FastAPI
- `apps/web/vue3/index.html` - Vue3
- `apps/web/pipeline_backend.py` - Pipeline后端
### 2. CLI 分析脚本(11个阶段)
- `apps/cli/run_identify.py`
- `apps/cli/run_phylogeny.py`
- `apps/cli/run_motif.py`
- `apps/cli/run_domain.py`
- `apps/cli/run_structure.py`
- `apps/cli/run_promoter.py`
- `apps/cli/run_synteny.py`
- `apps/cli/run_karyotype.py`
- `apps/cli/run_pep.py`
- `apps/cli/run_expression.py`
- `apps/cli/run_*.py` (其他)
### 3. Agent 系统(LangGraph 迁移)
- `gfa_core/mas/agents/*.py` (9个Agent)
- `gfa_core/mas/core/*.py`
- `gfa_core/mas/llm/*.py`
- `gfa_core/mas/tools/*.py`
### 4. 核心模块
- `gfa_core/api_clients.py`
- `gfa_core/reproducibility_v2.py`
- `gfa_core/pipelines/*.py`
### 5. Skills
- `skills/*/` - 所有技能目录
### 6. 配置
- `config/`
- `prompts/`
- `.env`
### 7. 微信集成(确认保留)
- `wechat_*.py`
---
## 可以删除的文件类型(待确认)
### 1. 测试文件
- `test_*.py` (26个)
### 2. Demo 文件
- `demo_*.py`
### 3. 旧 RAG 实现
- `kb/` 目录
- `langchain_agent.py`
### 4. 备份文件
- `backup/` 目录
- `*.backup.*`
- `*.bak`
### 5. 日志和临时文件
- `*.log` (非必要)
- `__pycache__/`
- `*.pyc`
### 6. 文档和报告
- `REVISION_*.md`
- `e2e_test_report.md`
- `EXECUTION_LOG.md`
- `项目记录/` (确认是否保留)
---
## 待确认问题
1. **test_*.py** - 是否全部删除?还是保留部分核心测试?
2. **kb/** - 旧 RAG 实现,是否删除?(gene-family-mas-v2 已替代)
3. **langchain_agent.py** - 实验性代码,是否删除?
4. **项目记录/** - 历史文档,是否保留?
5. **REVISION_*.md** - 修订记录,是否保留?
6. **codeMiaoshu/** - 代码描述,是否保留?
7. **paper/** - 文献 PDF,是否保留?