应用配置文件说明
AI科学计算平台中的每一个分析作业都依托于应用运行。应用是生物信息学软件和运行该软件所依赖的运行环境的镜像封装。
在AI科学计算平台,创建应用的过程通过图形化的界面操作完成。在命令行工具中,该过程以配置文件的形式给出。您可以基于获取到的模板使用命令行工具创建应用,创建好的应用将同步显示到AI科学计算平台。
获取应用模板
使用ai4s get app -s命令获取创建应用的模板,复制模板并保存到本地,您可以保存成.yaml或.txt文件,保存为txt文件时,其内容需为yaml格式。
在本地编写模板,模板中的参数与在AI科学计算平台新建应用过程一致。模板修改好后,再使用命令行工具上传模板,创建应用。
镜像制作和上传方法请参见镜像管理和创建FastQC应用样例。
app:
name: 'demo-app' # 应用名称,取值范围:[1,56],以字母开头,允许出现中划线(-)、字母和数字,且必须以字母或数字结尾。更新应用时,应用名称不支持修改。
version: '1.0.0' # 应用版本,取值范围:[1,24],以小写字母或数字或大写字母开头,允许出现中划线,必须以小写字母或数字或大写字母结尾。更新应用时,应用版本不支持修改。
summary: 'summary' # 应用简述,取值范围[0,128]
description: 'description' # 应用描述,取值范围[0,65535],后续支持markdown文本
labels: # 应用标签,取值范围[0,5],单个标签最大长度32字符,支持中文、字母、数字、空格、下划线和中划线,且不能以空格开头或者结尾。
- labelA
- labelB
image: 'project-test-01/busybox:latest' # docker镜像地址,取值范围[5-255],不能包含中文字符
commands: # docker启动时执行命令,最多支持300行,每行最多支持256个字符,不能包含中文字符
- 'echo eihealth;'
node_labels:
- label # 计算节点标签 标签个数取值范围[0-1],单个节点标签最大长度56个字符,以大小写字母或数字开头,可以包含下划线(_)、中划线(-)、点(.)、大小写字母和数字,以大小写字母或数字结尾。
resources: # 应用的资源配额
cpu_type: 'X86' # cpu架构类型,不填默认X86
cpu: '0.1C' # cpu申请使用量,取值范围[0.1-128],单位C,支持一位小数。对于应用,不填默认1C;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用
memory: '0.1G' # 内存申请使用量,取值范围[0.1-3072],单位G,支持一位小数。对于应用,不填默认1G;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用
gpu_type: '' # gpu架构类型,取值范围 ' '|GPU|Snt9。对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用
gpu: '0' # gpu申请使用量,取值范围[0-16],仅支持整数,Snt9有特殊约束,申请数量需要是0,1,2,4,8。对于应用,不填默认0;对于流程和作业,不填默认使用前一级的配置,填值会覆盖更新。覆盖关系:作业->流程->应用
inputs:
- name: 'input-dir' # 参数名称,单个应用内唯一。取值范围:长度为[1,32],以小写字母开头,允许出现中划线(-)、小写字母和数字,且必须以小写字母或数字结尾。
type: DIRECTORY # 参数类型,取值:[STRING,FILE,DIRECTORY,ENUM]
pattern: '*.fastq' # 提示用户参数填写的格式,取值范围:[0-64]。对于STRING类型,匹配字符串内容,比如后缀约束.fastq;对于ENUM类型,可以提示一定要在param_enum列表范围内取值;对于FILE类型,约束文件后缀类型;对于DIRECTORY类型,提示xxx;
required: true # 参数是否必须,取值[true,false]
concurrent: vars_iter # 是否并发,取值 vars_iter 时为开启并发状态,不设置则不开启
description: '' # 参数描述。取值范围:[0-255]
values: # 参数取值 如填写,只支持填一项,根据参数类型进行不同的校验
- 'project-test-01:/test'
- name: 'input-enum' # 参数名称,单个应用内唯一。取值范围:长度为[1,32],以小写字母开头,允许出现中划线(-)、小写字母和数字,且必须以小写字母或数字结尾。
type: ENUM # 参数类型,取值:[STRING,FILE,DIRECTORY,ENUM]
pattern: '' # 提示用户参数填写的格式,取值范围:[0-64]。对于STRING类型,匹配字符串内容,比如后缀约束.fastq;
# 对于ENUM类型,可以提示一定要在param_enum列表范围内取值;对于FILE类型,约束文件后缀类型;对于DIRECTORY类型,提示xxx;
required: true # 参数是否必须,取值[true,false]
description: '' # 参数描述,取值范围:[0-255]
enum: # type 为 ENUM 类型时需要添加enum选项
- test
- test2
values: # 参数取值,如填写,只支持填一项,只支持enum内的选项
- test
outputs:
- name: 'output-dir'
type: DIRECTORY
pattern: '*'
required: true
description: ''
values:
- 'project-test-01:/output/'