Skip to content

Latest commit

 

History

History
161 lines (120 loc) · 4.51 KB

File metadata and controls

161 lines (120 loc) · 4.51 KB

seq-fetch-web Bug 修复报告

修复的 Bug 列表

1. ✅ 网页空白问题

症状: 打开 localhost:3000 显示空白页面

原因:

  • 缺少 QueryClientProvider 包裹 React 应用
  • useQuery 使用了已弃用的 isLoading 状态

修复:

  • frontend/src/index.js - 添加 QueryClientProvider
  • frontend/src/pages/HomePage.js - 改用 isPending 替代 isLoading

2. ✅ 搜索按钮一直禁用

症状: 输入 accession 后点击 "Get Summary",按钮无反应

原因:

  • useQueryenabled 参数返回类型不明确
  • isLoading 状态在 React Query v4 中行为不同

修复:

  • 修改 enabled 为明确的布尔值表达式
  • 改用 isPending 状态

3. ✅ PRJNA938144 无法搜索

症状: 输入 PRJNA938144 点击搜索,提示无效格式

原因: isValidAccession 函数没有包含 PRJNA 格式

修复:

  • frontend/src/utils/helpers.js - 添加 PRJNA*, PRJEB*, PRJDB* 格式支持

4. ✅ Study 类型无数据显示

症状: PRJNA938144 搜索后没有显示任何内容

原因: DataSummary 组件只在有文件列表时显示

修复:

  • frontend/src/components/DataSummary.js - 添加无文件时的提示信息
  • 显示 study 类型的基本信息(title, description 等)

5. ✅ 下载任务消失

症状: 点击下载后任务出现但很快消失

原因:

  • 后端简化版 API 缺少 /tasks/list 端点
  • 前端任务查找逻辑有问题

修复:

  • backend/app/api/routes/download_simple.py - 添加 /list 端点
  • backend/app/api/routes/tasks_simple.py - 创建简化版 tasks 路由
  • backend/app/main.py - 注册 tasks_simple 路由
  • frontend/src/pages/HomePage.js - 改进任务查找逻辑

6. ✅ 404 错误

症状: 浏览器控制台显示 /api/v1/tasks/list 404 错误

原因: 后端没有数据库时使用简化版 API,但缺少 tasks 路由

修复: 创建 tasks_simple.py 并注册路由

修改的文件

前端文件

  1. frontend/src/index.js - 添加 QueryClientProvider
  2. frontend/src/pages/HomePage.js - 修复 useQuery 状态和任务查找逻辑
  3. frontend/src/utils/helpers.js - 添加 PRJNA 等格式支持
  4. frontend/src/components/DataSummary.js - 处理无文件情况
  5. frontend/src/components/SearchBar.js - 移除调试日志
  6. frontend/package.json - 安装 react-app-rewired
  7. frontend/config-overrides.js - webpack 配置
  8. frontend/.env - 环境变量

后端文件

  1. backend/app/api/routes/download_simple.py - 添加 /list 端点
  2. backend/app/api/routes/tasks_simple.py - 新建简化版 tasks 路由
  3. backend/app/main.py - 注册 tasks_simple 路由

测试结果

=== seq-fetch-web Bug Fix Verification ===

Test 1: Search PRJNA938144 (Study)
✅ Study summary displayed correctly

Test 2: Search ERR000001 (Run)
✅ Run summary displayed correctly

Test 3: Download and verify tasks
✅ Tasks page shows download tasks
✅ Tasks persist correctly

=== Summary ===
Total JavaScript errors: 0
✅ All tests passed!

支持的 Accession 格式

Runs (可直接下载)

  • SRR* - SRA Run
  • ERR* - EBI Run
  • DRR* - DDBJ Run

Samples

  • SAMN* - NCBI Sample
  • ERS* - EBI Sample
  • DRS* - DDBJ Sample
  • SRS* - SRA Sample

Studies (无直接下载,需查找关联 runs)

  • SRP* - SRA Study
  • ERP* - EBI Study
  • DRP* - DDBJ Study
  • PRJNA* - NCBI BioProject
  • PRJEB* - EBI BioProject
  • PRJDB* - DDBJ BioProject

Experiments

  • SRX* - SRA Experiment
  • ERX* - EBI Experiment
  • DRX* - DDBJ Experiment

使用说明

启动开发服务器

cd seq-fetch-web
./start-dev.sh

访问地址

使用流程

  1. 打开 http://localhost:3000
  2. 输入 accession(如 ERR000001
  3. 点击 "Get Summary" 查看数据摘要
  4. 选择 FastQ 或 SRA 格式
  5. 点击 "Download" 开始下载
  6. 在 Tasks 页面查看进度

注意事项

  1. Study 类型(如 PRJNA938144)没有直接的文件下载,需要查找关联的 runs
  2. 下载的文件 保存在 ~/.seq-fetch-web/downloads/
  3. WebSocket 连接 用于实时更新进度,如果断开会自动轮询
  4. 数据库 当前使用内存存储,重启后任务记录会丢失

待改进功能

  1. 为 Study 类型添加关联 Runs 的查找和批量下载
  2. 添加历史记录持久化(需要数据库)
  3. 改进 WebSocket 重连机制
  4. 添加下载速度限制选项
  5. 支持断点续传