241 lines
5.2 KiB
Markdown
241 lines
5.2 KiB
Markdown
# 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,是否保留?
|