(以前称为CWLAB。)
一个开源的,可云的Web应用程序,用于简化大数据工作流程。
CI/CD:
包装:
引文和贡献:
注意:Workflux处于beta状态,未来可能会引入破坏变化。但是,如果您想对其进行测试,甚至在生产中运行,我们将为您提供支持。
可以使用PIP进行安装:
python3 -m pip install workflux
有关可用选项的讨论,请参阅“配置”部分。
使用您的自定义配置启动Web服务器(或遗漏--config标志以使用默认一个):
workflux up --config config.yaml
如果您想利用容器进行依赖性管理,则需要安装Docker或与Docker兼容的容器化解决方案(如Singularity或Udocker)。要在Windows或MacOS上运行,请安装专用Docker版本:Windows的Docker,Mac的Docker
Web界面的用法应通过建立指令进行自我解释。以下部分概述了基本用法方案。
WorkFlux用平台 - 不合时宜的Python编写,因此可以执行以下操作:
任何具有命令行接口的CWL跑步者都可以集成到WorkFlux中,以执行CWL Workflows或Tool-Wrappers,例如:
因此,WorkFlux可以用于这些CWL跑步者支持的任何基础架构,包括:
*请注意:
Windows上的执行仅由CWLTool支持,该CWLTool与Docker进行了对Windows的交谈。因此,可以在Windows上使用WorkFlux提供的图形接口在Windows上执行最初为Linux/MacOS设计的CWL包装工具和工作流程。
请参阅我们的教程,该教程会引导您介绍一个简单而有意义的示例,说明如何使用工作流程比较两个患者队列中Covid-19的尖峰蛋白序列。
这是一些掌握者: 

WorkFlux是一个通用的软件包,几乎没有对用于执行CWL的硬性和软件环境的假设。为了使其适应您的系统和用例,可以使用一组配置选项:
所有配置选项都可以在一个启动时提供给WorkFlux的单个YAML文件中指定:
workflux up --config my_config.yaml
要获取示例配置文件,请运行以下命令:
workflux print_config > config.yaml (或参见下面的示例)
web_server_host :
指定网络服务器运行的主机或IP地址。仅在您的计算机上使用localhost来进行本地使用。使用0.0.0.0允许同一网络中其他机器的远程可访问性。
默认值: localhost
web_server_port :
指定Web服务器使用的端口。
默认值:5000
temp_dir :
临时文件的目录。
默认值:主目录中的一个子文件夹“ WorkFlux/Temp”
Workflow_dir :
保存CWL文档的目录。
默认值:主目录中的一个子文件夹“ WorkFlux/Temp”
exec_dir :
保存执行数据(包括输出文件)的目录。
默认值:主目录中的一个子文件夹“ WorkFlux/Temp”
default_input_dir :
默认目录用户可以在其中搜索输入文件。您可以使用“ add_input_dirs ”参数指定其他输入目录。默认值:主目录中的一个子文件夹“ WorkFlux/Temp”
db_dir :
数据库目录。
默认值:主目录中的一个子文件夹“ WorkFlux/Temp”
add_input_dirs :
除了“ default_input_dir ”外,用户还可以搜索这些目录以获取输入文件。
请按照本示例所示的格式“名称:路径”指定它们:
ADD_INPUT_DIRS:
GENOMES_DIR: '/ngs_share/genomes'
PUBLIC_GEO_DATA: '/datasets/public/geo'
默认值:没有其他输入元。
add_input_and_upload_dirs :
用户还可以搜索这些目录以查看输入文件(除了“ default_input_dir ”),他们也可以上传一个文件。
请按照本示例所示的格式“名称:路径”指定它们:
ADD_INPUT_AND_UPLOAD_DIRS:
UPLOAD_SCRATCH: '/scratch/upload'
PERMANEN_UPLOAD_STORE: '/datasets/upload'
默认值:没有其他输入元。
调试:
如果设置为true,则调试模式将打开。不要在生产系统上使用。
默认值:false
这是您配置如何在系统上执行CWL作业的地方。配置文件由四个步骤组成:准备,执行,评估和最终确定(仅需要执行,其余的是可选的)。对于每个步骤,您都可以指定在BASH或CMD终端执行的命令。
您可以定义多个执行配置文件,如下面的配置示例所示。这使前端用户可以在不同的执行选项之间进行选择(例如,使用不同的CWL跑步者,不同的依赖关系管理系统,甚至在多个可用的可用批处理执行基础结构(如LSF,PBS)之间进行选择。对于每个执行配置文件,以下配置参数可用(但仅需要类型和EXEC ):
类型:
指定要使用的外壳/解释器。对于Linux或MacOS,使用bash 。对于Windows,使用powershell 。
必需的。
max_retries :在将运行标记为失败之前,指定执行(所有步骤)的次数。
暂停:
对于执行配置文件中的每个步骤,您可以设置超时限制。
默认:
prepare : 120
exec : 86400
eval : 120
finalize : 120准备*:
在实际CWL执行之前执行的命令。例如,加载所需的Python/Conda环境。
选修的。
exec *:
命令启动CWL执行。通常,这只是执行CWL Runner的命令行。 CWL Runner的Stdout和Stderr应重定向到预定义的日志文件。
必需的。
评估*:
执行步骤结束时的退出状态会自动检查。在这里,您可以指定命令以额外评估执行日志的内容,以确定执行是否成功。要交流失败的工作流量,请将SUCCESS变量设置为False 。
选修的。
最终确定*:在Exec和eval之后执行的命令。例如,这可用于清理临时文件。
*有关执行资料步骤的其他注释:
JOB_IDRUN_ID (请注意:仅在作业中是唯一的)WORKFLOW (通往使用过CWL文档的路径)RUN_INPUT (包含输入参数的YAML文件的路径)OUTPUT_DIR (特定于运行的输出目录的路径)LOG_FILE (日志文件的路径应接收CWL Runner的Stdout和stderr)SUCCESS (如果设置为False则运行将被标记为失败和终止)PYTHON_PATH (用于运行Workflux的Python解释器的路径)SUCCESS变量设置为False 。{...}中)都必须在一行中。在下面,您可以找到用于本地执行CWL工作流或使用CWLTool的工具的示例配置。
WEB_SERVER_HOST : localhost
WEB_SERVER_PORT : 5000
DEBUG : False
TEMP_DIR : ' /home/workflux_user/workflux/temp '
WORKFLOW_DIR : ' /home/workflux_user/workflux/workflows '
EXEC_DIR : ' /datasets/processing_out/ '
DEFAULT_INPUT_DIR : ' /home/workflux_user/workflux/input '
DB_DIR : ' /home/workflux_user/workflux/db '
ADD_INPUT_DIRS :
GENOMES_DIR : ' /ngs_share/genomes '
PUBLIC_GEO_DATA : ' /datasets/public/geo '
ADD_INPUT_AND_UPLOAD_DIRS :
UPLOAD_SCRATCH : ' /scratch/upload '
PERMANEN_UPLOAD_STORE : ' /datasets/upload '
EXEC_PROFILES :
cwltool_local :
type : bash
max_retries : 2
timeout :
prepare : 120
exec : 86400
eval : 120
finalize : 120
exec : |
cwltool --outdir "${OUTPUT_DIR}" "${WORKFLOW}" "${RUN_INPUT}"
>> "${LOG_FILE}" 2>&1
eval : |
LAST_LINE=$(tail -n 1 ${LOG_FILE})
if [[ "${LAST_LINE}" == *"Final process status is success"* ]]
then
SUCCESS=True
else
SUCCESS=False
ERR_MESSAGE="cwltool failed - ${LAST_LINE}"
fi WEB_SERVER_HOST : localhost
WEB_SERVER_PORT : 5000
DEBUG : False
TEMP_DIR : ' C:Usersworkflux_userworkfluxtemp '
WORKFLOW_DIR : ' C:Usersworkflux_userworkfluxworkflows '
EXEC_DIR : ' D:processing_out '
DEFAULT_INPUT_DIR : ' C:Usersworkflux_userworkfluxinput '
DB_DIR : ' C:Usersworkflux_userworkfluxdb '
ADD_INPUT_DIRS :
GENOMES_DIR : ' E:genomes '
PUBLIC_GEO_DATA : ' D:publicgeo '
ADD_INPUT_AND_UPLOAD_DIRS :
UPLOAD_SCRATCH : ' E:upload '
PERMANEN_UPLOAD_STORE : ' D:upload '
EXEC_PROFILES :
cwltool_windows :
type : powershell
max_retries : 2
timeout :
prepare : 120
exec : 86400
eval : 120
finalize : 120
exec : |
. "${PYTHON_PATH}" -m cwltool --debug --default-container ubuntu:16.04 --outdir "${OUTPUT_DIR}" "${CWL}" "${RUN_INPUT}" > "${LOG_FILE}" 2>&1
eval : |
$LAST_LINES = (Get-Content -Tail 2 "${LOG_FILE}")
if ($LAST_LINES.Contains("Final process status is success")){$SUCCESS="True"}
else {$SUCCESS="False"; $ERR_MESSAGE = "cwltool failed - ${LAST_LINE}"} 此软件包可以在Apache 2.0许可证下免费使用和修改。
谢谢这些好人(表情符号钥匙):
克尔斯滕·布鲁尔(Kersten Breuer) ? | Pavlo Lutsik ? ? | Sven Twardziok | 马里乌斯 ? | 卢卡斯·耶洛尼克(Lukas Jelonek) | 迈克尔·富兰克林 | 亚历克斯·卡尼兹(Alex Kanitz) |
Yoann Pageaud | 亚森·阿森诺夫(Yassen Assenov) ? | Yuyu Lin ? |
该项目遵循全企业规范。欢迎任何形式的贡献!