生成CWL工作流的工具

scriptcwl的Python项目详细描述


codacy_gradecodacy_coveragetravisdocumentationpypi_versionpypi_supportedDOI

scriptcwl是一个python包,用于在 Common Workflow Language (CWL)。如果你给它一些cwl CommandLineTools,您可以通过编写python脚本创建工作流。这个罐头 使用Jupyter Notebooks交互完成。全部 文档可以在Read the Docs上找到。

add multiply example workflow

给定addmultiply的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')

工作流有两个整数作为输入(num1num2),并首先添加 这两个数字(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

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有x86javapath的x64机器上x86java上的java JNI未满足链接错误   java将Pixmap的一部分上传到GPU   图像Java位图RLE8格式   java Android studio谷歌广告崩溃应用程序   java如何创建包含未知数量对象的变量?   Java计算给定int数组的所有可能组合   java JDBC classnotfound异常   httpclient中的java将HttpEntity转换为字符串的最优雅/正确的方法是什么?   如何从Java程序运行nano?   java在安卓中调用自定义类/方法   调用方法和JOptionPane后,允许代码继续执行所需的java计时器或其他想法   关于侦听器的向量Java并发问题   线程池执行器Java线程池   java配置DTO上的Swagger javax验证约束   Java中用于按钮功能的swing操作命令   ServletOutputStream中的java设置状态代码   java打印输入数组的平均值