工作流(Workflow),是由多个连接步骤组成的一组指令,通常用于自动化的批量处理数据,可用于生物信息分析流程,Bio-OS的分析流程支持WDL描述语言,在工作流页面中,您可以选择本地导入、Git导入及TRS资源导入。导入后,即可发起计算分析。
Bio-OS目前提供三种导入工作流的方式
平台支持将本地的WDL文件或者文件夹导入到平台内,当您选择上传是文件夹时,需要手动指定主文件,作为WDL文件的入口。
选择Git导入,输入工作流名称,git地址,git项目tag和token,主工作流路径,简短描述。完成后点击确定。
Git 地址: 在这里需要输入git的项目的主地址,后面不要带有分支内容。
Git tag:在git中,标签用于指定某一次具体的提交,以github为例,选择分支可以看到您所需要的当前标签。如果没有tag也可以填写分支的名称。
Git token: github在 2021.8.13
移除了密码认证的支持,它建议使用 personal access token
代替密码认证, 您可以在左侧设置中找到Access Token并复制到参数中
Git主工作流路径: 您可以找到您所需要导入工作流的文件,并点击复制按钮,直接将当前文件的路径复制到输入参数中
CallCaching: 开启后会在之前运行的任务的缓存中搜索具有完全相同的命令和完全相同的输入的任务。 如果缓存命中,将使用前一个任务的结果而不是重新运行,从而节省时间和资源。
平台兼容GA4GH推出的TRS规范,能够将TRS Server内的资源通过TRS API导入到平台内。您需要在工作流仓库内复制TRS ID填入到TRS导入表单中,然后检查名称、描述以及选择指定版本,最后点击导入。
要在Bio-OS上运行工作流,您需要指定所有必需的工作流输入变量。
选择实体数据模型,并选择数据。
配置输入参数
点击输入参数选项卡,配置输入属性值。属性是与工作流中的输入变量相对应的整数、字符串或文件。您将通过选择填写设置表单中所有必需变量的属性字段来指定输入。您可以手动输入或者用this来指定数据模型中的参数,又或者使用JSON来进行属性字段的输入。
一些常见的属性格式举例: 整数 - 50
字符串 - string
数组(用逗号隔开) - [string1 ,string2]
文件路径 - S3://analysis /sc94ra7leig43voqu4vlg /CramToBamFlow /5d915601-75c3-493b-9c7d-d136c9f9a296 /call-CramToBamTask /execution/script
**为什么要将输出写入数据表?**写入数据表可以将工作流的输出与输入数据文件相关联(输出文件与表中的输入文件一起写入),并有助于以对您有意义的方式组织输出。它还使使用数据进行下游分析变得容易。
转到输出参数选项卡。
对于每个输出变量,单击属性值字段。您将看到一个下拉列表,其中列出了运行选项中所选的实体数据模型中存在的所有列。
选择现有列或输入新名称以将新数据列添加到表中。 如果原表格中没有此列则按照列名新加列;如果原表格有对应的列,则会将直接将新结果进行填充或覆盖
点击输入参数或者输出参数选项卡时,可以选择下载JSON文件,编辑后可以上传 JSON 文件以设置工作流输入或者输出
对于不同的工作流,当您想在工作流配置中使用相同的输入时,它会派上用场。例如,如果您创建一个新配置,通常您每次都必须手动输入所有输入,即使此新配置将使用许多与现有配置相同的输入。现在,您可以将先前配置中的输入作为 JSON 下载并上传以填充新配置。
您可以在WDL的runtime中增加字段"instanceType", 并按照火山云服务器规格https://www.volcengine.com/docs/6396/68527 文档中的实例规格进行配置,如您需要使用ecs g3i 48vCPU 192G的云服务器,则可以按如下配置:
runtime{ instanceType: ecs.g3i.12xlarge }
当您在WDL的runtime中增加instanceType后,优先匹配instanceType,忽略原有的runtime中所配置的cpu、内存设置,如无instanceType字段,仍会根据您设置的vCPU和内存进行资源分配
部分情况下您可能需要修改系统盘大小,比如您的运行镜像很大,解压后超过 35G的镜像(系统盘默认大小为40G,一般镜像不建议超过35),建议增加系统盘,您可以在WDL的runtime中设置bootDiskSizeGb字段时来设置系统盘大小,如您需要将系统盘大小设置为50G,可按如下示例在runtime中增加:
runtime{ bootDiskSizeGb: 50 }
目前Bio-OS已经支持通过在WDL的runtime中配置gpu参数来将任务调度到GPU的实例规格中,目前在Bio-OS所支持的GPU显卡类型共有2种,分别是:
显卡类型 | gpuType |
---|---|
T4(单卡16G显存) | "Tesla-T4" |
V100 (单卡32 GB显存) | "Tesla-V100" |
A30 (单卡24 GB显存) | "NVIDIA-A30" |
A100 (单卡80 GB显存) | "Tesla-A100-80G" |
runtime中配置方式举例如下,其中gpuType参数需匹配上面的表格中的字符:
runtime { gpuType : "Tesla-T4" gpuCount : 1 }
使用GPU过程中,不同的卡类型会有固定的cpu及内存规格,如您固定了gpu卡的类型,那您设置的cpu和内存将会向上取整以以下规格启动。
GPU卡类型 | gputype | GPU卡数量 | gpuCount | cpu | mem |
---|---|---|---|---|---|
T4 | "Tesla-T4" | 1 | 1 | 4 | 16 |
1 | 1 | 8 | 26 | ||
1 | 1 | 16 | 64 | ||
2 | 2 | 16 | 52 | ||
2 | 2 | 32 | 128 | ||
4 | 4 | 32 | 104 | ||
4 | 4 | 64 | 256 | ||
4 | 4 | 84 | 342 | ||
A30 | "NVIDIA-A30" | 1 | 1 | 28 | 234 |
2 | 2 | 56 | 468 | ||
4 | 4 | 112 | 936 |