Omicscloud功能嵌入计划

来自OmicsWiki
Liuhebin讨论 | 贡献2026年6月26日 (五) 06:56的版本 (创建页面,内容为“= GlycAP / EasyDIA 嵌入 OmicsCloud 路线和计划 = == 1. 结论 == OmicsCloud 已经具备配置驱动的多应用平台结构,并且 EasyDIA 搜索侧已经在使用 <code>search_script</code> 作为本地计算节点/搜索执行层。后续不建议从 EasyDIA 独立 Shiny app 重新搬一遍搜索逻辑,而应该围绕现有 <code>omicscloud + search_script</code> 集成做加固、配置化和功能扩展。 当前判断: {| class="wikitable" !…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

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_heartbeateasydia_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

优先级调整:

  1. P1:新增 GlycAP 原生 app,先做 GlycAP quant demo 闭环。
  2. P2:迁移 EasyDIA 工具模块和只读数据集。
  3. P3:再处理 GlycAP pGlyco 执行、LipAna Python 环境等重依赖功能。

2. OmicsCloud 当前可接入点

OmicsCloud 的核心入口:

  • index/app.R:登录、注册、cookie/session 跳转。
  • dashboard/ui.rdashboard/server.r:登录后主控台。
  • etc/config/confdep_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.r
  • etc/dep/easydia_ui.r
  • etc/dep/easydia_func.r
  • etc/dep/easydia_output.r
  • etc/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/confdep_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.Rcohort_sub_project_server.Rcohort_sub_project_script.r 已接入 使用 cohort 子任务表和文件状态表
Time-series QC dia_search_script.Rsource/time_series_qc_report2.Rmd 已接入 OmicsCloud 已有任务入口和报告查看逻辑
Spectronaut 版本发现 search_spectronaut_version.R 已接入 写入版本表,前端选择版本
设备心跳 search_spectronaut_version.Rcohort_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.rident_lib.rquant_lib.rfun_lib.rclinical_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_panelcommon_lib.r pGlyco 结果解析、物种/FASTA、报告 先迁移结果解析和报告,pGlyco 执行后置
糖基化分析 ident_lib.rbg_lib.r statistics、motif、glycan type、top glycans、UniProt 比对 第一批迁移
糖肽定量分析 quant_lib.rbg_lib.r PCA、OPLS-DA/PLS-DA、Heatmap、T-test、FC、Volcano 先做 demo 闭环
功能分析 fun_lib.rbg_lib.r GO、KEGG、STRING 复用 OmicsCloud 物种库/富集能力
临床分析 clinical_lib.rbg_lib.r ROC、Survival 第二批迁移
报告查看和下载 server.r、Rmd 模板 report.htmlreport.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:已有 DirectDIACohort Real-time SearchTime-series
  • etc/dep/easydia_ui.r:服务器/原始文件/项目信息/分组信息等步骤页面。
  • etc/dep/easydia_func.reasydia_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_compareInnerLab_compare 项目比较表、报告链接 与 OmicsCloud 项目表统一
DeeP DeeP_ui.RDeeP_script.R 富集效率/批次比较、demo 报告 中高 后台任务化
Pivot Transform pivot_trans.R Normal Report 转换 作为工具模块快速迁移
LFQBench LFQBench.RLFQBench_script.R 定量准确性评估 保留结果页和下载
EasyPRM EasyPRM.R PRM panel 表格处理 低中 工具模块
IsProteotypic IsProteotypic.RIsProteotypic_script.R 蛋白/肽段属性检查 去掉 sudo 和固定路径
Kdegger Kdegger.RKdegger_script.R Spectronaut 差异分析 接入统一 queue
LipAna LipAna.RLipAna_script.Rlipana/ 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,声明 identquantfunctionclinical
  • 先用 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.Rsource/confsource/easydia_conf 配置外置、脱敏、按环境生成
worker 和平台耦合数据库结构 依赖 project_infoeasydia_device_infoeasydia_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 数据可稳定跑通。
  • 不依赖源项目目录存在。