Pytest的装置,用于使用Cromwell运行WDL工作流。

pytest-wdl的Python项目详细描述


Pytest WDL

Travis CICode CoverageDocumentation Status

此包是pytest单元测试框架的插件,该框架允许测试用Workflow Description Language编写的工作流。

依赖关系

  • Python3.6+
  • Java 1.8+
  • Cromwelljar文件
  • Docker后台程序(如果WDL任务依赖于Docker映像)

安装库时会安装其他python依赖项。

安装

从pypi安装

$ pip install pytest-wdl

从源安装

您可以克隆存储库并安装:

$ make install

或者使用pip从github安装:

$ pip install git+https://github.com/elilillyco/pytest-wdl.git

安装可选依赖项

Pytest WDL的一些可选功能具有按需加载的附加依赖项。例如,要启用工作流的预期和实际BAM文件输出的比较,需要pysam库。

以下数据类型需要“附加”安装:

  • 巴姆

为具有额外依赖项的数据类型安装依赖项:

$ pip install pytest-wdl[<data_type>]

要在本地执行此操作,可以克隆repo并运行:

$ pip install -e .[<data_type>]

安装pytest wdl和all附加依赖项:

$ pip install pytest-wdl[all]

用法

pytest wdl插件提供了一组用于pytest的fixture。下面是一个简单的示例:

# test_variant_caller.pydeftest_variant_caller(workflow_data,workflow_runner):inputs=workflow_data.get_dict("bam","bai")inputs["index"]={"fasta":workflow_data["index_fa"],"organism":"human"}expected=workflow_data.get_dict("vcf")workflow_runner("variant_caller/variant_caller.wdl","call_variants",inputs,expected)

此测试将使用指定的输入执行工作流(如下面的工作流),并将输出与指定的预期输出进行比较。

# variant_caller.wdl
version 1.0

struct Index {
  File fasta
  String organism
}

workflow call_variants {
  input {
    File bam
    File bai
    Index index
  }
  ...
  output {
    File vcf = variant_caller.vcf
  }
}

输入和输出数据与测试脚本在同一目录下的test_data.json文件中定义:

{"bam":{"url":"http://example.com/my.bam"},"bai":{"url":"http://example.com/my.bam.bai"},"index_fa":{"name":"chr22.fasta"},"vcf":{"url":"http://example.com/expected.vcf.gz","type":"vcf","allowed_diff_lines":2}}

有关详细信息,read the docs

开发

要开发pytest wdl,请克隆存储库并安装所有依赖项:

$ git clone https://github.com/EliLillyCo/pytest-wdl.git
$ pip install -r requirements.txt

要运行完整的生成和单元测试,请运行:

$ make

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

推荐PyPI第三方库


热门话题
如何表示1。。Java中的n关系   java在安卓应用程序中添加polaris viewer   Java字符串::replaceAll仅替换第一个出现(可能不正确的正则表达式)   java Tomcat/JBoss部署后脚本   如何在Heroku Java应用程序中运行发出web请求的周期进程   java如何以纳秒为单位证明算法的时间   Solaris上的java自定义ListCellRenderer(使用jre5)   java试图为我的播放器类测试块实现播放器重力(RealtutsGml平台教程)   c#消耗一个。带有java的net web服务未显示预期结果   java在KOI8\R中检索html   基于java图形的搜索与基于随机的搜索   java如何检查安卓设备上的可用空间?在SD卡上?