包含用于构建工作流的类和帮助程序,并提供转换为CWL/WDL的选项

janis-pipelines的Python项目详细描述


Janis(预阿尔法)

GitHub starsBuild StatusDocumentation StatusPyPI versioncodecovCode style: black

janis是一个框架,它创建专门的、简单的工作流定义,然后将其传输到
通用工作流语言或工作流定义语言。

文档存放在这里:https://janis.readthedocs.io/

简介

WARNING: this project is work-in-progress and is provided as-is without warranty of any kind. There may be breaking changes committed to this repository without notice.

janis提供了一个api来构建计算工作流,并将生成 CWL和WDL中的工作流描述。通过使用Janis,你可以获得类型安全, 跨所有执行环境的可移植性和可复制性。

janis需要安装python>;3.6,可以通过pip安装 (project page):

# Install janis and the bioinformatics tools
pip3 install janis-pipelines[bioinformatics]

您可以使用以下命令将Janis导入到项目中:

importjanisasj

结构

Janis分为几个部分:

  • ^{}-包含有助于工作流构建的类和函数。
    • ^{}-有生物信息学工具和数据类型(import janis.bioinformatics
    • ^{}-默认安装(import janis.unix
  • ^{}-使用具有共同语义的不同工作流引擎运行janis工作流的助手。

此存储库管理安装依赖项并驱动文档。

示例

进一步信息Simple Workflow

下面我们构造了一个简单的示例,它接受一个字符串输入,调用 echo工具并公开 echo工具作为工作流输出的输出。

importjanisasjfromjanis.unix.tools.echoimportEchow=j.Workflow("workflowId")inp=j.Input("inputIdentifier",data_type=j.String(),value="Hello, World!")echo=j.Step("stepIdentifier",tool=Echo())out=j.Output("outputIdentifier")w.add_edges([(inp,echo.inp),# Connect 'inp' to 'echostep'(echo.out,out),# Connect output of 'echostep' to 'out'])# Will print the CWL, input file and relevant tools to the consolew.translate("cwl",to_disk=False)# or "wdl"

我们可以使用.translate("cwl")将cwl表示导出到控制台。包括 to_disk=True参数,我们可以将此工作流写入当前位置的磁盘。

更多示例

用法

janis有一个反映工作流概念的api:

  • j.Workflow:工作流表示InputStepOutput之间的Edges。

    • j.Input:工作流的输入,具有标识符、类型和值。
    • j.Step:步骤还具有标识符和ToolCommandTool或嵌套的Workflow)。
    • j.Output:工作流的输出具有标识符并连接到步骤。
  • j.CommandTool:一个命令行样式的工具,通过输入和参数来构建它的命令。

    • j.ToolInput:工具的输入,具有标识符、类型和命令行选项,如positionprefix
    • j.ToolArgument:无法重写的工具的参数。具有值和命令行选项 比如positionprefix。该值可以是派生类型,如InputSelectorStringFormatter
    • j.ToolOutput:输出到工具,具有标识符、类型和全局。

关于

Further information: About

该项目是作为便携式管道项目的一部分与:

参考文献:

通过会议或会谈,本项目已被以下标题引用:

  • Walter and Eliza Hall Institute Talk(WEHI)2019:^{EM1}$便携式管道项目:使用标准化工作流程语言开发可复制的生物信息学管道
  • 生物信息学开源会议(Bosc)2019:Janis:一个开源工具,用于机器生成类型安全的CWL和WDL工作流
  • 维多利亚癌症生物信息学研讨会(VCBS)2019:^{EM1}$与Janis开发便携式变体呼叫管道

支架

贡献

Further information: Development

这个项目正在进行中,还在开发中。尽管我们欢迎大家的贡献,但是由于这个项目的不成熟状态,我们建议通过Github issues page提出与管道相关的问题。

关于项目结构的信息以及更多关于但是可以在the documentation中找到。

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

推荐PyPI第三方库


热门话题
java Clojure关键字在内存中的大小是多少?   Java中有固定长度的通用数组对象吗?   PostgreSQL:通过Java更新我的用户表   错误:使用java解析xml   java Json显示列表中对象的名称   java比较JodaTime时区   与JAVA中的API和包的区别?   java的int值在for循环中不改变   谷歌应用引擎中的java RSA   迁移到spring 5后出现java非法字符错误   java Websphere管理控制台不工作   JavaGSON如何始终在json中包含毫秒?   带有空格和双引号的windows Java ProcessBuilder命令参数失败   java错误:重复的zip条目[43.jar:org/apache/http/annotation/NotThreadSafe.class]