# 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,是否保留?