Skip to main content

围绕 Nextflow 的 Python 包装器。

项目描述

词 版本 皮皮 下一个 执照

nextflow.py 是围绕 Nextflow 管道框架的 Python 包装器。它允许您从 Python 代码运行 Nextflow 管道。

例子

>>> import nextflow
>>> execution = nextflow.run(path="main.nf", params={"param1": "123"})
>>> print(execution.status)

安装

点子

nextflow.py 可以使用 pip 安装:

$ pip install nextflow

如果您收到权限错误,请尝试使用sudo

$ sudo pip install nextflow

发展

可以在此处找到包含最新迭代的 nextflow.py 存储库。要直接从那里克隆 nextflow.py 存储库,请使用:

$ git clone git://github.com/goodwright/nextflow.py.git

下一个流

nextflow.py 需要安装 Nextflow 可执行文件并在您的 PATH 中。可以在 他们的网站上找到安装 Nextflow 的说明。

测试

要测试 nextflow.py 的本地版本,请 cd 到 nextflow.py 目录并运行:

$ python -m unittest discover tests

您可以选择仅运行单元测试或集成测试:

$ python -m unittest discover tests.unit
$ python -m unittest discover tests.integration

概述

任何 nextflow.py 管道的起点都是Pipeline 对象。这使用相关文件的路径进行初始化,并且可选地,随附配置文件的位置:

>>> pipeline1 = nextflow.Pipeline("pipelines/my-pipeline.nf")
>>> pipeline2 = nextflow.Pipeline("main.nf", config="nextflow.config")

跑步

要实际执行管道,使用run方法:

>>> execution = pipeline.run()

这将返回一个Execution对象,该对象代表刚刚发生的管道执行。您可以使用各种选项自定义执行:

>>> execution = pipeline.run(location="./rundir", params={"param1": "123"}, profile=["docker", "test"], version="22.0.1")

这会将执行设置为在不同的位置进行,在运行管道时将 --param1=123作为命令行参数传递,使用 Nextflow 配置文件“docker”和“test”,并使用 Nextflow 版本 22.0.1 运行(无论安装了哪个版本的 Nextflow)。

处决

Execution表示 Pipeline的单次执行。它具有以下属性:

  • id - 该运行的唯一 ID,由 Nextflow 生成。

  • 开始- 管道运行的时间(作为 UNIX 时间戳)。

  • started_dt - 管道运行的时间(作为 Python 日期时间)。

  • 持续时间- 执行时间(以秒为单位)。

  • status - Nextflow 报告完成时的状态。

  • command - 用于运行管道的命令。

  • stdout - 执行过程的标准输出。

  • stderr - 执行过程的标准错误。

  • log - 生成的日志文件的全文。

  • returncode - 运行的退出代码 - 通常为 0 或 1。

  • pipeline -创建执行的Pipeline 。

它还有一个process_executions属性,它是 ProcessExecution对象的列表。Nextflow 通过将孤立的“进程”链接在一起来处理数据,每个进程都有一个 ProcessExecution对象来表示其执行。它们具有以下特性:

  • hash - Nextflow 生成的唯一 ID,格式为xx/xxxxxx

  • process - 产生流程执行的流程的名称。

  • name - 此特定流程执行的名称。

  • status - Nextflow 报告完成时的状态。

  • stdout - 流程执行的标准输出。

  • stderr - 流程执行的标准错误。

  • 开始- 进程执行的时间(作为 UNIX 时间戳)。

  • started_dt - 流程执行运行的时间(作为 Python 日期时间)。

  • 持续时间- 流程执行花费了多长时间(以秒为单位)。

  • returncode - 流程执行的退出代码 - 通常为 0 或 1。

流程执行可以将各种文件传递给它们,并且在执行期间也会创建文件。这些可以通过以下方式获得:

>>> process_execution.input_data() # Full absolute paths
>>> process_execution.input_data(include_path=False) # Just file names
>>> process_execution.all_output_data() # Full absolute paths
>>> process_execution.all_output_data(include_path=False) # Just file names

轮询

上面描述的方法将运行管道并在它运行时等待,完成的Execution仅在最后返回。

另一种方法是使用run_and_poll,它每隔几秒返回一个 Execution对象,表示当时管道执行的状态,作为生成器:

for execution in pipeline.run_and_poll(sleep=2, location="./rundir", params={"param1": "123"}, profile=["docker", "test"], version="22.0.1"):
    print("Processing intermediate execution")

默认情况下,每 5 秒返回一次Execution,但您可以根据需要使用sleep参数进行调整。如果您想在管道执行过程中获取有关其执行进度的信息,这将非常有用。

直接运行

如果您只想运行单个管道而不首先初始化 Pipeline对象,则可以直接runrun_and_poll,而无需创建 Pipeline

>>> import nextflow
>>> execution = nextflow.run(path="pipeline.nf", config="settings.config", params={"param1": "123"})

变更日志

发布 0.4.2

2022 年 9 月 26 日

  • 为进程执行添加了bash属性。

发布 0.4.1

2022 年 9 月 11 日

  • 修复了执行轮询中先前执行最初干扰的问题。

  • 执行解析现在检查目录是否已完全准备好进行解析。

  • 修复了在某些语言环境中无法解析日志的问题。

发布 0.4.0

2022 年 7 月 13 日

  • 流程执行现在将其输入文件报告为路径。

  • 流程执行现在将其所有输出文件报告为路径。

  • 执行现在具有其原始管道的属性。

  • 删除了架构功能。

发布 0.3.1

2022 年 6 月 15 日

  • 进程轮询现在可以在进程进行时访问 stdout 和 stderr。

发布 0.3

2022 年 6 月 4 日

  • 允许直接运行管道的模块级运行方法。

  • 允许运行具有不同 Nextflow 版本的管道。

  • 改进的日期时间解析。

  • 简化流程执行解析。

  • 修复了不带括号的流程执行串联。

  • 测试现在检查与不同 Nextflow 版本的兼容性。

发布 0.2.2

2022 年 3 月 21 日

  • 日志输出现在删除了 ANSI 代码。

发布 0.2.1

2022 年 2 月 19 日

  • 执行轮询现在处理未就绪的执行目录。

  • 在执行过程中更好地检测失败的流程执行。

发布 0.2

2022 年 2 月 14 日

  • 添加了在连续轮询管道执行时运行的方法。

  • 优化从文件状态创建流程执行对象。

发布 0.1.4

2022 年 1 月 12 日

  • 如果已经有引号,则管道命令生成不再应用引号。

发布 0.1.3

2021 年 11 月 24 日

  • 修复了 Windows 文件分隔符问题。

  • 重命名 NextflowProcess -> ProcessExecution。

发布 0.1.2

2021 年 11 月 3 日

  • 更好地处理丢失的 Nextflow 可执行文件。

发布 0.1.1

2021 年 10 月 29 日

  • 将 nextflow_processes重命名为process_executions

  • 在路径周围添加引号以处理路径中的空格。

发布 0.1

2021 年 10 月 18 日

  • 基本管道对象。

  • 基本执行对象。

  • 基本 ProcessExecution 对象。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

nextflow-0.4.2-py3-none-any.whl (23.2 kB 查看哈希

已上传 py3