Omicscloud功能嵌入计划
跳到导航
跳到搜索
GlycAP / EasyDIA 嵌入 OmicsCloud 路线和计划
1. 结论
OmicsCloud 已经具备配置驱动的多应用平台结构,并且 EasyDIA 搜索侧已经在使用 search_script 作为本地计算节点/搜索执行层。后续不建议从 EasyDIA 独立 Shiny app 重新搬一遍搜索逻辑,而应该围绕现有 omicscloud + search_script 集成做加固、配置化和功能扩展。
当前判断:
| 模块 | 状态 | 说明 | 下一步 |
|---|---|---|---|
| EasyDIA DirectDIA 搜索 | 已接入/已使用 | OmicsCloud easydia_* 创建任务,search_script/dia_search_script.R 执行 DirectDIA、调用 Spectronaut、回写状态、生成 QC 报告
|
加固日志、错误信息和配置 |
| EasyDIA Cohort Real-time Search | 已接入/已使用 | OmicsCloud 已有 cohort project view/continue search,search_script 已有 cohort 主流程、子任务调度和文件状态表
|
稳定化子任务状态和异常恢复 |
| EasyDIA Time-series QC | 已接入/已使用 | OmicsCloud 已有 Time-series 入口,dia_search_script.R 生成并刷新 qc_report.html
|
优化报告入口和长期任务监控 |
| EasyDIA 搜索节点调度 | 已接入/已使用 | search_script/omicscloud-server.r 按设备号、线程数拉取任务;cohort_sub_project_server.R 调度 cohort 子任务
|
配置去硬编码、服务化部署 |
| 设备心跳和 Spectronaut 版本 | 已接入/已使用 | search_spectronaut_version.R 写入 easydia_device_heartbeat、easydia_version_info;OmicsCloud 已查询设备状态和版本
|
管理端展示和维护增强 |
| QC 报告 | 已接入/已使用 | new_qc_script.R 支持 normal、phosphorylation、silac,并输出 HTML/DOCX/ZIP
|
统一报告模板目录和下载策略 |
| Spectronaut 导出模板 | 已接入/已使用 | OmicsCloud easydia_output.r 直接读取 search_script/source/easydia_setup
|
路径配置化、模板版本化 |
| GlycAP | 尚未平台化 | 独立 Shiny app,功能完整但未按 OmicsCloud app 结构拆分 | 新增 glycap 原生 app
|
| EasyDIA 独立工具 | 部分可迁移 | Pivot、LFQBench、EasyPRM、Kdegger、LipAna 等在 EasyDIA 源项目内 | 另建 easydia_tools 或挂到 easydia
|
优先级调整:
- P1:新增 GlycAP 原生 app,先做 GlycAP quant demo 闭环。
- P2:迁移 EasyDIA 工具模块和只读数据集。
- P3:再处理 GlycAP pGlyco 执行、LipAna Python 环境等重依赖功能。
2. OmicsCloud 当前可接入点
OmicsCloud 的核心入口:
index/app.R:登录、注册、cookie/session 跳转。dashboard/ui.r、dashboard/server.r:登录后主控台。etc/config/conf:dep_content声明 app/module/link,例如easydia:EasyDIA:app:5。etc/dep/shared_preload_lib.r:读取配置,生成server_global。etc/dep/shared_func_lib.r:动态加载*_index.r、*_ui.r、*_output.r、*_func.r。etc/dep/shared_output_lib.r:项目表、项目详情、报告查看、下载、EasyDIA cohort 继续分析等通用输出。
OmicsCloud 已有 EasyDIA 平台入口:
etc/dep/easydia_index.retc/dep/easydia_ui.retc/dep/easydia_func.retc/dep/easydia_output.retc/dep/easydia_cohort_project_view_output.r
新增 GlycAP 的最小形态:
etc/dep/glycap_index.r etc/dep/glycap_ui.r etc/dep/glycap_output.r etc/dep/glycap_func.r etc/dep/glycap_script.r etc/dep/report_templete/glycap/*.Rmd
并在 etc/config/conf 的 dep_content 中追加:
glycap:GlycAP:app:5
3. search_script 已接入能力
search_script 是 EasyDIA 搜索任务的本地执行端。根目录下多个随机 ID 目录实际是设备/节点配置目录,每个目录包含:
config.R:设备号、LAN、脚本路径、数据盘映射、线程数、Spectronaut 路径、Rmd 路径。easydia.bat/easydia1.bat:Windows 启动脚本。easydia_server_run.R:搜索节点启动入口。cohort_sub_project_run.R:cohort 子任务节点启动入口。
已完成并已被 OmicsCloud 使用的业务/工程能力:
| 能力 | 文件 | 完成度 | 可嵌入方式 |
|---|---|---|---|
| 任务拉取和多线程调度 | omicscloud-server.r
|
已接入 | EasyDIA worker service |
| DirectDIA 搜索 | dia_search_script.R
|
已接入 | OmicsCloud 提交任务后由 worker 执行 |
| Cohort Real-time Search | dia_search_script.R、cohort_sub_project_server.R、cohort_sub_project_script.r
|
已接入 | 使用 cohort 子任务表和文件状态表 |
| Time-series QC | dia_search_script.R、source/time_series_qc_report2.Rmd
|
已接入 | OmicsCloud 已有任务入口和报告查看逻辑 |
| Spectronaut 版本发现 | search_spectronaut_version.R
|
已接入 | 写入版本表,前端选择版本 |
| 设备心跳 | search_spectronaut_version.R、cohort_sub_project_server.R
|
已接入 | OmicsCloud 服务器状态面板读取 |
| QC 报告生成 | new_qc_script.R
|
已接入 | 报告输出到 project view 可读路径 |
| Normal / PTM / SILAC QC | new_qc_script.R
|
已完成,部分能力待前端参数完善 | 报告类型参数化 |
| directDIA / PTM / LIP-MS / SILAC 导出模板 | source/easydia_setup
|
已接入 | OmicsCloud 前端读取模板 |
| 报告模板资产 | source/etc/dep/report_templete
|
已在 worker 侧使用 | 后续与 OmicsCloud 模板目录统一 |
4. 工程图
5. GlycAP 可嵌入功能
GlycAP 当前是独立 Shiny app:
ui.r:navbarPage,包含 Introduction、Analysis、Tools、Q&As。server.r:加载basic_lib.r、ident_lib.r、quant_lib.r、fun_lib.r、clinical_lib.r。etc/dep/bg_script.r:后台分析和 Rmd 报告生成。etc/dep/bg_lib.r:核心作图、富集、糖基化统计、ROC 等函数。etc/dep/report_templete/*/*.Rmd:ident、func、quant、clinic 报告模板。
可迁移功能:
| 功能 | GlycAP 入口 | 可复用点 | 集成难度 | 建议 |
|---|---|---|---|---|
| 糖基化谱鉴定 / Spectrum identification | match_panel、common_lib.r
|
pGlyco 结果解析、物种/FASTA、报告 | 高 | 先迁移结果解析和报告,pGlyco 执行后置 |
| 糖基化分析 | ident_lib.r、bg_lib.r
|
statistics、motif、glycan type、top glycans、UniProt 比对 | 中 | 第一批迁移 |
| 糖肽定量分析 | quant_lib.r、bg_lib.r
|
PCA、OPLS-DA/PLS-DA、Heatmap、T-test、FC、Volcano | 中 | 先做 demo 闭环 |
| 功能分析 | fun_lib.r、bg_lib.r
|
GO、KEGG、STRING | 中 | 复用 OmicsCloud 物种库/富集能力 |
| 临床分析 | clinical_lib.r、bg_lib.r
|
ROC、Survival | 中 | 第二批迁移 |
| 报告查看和下载 | server.r、Rmd 模板
|
report.html、report.zip
|
低 | 接入 OmicsCloud project view |
GlycAP 改造重点:
- 去掉固定路径,改用
server_global"arg_list"和项目目录。 - 把
<<-全局状态改为temp_val/tab_temp_val。 - 把
system("cp -rf ...")、system("rm -rf ...")改成 R 文件 API 或统一封装。 - 合并自有项目表到 OmicsCloud
project_info。 - 报告模板迁移到
etc/dep/report_templete/glycap/。
6. EasyDIA 可嵌入功能
OmicsCloud 已经有 EasyDIA 原生 app 雏形:
etc/dep/easydia_index.r:已有DirectDIA、Cohort Real-time Search、Time-series。etc/dep/easydia_ui.r:服务器/原始文件/项目信息/分组信息等步骤页面。etc/dep/easydia_func.r、easydia_output.r:路径、磁盘空间、raw 文件选择、条件文件等逻辑。shared_output_lib.r:已有 EasyDIA project view、cohort 文件状态、继续搜索、日志查看等逻辑。
EasyDIA 当前已经是两层结构:
| 层 | 内容 | 来源 | 状态 |
|---|---|---|---|
| 平台前端层 | 任务创建、参数、文件选择、报告查看、日志、下载 | OmicsCloud easydia_*
|
已接入,继续加固 |
| 搜索执行层 | DirectDIA、Cohort、Time-series、QC 报告、节点调度 | search_script
|
已接入,继续服务化和配置化 |
EasyDIA 源 app 中仍可迁移:
| 功能 | EasyDIA 入口 | 可复用点 | 集成难度 | 建议 |
|---|---|---|---|---|
| Atlas 数据集浏览 | app.R Proteome atlas datasets
|
mouse/human dataset、PeptideAtlas、下载 | 低 | 做只读模块 |
| Literature / Inter-lab Comparison | Projects_compare、InnerLab_compare
|
项目比较表、报告链接 | 中 | 与 OmicsCloud 项目表统一 |
| DeeP | DeeP_ui.R、DeeP_script.R
|
富集效率/批次比较、demo 报告 | 中高 | 后台任务化 |
| Pivot Transform | pivot_trans.R
|
Normal Report 转换 | 低 | 作为工具模块快速迁移 |
| LFQBench | LFQBench.R、LFQBench_script.R
|
定量准确性评估 | 中 | 保留结果页和下载 |
| EasyPRM | EasyPRM.R
|
PRM panel 表格处理 | 低中 | 工具模块 |
| IsProteotypic | IsProteotypic.R、IsProteotypic_script.R
|
蛋白/肽段属性检查 | 中 | 去掉 sudo 和固定路径 |
| Kdegger | Kdegger.R、Kdegger_script.R
|
Spectronaut 差异分析 | 中 | 接入统一 queue |
| LipAna | LipAna.R、LipAna_script.R、lipana/
|
limited proteolysis 分析 | 高 | 管理 Python/conda 环境 |
7. 建议工程拆分
omicscloud/
etc/dep/
easydia_index.r
easydia_ui.r
easydia_func.r
easydia_output.r
easydia_cohort_project_view_output.r
easydia_tools_index.r
easydia_tools_ui.r
easydia_tools_func.r
easydia_tools_output.r
glycap_index.r
glycap_ui.r
glycap_func.r
glycap_output.r
glycap_script.r
etc/dep/report_templete/
easydia/
glycap/
data/usrdata/{user_uid}/{uid}/
data/
Report/
_output_log.txt
_error_log.txt
8. 分阶段路线
Phase 0:EasyDIA 工具迁移,3 到 5 周
目标:
- EasyDIA 迁移 Pivot、EasyPRM、LFQBench,再迁移 Kdegger、IsProteotypic、LipAna。
交付:
- 顺利跑通项目。
Phase 1:GlycAP 原生 app 骨架,1 到 2 周
目标:
- 新增
glycap:GlycAP:app:5。 - 建立
glycap_index.r,声明ident、quant、function、clinical。 - 先用
GlycoQuant.zip打通 quant 上传、分析、报告、下载。
交付:
- GlycAP quant demo 闭环。
Phase 2:GlycAP 核心分析和 EasyDIA 工具迁移,3 到 6 周
目标:
- GlycAP 迁移 ident、function、clinical。
- 统一报告模板、下载和项目状态。
交付:
- 每个工具至少一个 demo 输入和结果下载。
Phase 3:上线加固,1 到 2 周
目标:
- 清理硬编码路径、shell 风险、敏感配置。
- 更新 Docker/服务器安装脚本。
- 增加最小回归测试和 demo 数据验收脚本。
交付:
- 部署文档。
- 回归测试清单。
- 上线检查表。
9. 风险和处理建议
| 风险 | 表现 | 建议 |
|---|---|---|
| 搜索节点配置含硬编码路径和敏感信息 | config.R、source/conf、source/easydia_conf
|
配置外置、脱敏、按环境生成 |
| worker 和平台耦合数据库结构 | 依赖 project_info、easydia_device_info、easydia_cohort_files_status 等表
|
写 DB 表结构文档和迁移脚本 |
| shell 命令风险 | Spectronaut 命令、bat、sudo、文件拷贝 | 集中封装命令构造和参数转义 |
| Windows/Linux 路径映射复杂 | mount_path_windows / mount_path_linux
|
抽成节点配置,前端只存逻辑路径 |
| 全局变量污染 | GlycAP 和 EasyDIA 源 app 中有 <<-
|
改为 temp_val / tab_temp_val
|
| 报告模板重复 | OmicsCloud、EasyDIA、search_script 都有 Rmd | 按 app 分目录,公共 CSS/函数抽共享库 |
| Python/conda 依赖 | LipAna | 单独容器或节点环境,不阻塞 EasyDIA 搜索闭环 |
10. 验收标准
每个迁移功能至少满足:
- 能通过 OmicsCloud 登录和权限进入。
- 输入文件在项目目录内保存,项目表有唯一 uid。
- 页面 precheck 能阻止缺失输入、错误格式和空数据。
- 后台任务可记录状态、日志和错误。
- 报告可在 project view 中打开,结果 zip 可下载。
- demo 数据可稳定跑通。
- 不依赖源项目目录存在。