基因容器 GCS
基因容器 GCS
- 最新动态
- 产品介绍
- 快速入门
- 用户指南
- Cromwell引擎使用指南
- 最佳实践
- 流程语法参考
- Python SDK参考
- API参考
-
CLI参考
- 命令总览
- 安装命令行工具
- 示例:使用命令行执行简单脚本
-
gcs 命令详情
- gcs version
- gcs config add
- gcs config list
- gcs get kubectl
- gcs get enviroment
- gcs set env
- gcs get sfs
- gcs set sfs
- gcs get obscli
- gcs obs upload
- gcs get workflow
- gcs create workflow
- gcs del workflow
- gcs update workflow
- gcs sub workflow
- gcs get execution
- gcs create execution
- gcs del execution
- gcs set execution
- gcs sub job
- gcs sub repjob
- gcs get tool
- gcs sub wdl
- gcs get wdl
- gcs set wdl
- get get fr
- config.ini配置说明
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
示例
本节通过一个简单的示例说明Cromwell的使用方法。
步骤1:WDL流程文件编写
使用Cromwell首先编写WDL流程文件,定义任务如何工作。Cromwell引擎使用WDL文件描述任务执行流程,WDL的语法规则请参见1.0 specification。
下面是一个简单示例WDL流程示例“example.wdl”。详细解释如下:
- 这个流程一共有3个步骤stepa、stepb、stepc,首先执行stepa,stepa使用firstInput 作为输入,且指定并发数为3;然后执行stepb,stepb使用stepa的输出stepa.out作为输入;然后执行stepc,stepc使用stepb的输出stepb.out作为输入。
- 最后将stepc.out作为最终输出结果。
- stepa、stepb、stepc中都定义了runtime运行时,指定了使用“swr.cn-north-1.myhuaweicloud.com/op_svc_gcs_container/cromwell:1.5.8”这个镜像,且指定了使用的资源大小为1核2G。
workflow example{ File firstInput scatter (idx in range(3)) { call stepa { input: in=firstInput } } call stepb { input: in=stepa.out } call stepc { input: in=stepb.out } output { File result = stepc.out } } task stepa { File in command { cat ${in} > outputa.txt && cat outputa.txt} output { File out = "outputa.txt" } runtime { docker: "swr.cn-north-1.myhuaweicloud.com/op_svc_gcs_container/cromwell:1.5.8" cpu: "1" memory: "2G" } } task stepb { Array[File] in command { cat ${write_lines(in)} > outputb.txt && cat outputb.txt} output { File out = "outputb.txt" } runtime { docker: "swr.cn-north-1.myhuaweicloud.com/op_svc_gcs_container/cromwell:1.5.8" cpu: "1" memory: "2G" } } task stepc { File in command { cat ${in} > outputc.txt && cat outputc.txt} output { File out = "outputc.txt" } runtime { docker: "swr.cn-north-1.myhuaweicloud.com/op_svc_gcs_container/cromwell:1.5.8" cpu: "1" memory: "2G" } }
上面流程定义了一个输入文件File firstInput,输入文件使用“.inputs”文件定义,如下“example.inputs”文件所示,example.firstInput使用“obs://gcs-tool-cn-north-1/example.txt”这个文件作为输入。
{ "example.firstInput": "obs://gcs-tool-cn-north-1/example.txt", }
步骤2:准备Cromwell环境
- 定义了流程后,需要准备Cromwell环境,Cromwell环境创建方法请参见创建Cromwell引擎。
- example.wdl使用了“swr.cn-north-1.myhuaweicloud.com/op_svc_gcs_container/cromwell:1.5.8”这个镜像,这个镜像是公共镜像,可以直接使用。在其他流程中使用镜像,您需要先制作好镜像,然后上传到华为云容器镜像服务中,然后再使用。
- example.inputs使用了OBS桶中的文件,“obs://gcs-tool-cn-north-1/example.txt”是一个公共可读文件,可以直接使用。在其他流程中使用文件,您可以先上传到OBS中,然后再使用。
步骤3:投递任务
环境准备好后,就可以投递任务了。
当前Cromwell引擎可以通过命令行和SDK两种方式使用。
- SDK的使用方法请参见Python SDK参考。初始化后调用Cromwell相关接口即可投递任务。
- 命令行使用方法请参见命令参考。安装命令行工具后,使用gcs sub wdl即可投递Cromwell任务。
这里使用命令行工具作为示例投递任务,如下所示。
gcs sub wdl example.wdl -i example.inputs -s gcs-env-test
gcs sub wdl是命令,example.wdl是流程文件,-example.inputs为输入文件,gcs-env-test是步骤2:准备Cromwell环境中创建的Cromwell环境的名称。
回显内容如下。
current environment is gcs-env-test create wdl succeed { "id": "aa215e0b-c896-4138-865e-6cf7921246b6", "status": "Submitted", "message": "" }
步骤4:查看执行结果
任务投递后,您可以在基因容器控制台中实时查看任务的执行过程(包括执行结果热力图)、数据、状态、结果等信息。您还可以使用命令行直接查看,具体请参见gcs get wdl。
图1 执行结果
