生成CWL工作流的工具
scriptcwl的Python项目详细描述
scriptcwl是一个python包,用于在 Common Workflow Language (CWL)。如果你给它一些cwl CommandLineTools,您可以通过编写python脚本创建工作流。这个罐头 使用Jupyter Notebooks交互完成。全部 文档可以在Read the Docs上找到。
给定add和multiply的cwlCommandLineTools(这些是可用的 在scriptcwl中, 此工作流的CWL规范可以编写为:
fromscriptcwlimportWorkflowGeneratorwithWorkflowGenerator()aswf:wf.load(steps_dir='/path_to_scriptcwl/scriptcwl/examples/')num1=wf.add_input(num1='int')num2=wf.add_input(num2='int')answer1=wf.add(x=num1,y=num2)answer2=wf.multiply(x=answer1,y=num2)wf.add_outputs(final_answer=answer2)wf.save('add_multiply_example_workflow.cwl')
工作流有两个整数作为输入(num1和num2),并首先添加 这两个数字(wf.add(x=num1, y=num2)),然后乘以答案 使用第二个输入(num2)。该处理步骤的结果是 工作流程的。最后,将工作流保存到文件中。结果如下:
#!/usr/bin/env cwl-runner
cwlVersion: v1.0
class: Workflow
inputs:
num1: int
num2: int
outputs:
final_answer:
type: int
outputSource: multiply/answer
steps:
add:
run: add.cwl
in:
y: num2
x: num1
out:
- answer
multiply:
run: multiply.cwl
in:
y: num2
x: add/answer
out:
- answer
示例中使用的python和cwl文件可以在examples folder中找到。
安装
使用pip安装:
pip install scriptcwl
用于开发:
git clone git@github.com:NLeSC/scriptcwl.git
cd scriptcwl
python setup.py develop
使用以下命令运行测试(包括覆盖率):
python setup.py test
有用的工具
要使用scriptcwl创建cwl工作流,您需要cwlCommandLineTools。 有一些软件包可以帮助生成 对于在Python中编写的现有命令行工具:
- argparse2tool:从使用argparse的python程序生成cwl commandlinetool包装器(和/或galaxy工具描述)。还支持click参数分析器。
- pypi2cwl:在pypi中的任何包上自动运行argparse2cwl。
- python-cwlgen:以编程方式生成commandlinetool和dockerrequirement
许可证
版权所有(c)2016-2018,荷兰特温特大学escience中心
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。