Files
PlantAI-dev/ANALYSIS_FLOW_ANALYSIS.md
2026-08-03 18:42:47 +08:00

241 lines
5.2 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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,是否保留?