Open Bing64 opened 10 months ago
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.
流程语言拓展T4-Hiplot
功能说明
本项目在Kubernetes环境下完成了Sapporo的兼容,打破了Bio-OS开源发行版当前架构设计模式下单机应用的能力限制,使Bio-OS项目可以完整地部署在K8S集群环境中,并实现对K8S算力资源的有效调度。
本项目支持WDL、CWL、Nextflow、Snakemake四类生物医学领域主流的工作流声明语言(Bioos前端目前仅支持WDL CWL执行,另外两种正在开发中),并对Sapporo项目接口进行了标准化,使其可以暴露标准的WES接口,该接口可供Bio-OS项目 API server 无缝调用,可支持作为Bio-OS Nextflow WDL 等工作流运行的WES Endpoint。
简单总结:
详细设计
本项目设计了一个运行在Kubernetes上的全流程语言任务调度引擎,其主要包括两部分:一、基于Sapporo开发的支持WES API的API server;二、基于TESK的支持TES API的任务执行引擎。Sapporo收到提交任务请求后,对请求进行解析和处理,随后通过TES API向TESK服务器提交任务并执行。对不同的流程语言设计了不同的任务执行方式。
Bio-OS通过WES协议调用该引擎,主要用到的接口包括:POST /runs(提交任务)、GET /runs/{run_id}(查询任务日志)、POST /runs/{run_id}/cancel(取消任务)。
关键功能优化
Sapporo的标准WES API适配
Sapporo与BioOS APIserver对接
在Kubernetes中部署TESK及Sapporo
完成四种流程语言执行方式的修改
Bioos项目多语言适配及优化
使用演示
Bio-os工作流扩展方法
扩展一种新的工作流语言,需要进行如下工作:
Api-server端
internal\context\workspace\infrastructure\workflowparser
在这个包里,实现一个新的工作流语言解析器,包括以下内容:
internal\context\workspace\infrastructure\workflowparser\workflowparser.go
在这个文件里,初始化一个解析器注册函数
internal\context\workspace\application\command\workflow\commands.go
在这个文件里初始化解析器实例
Web端
web\src\pages\workflow\Run.tsx
在下图所示函数中定义各种工作流语言所对应的exposedOptions
在下图所示部分设计对应的ui界面
新增功能
后端服务
代码地址
sapporo
Githhub仓库地址
支持docker部署和k8s部署,分别在develop和develop-k8s分支
TESK
Github仓库地址
使用指南
部署Bio-os项目
为WES Endpoint配置代理
通过Sapporo作为统一的WES后端,不同的工作流声明语言的仅暴露同一个WES endpoint,由于Sapporo WES Base URL 与Cromwell WES Base URL存在差异,为了尽可能少的干预两个项目的原初设计,使用Nginx对Sapporo所暴露的服务进行转发,如下:
亦可在Bio-OS 项目 Config中修改 WES bath path 参数,但会影响api-server与Cromwell的wes endpoint的对接。
部署Sapporo
以下是k8s部署步骤,若使用docker部署,可参考develop分支下的docker-compose.dev.yaml文件
按需修改deployment.yaml和service.yaml中存储、端口、namespace等相关配置,随后依次执行如下命令部署:
TESK部署
按需修改charts\tesk\values.yaml中存储、端口相关参数:
在charts\tesk\templates\common\tesk-deployment.yaml中修改数据卷挂载的相关参数:
随后依次执行如下命令部署:
测试
Bio-os中,导入测试使用cwl流程:NCI-GDC/gdc-rnaseq-cwl 及 hacchy1983/CWL-workflows
执行测试使用cwl流程:hacchy1983/CWL-workflows
snakemake及nextflow语言,在bioos端完成适配后方可使用。目前可通过手动提交请求测试,所有用到的测试流程和文件都在sapporo的develop-k8s分支中的sapporo/test-examples文件夹给出。测试方法如下,其中所使用的地址和端口需对应替换: