tencent cloud

腾讯健康组学平台

产品简介
产品概述
产品优势
应用场景
使用限制
购买指南
计费概述
产品定价
欠费说明
快速入门
开始分析流程
示例:5分钟快速执行应用
操作指南
控制台
工作项目
文件管理
镜像管理
开发调试
权限管理
资源监控
实践教程
可视化批量任务投递及管理
任务、作业的重跑和续跑
API 文档
History
Introduction
API Category
Making API Requests
Environment Management APIs
Tencent Healthcare Omics Platform APIs
Data Types
Error Codes
常见问题
服务协议
相关协议
隐私政策
数据处理和安全协议
联系我们

WDL 应用管理(图形编辑)

PDF
聚焦模式
字号
最后更新时间: 2024-10-22 16:05:05

图形编辑模式特性

平台支持以图形编辑模式编辑 WDL 工作流,您可以通过直观的图形界面和拖拉拽操作,轻松地创建和编辑工作流,定义任务间的依赖关系。图形编辑模式具有以下特性:
低代码:在组件内容编辑器直接定义和编辑任务的输入、输出、参数等属性,无需编写复杂工作流代码。
细颗粒度:颗粒度细至 Task 级,支持任务组、条件组等多种组件,自由灵活。
可预览:通过 DAG 概览图实时预览工作流的结构和任务间的依赖关系,便于调整和优化。
高复用性:任务中定义的输入输出支持复用,方便灵活。
方便快捷:支持快捷使用平台公共数据及公共镜像。
可迁移:支持一键导出工作流代码文件(WDL),流程可迁移。
图形编辑器由组件拖拽画布组件内容编辑器三部分组成。
布局如图:




创建应用(图形编辑模式)

进入工作项目,单击右上角新增,显示新建应用弹窗,选择应用类型为 WDL



选择创建空白应用模式,输入必要信息(应用名称、描述等),编辑模式选择图形编辑,添加应用名称和简单描述,确认后即可以图形编辑模式进入应用。




编辑应用(图形编辑模式)

图形编辑模式下,应用编辑步骤如下:
1. 新增组件
在图形编辑模式下,可新增五种组件,包括任务(Task)、任务组(Scatter)、条件组(if/else)、全局输入(Workflow-input)和全局输出(Workflow- output),这些组件可覆盖 WDL 常见元素类型。
2. 编辑组件
选中组件后,在组件内容编辑器中可以定义组件的命令行、输入输出等内容。
3. 创建组件间关联
通过连线或任务间定义关联输入输出的方式,创建组件间关联。
4. 运行应用
图形编辑模式下,仅支持创建单 workflow 应用,应用在创建时平台默认会自动生成一个空 workflow 以组织各个组件。应用可执行需具备以下条件:至少具备一个 task 组件,且该 task 组件的运行设置中须指定可用的 docker 地址。

新增组件

应用可执行至少需要一个 task 组件。组件分类及对应可编辑内容如下表所示:
模块
任务(必选)
任务组
条件组
全局输入
全局输出
WDL 对应模块名称
Task
Scatter
If/else
Workflow-input
Workflow-output
可编辑内容
名称(必填)
名称
名称
名称
名称
输入
遍历条件(必填)
条件(必填)
输入
输出
命令行(必填)
运行设置
输出

编辑组件

在组件内容编辑器中,您可以定义组件的名称、输入输出等信息。选中任意组件,显示该组件对应内容编辑器。内容编辑器支持定义组件的输入输出变量、命令行、运行设置(即 WDL 中 runtime 模块)等。




任务(Task)

任务组件(Task)包含输入、运行设置、命令行、输出四个模块,其中命令行是必填模块。
输入模块
目前输入模块支持以下变量类型:
字符串(String)
整数(Int)
浮点数(Float)
文件(File)
布尔值(Boolean)
数组(Array[])
二维数组(Array[Array[]])
键值对数组(Pair[])
除了支持定义输入参数的类型和名称外,编辑器还支持设置输入参数的属性。当勾选“必填”复选框时,该参数将被设置为必填参数,进入运行流程后,需要在运行参数设置页面完成相应参数的填写。当复用其他组件的输出参数作为任务组件的输入参数时,会自动建立两个组件间的关联关系,并在画布上以连线方式显示。

输出模块
输出模块支持的变量类型与输入模块相同。任务组件的输出参数可被其他组件复用,作为其输入参数。当被其他组件复用为输入参数时,会自动建立两个组件间的关联关系,并在画布上以连线方式显示。



命令行
Command 模块是task组件中的重要部分,也是一个任务中必填的模块,它定义了任务需要执行的命令。在该模块中,可以使用各种编程语言来编写需要执行的命令,例如 bash、Python、R 等。例如运行一个生物信息学工具或者执行一个 bash 脚本。以 fastp 工具为例,如果需要进行数据质量控制,可以在 command 模块中输入以下命令:
command {
fastp -i input.fastq -o output.fastq
}
在这个例子中,fastp 工具被用于进行数据质量控制。通过 -i 参数指定输入文件,-o 参数指定输出文件。这些参数可以根据实际需求进行修改。
在图形编辑模式下,可在任务组件内容编辑器的命令行模块完成命令行相关配置。




任务组(Scatter)

Scatter 是 WDL 中的一个关键概念,用于实现并行处理以提高工作流的执行效率。在图形编辑模式下,可以通过编辑任务组来实现一个类似 Scatter 的模块。任务组需要设置遍历条件,并拖拽需要触发的任务到任务组模块内。用户可以使用任务组来批量处理多个输入数据。设置任务组的遍历条件为数据集合,将需要执行的操作定义为一个任务并将其拖入任务组中。这样,在执行到该任务组时,它会自动对数据集合中的每个数据执行该任务。这种方式可以更加方便地并行处理多条数据。使用任务组可以提高处理效率,减少重复操作,使数据处理更加高效。




条件组

在编写工作流中,您可能希望某些步骤只在满足特定条件的情况下才运行。 这可能意味着在两条执行路径之间切换(例如,在模式 A 中运行工具与在模式 B 中运行工具)或完全跳过一个步骤(例如,运行工具与不运行工具)。 在此类情况下,WDL 支持使用条件语句 if 。以下是一个 WDL 中的条件语句的例子:
if((shouldICallStepB == 0&& (m_value == "123"){
call stepB {input: in=stepA.out}}
在图形编辑模式下,可以通过在画布中添加条件组中完成条件语句的设置,条件组由条件和触发任务两部分组成,有以下功能特性:
1. 支持设置复合条件
2. 支持在条件组嵌套任务,拖拽需要触发的任务至条件组内,即可完成嵌套。
3. 支持在条件内添加函数/二元逻辑关系
上述 WDL 条件语句在图形编辑模式下设置如下图所示:



说明:
条件组变量仅支持从已有变量中选择,可选择的范围包括:1. 全局输入中有定义的变量,2. 任意任务中有定义的输出变量。

全局输入(Input)

WDL 语言中, input 是工作流中的一个重要模块,用于定义工作流的全局输入参数。在图形编辑模式下,全局输入组件(Input)允许用户在工作流的开始阶段定义一些全局的输入参数。这些参数可以在整个工作流中的任何地方使用,包括任务和任务组中。全局输入参数的主要优点是它们可以使工作流更加灵活和可重用,因为用户可以在运行工作流时改变这些参数的值。在图形编辑模式下,编辑全局输入组件需要添加全局输入参数。这些参数可以是文件、整数、字符串等各种类型。例如,以下是一个 WDL 中的全局输入的例子:
input{File bam_input Int mem_gb}
说明:
在这个例子中,定义了两个全局输入参数:bam_inputmem_gbbam_input是一个文件类型的参数,用于指定输入的 BAM 文件。mem_gb是一个整数类型的参数,用于指定使用的内存大小。
如下图所示,在图形编辑模式下,可通过在画布中添加全局输入组件,在组件内容编辑器中完成对输入参数类型和名称的定义。




全局输出(Output)

全局输出(Output)是在工作流(workflow)中定义的一种输出参数,可以被工作流中的所有任务(task)访问和使用。这种输出参数的设定方式,使得用户可以在工作流的结束阶段设定好一些全局性的参数,如文件路径、结果文件等,这些参数在整个工作流中可能被多次使用。
例如,以下是一个 WDL 中的全局输出的例子:
output {
File clean_fastq = clean_fastq_output
File inbd = inbd_output
}
如下图所示,在图形编辑模式下,可通过在画布中添加全局输出组件,在组件内容编辑器中完成对输出参数类型和名称的定义。



说明:
全局输入变量赋值仅支持从已有变量中选择,可选择的范围包括:1. 全局输入中有定义的变量,2. 任意任务中有定义的输出变量。

创建组件间关联

在图形编辑模式下,可以使用以下两种方式创建组件间关联:
1. 在画布中,使用连线连接各个组件之间的参数,建立它们之间的逻辑依赖关系。例如,将一个任务的输出参数连接至其他任务的输入参数进行赋值。
2. 在任务的组件内容编辑器中,复用其他组件的输出参数,对输入参数进行赋值。



说明:
1. 仅支持对没有赋值的参数通过连线进行赋值。
2. 支持关联的组件范围包括任务、任务组、条件组、全局输出。

保存和运行应用

更新画布内容后,建议及时保存修改,避免意外丢失内容,单击编辑页面右上角保存,即可保存更新内容,每次保存更新都会在时间轴生成一条历史记录。



图形编辑模式下,仅支持创建单 workflow 应用,应用在创建时平台默认会自动生成一个空 workflow 以组织各个组件。应用可运行需具备以下条件:至少具备一个 task 组件,且该 task 组件的运行设置中须指定可用的 docker 地址。
单击编辑页面右上角运行,即触发校验和运行流程。



校验通过后,进入运行设置页面,完成运行任务设置和运行参数设置。



1. 设置运行任务
在用一个工作项目内,任务名称不能重复。



运行选项
使用 Call-Caching 功能:使用 Call-Caching 功能,完全相同的任务无需重复执行,将自动使用之前的运算结果。
使用相对目录输出:若使用相对目录输出,所有作业输出文件将归档至相同目录,即只保留任务运行目录内的目录层级,需确保各个作业输出文件不重名。不勾选时,将保留任务多次运行的所有结果至指定目录。
举例:
当某工作流任务输出目录设置为"cos://bucket-12345678/pipeline/output",作业中输出的文件为sample.vcf:
若选择使用相对目录输出,最终输出文件为cos://bucket-12345678/pipeline/output/sample。当不同作业中有重名输出文件时,将在任务输出目录下产生文件冲突,冲突的文件会相互覆盖;
不勾选使用相对目录输出选项,最终输出文件为:cos://bucket-12345678/pipeline/output/wgs/ade68a6d876e8d-8a98d7e9-ad989a8d/call-gatk/execution/sample.vcf。不同作业输出到不同的目录中,重名输出文件不会造成冲突。
本平台支持两种运行失败模式(Cromwell 特性),NoNewCalls 和ContinueWhilePossible,可指定在工作流执行期间针对作业失败的情况采取相应的操作。
NoNewCalls(默认):一旦作业失败,Cromwell 不会立即启动任何新程序。Cromwell 仍将监控其余的工作,直到它们完成(成功与否)。
ContinueWhilePossible:尝试运行尽可能多的作业,直到无法再启动为止。当所有正在运行的作业都完成时,工作流将失败。
关于运行失败模式更多介绍,可参见 Cromwell 官方文档
任务输出目录(可选):指定任务输出目录后,作业输出文件将归档至该目录。
缓存保留期限:缓存保留期限分为4档:24小时、3天、7天和永久。
注意:
超过设定保留期限时,缓存将被删除,届时可能对 call caching 功能产生影响。
2. 设置运行参数
运行参数可根据 WDL 解析出的参数填写。
运行参数必须按照 WDL 中声明的类型,提供有效的值。
部分有默认值的参数可保留默认值。
变量名左上角带有星号的为必填输入。
可以将运行参数保存为模板,以后直接调用,也可下载输入参数为 JSON 文件。
平台为公共应用提供了参考模板,导入工作项目时,匹配工作项目所在地域的参数模板,在运行参数设置页可选择相应模板。



3. 投递单个任务 单个任务无需上传表格,手动完成运行参数的设置即可完成投递。
4. 批量运行 输入文件不同,整体流程相同的情况下,用户也可以通过上传表格批量投递任务。详情参见 可视化批量任务投递及管理

版本管理

版本管理功能涵盖发布和历史时间轴两大功能,能帮助您更好地掌握应用的进展和质量情况,从而提高应用的效率、质量和性能,优化工作流的开发和管理。
发布功能:通过发布功能,您可轻松发布正式版本,待权限管理功能上线后,您可以在不同成员范围内控制查看和使用权限,以更好地管理应用的版本。
历史时间轴:通过时间轴,您可查看历史和版本记录,追溯应用开发过程,帮助您及时发现、解决和优化问题,提高应用质量和性能,并优化您的开发流程和管理规范。

发布应用版本

工作流阶段性开发完成后,您可以发布正式版本。发布前请确认应用无语法错误且已设置主文件。确认无误单击右上角发布,即可进入发布流程。



单击发布会触发保存和校验流程,通过校验后进入发布流程,显示弹窗“发布版本”,填写发布版本名称、描述,选择参数模板后确认,完成发布。



发布完成后,在历史版本时间轴内可切换至该版本,支持查看和运行该历史版本。



说明:
历史版本仅支持查看和运行,不支持在应用内编辑、删除、发布。

查看历史记录和版本记录

查看时间轴
时间轴是应用的完整历史记录的可视化展示,包括版本记录和历史记录。时间轴视图按时间顺序排列,展示了应用工作流文件的所有更新,您可以通过时间轴追溯开发过程的关键时间节点,比较不同版本和历史记录,使得管理和控制开发过程更加容易。
查看历史记录
在时间轴视图中,应用文件每次更新后保存,都会生成一条历史记录。单击任意历史记录,资源管理器界面内容切换至该历史记录对应工作流画布。



说明:
历史记录仅供查看,不支持编辑、运行、发布和删除。
查看历史版本
时间轴视图中,发布的正式版本按历史版本同样按时间顺序排列,单击任意历史版本,资源管理器界面内容切换至该历史版本对应工作流画布。




其他功能

查看 DAG 概览图

支持查看图形编辑模式下创建的应用概览图。如下图所示,单击应用编辑页右上角 DAG(有向无环图) 按钮,显示应用 DAG 概览图。




导出 WDL 文件

组学平台支持一键导出工作流代码文件(WDL),流程可迁移。图形编辑模式下开发的应用可导出为 WDL 文件,单击编辑页面右上角扩展按钮,显示导出WDL,单击后自动导出对应 WDL 文件。





帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈