跳转到主要内容

用于可重复的Jupyter Notebooks的类似Snakemake的管道管理器

项目描述

Build Status DOI

用于Jupyter Notebooks的类似Snakemake的管道,可以生成如下的交互式管道报告

安装及一般说明

这个软件还处于早期阶段,所以请注意它尚未准备好用于生产。注意:为了简单起见,我假设您使用的是安装了git的较新版本的Ubuntu。

pip install nbpipeline

需要Graphiz来生成静态SVG图表

sudo apt-get install graphviz libgraphviz-dev graphviz-dev

开发安装

要安装最新开发版本,可以使用以下命令:

git clone https://github.com/krassowski/nbpipeline
cd nbpipeline
pip install -r requirements.txt
ln -s $(pwd)/nbpipeline/nbpipeline.py ~/bin/nbpipeline

快速入门

创建pipeline.py文件,其中包含您的管道规则列表。例如

from nbpipeline.rules import NotebookRule


NotebookRule(
    'Extract protein data',  # a nice name for the step
    input={'protein_data_path': 'data/raw/data_from_wetlab.xlsx'},
    output={'output_path': 'data/clean/protein_levels.csv'},
    notebook='analyses/Data_extraction.ipynb',
    group='Proteomics'  # this is optional
)

NotebookRule(
    'Quality control and PCA on proteins',
    input={'protein_levels_path': 'data/clean/protein_levels.csv'},
    output={'qc_report_path': 'reports/proteins_failing_qc.csv'},
    notebook='analyses/Exploration_and_quality_control.ipynb',
    group='Proteomics'
)

输入和输出变量的键应该对应于相应笔记本中第一个单元格中的变量,该单元格应标记为“参数”。在JupyterLab中可以轻松完成此操作

如果您忘记添加它们,将显示警告。

或者,您可以创建一个专门的单元格来定义输入路径,并标记为“inputs”,另外为输出路径定义创建一个单独的单元格,并标记为“outputs”,这样在创建NotebookRule时可以省略输入和输出关键字。但是,只能推导出简单的变量定义(解析使用正则表达式以避免eval的潜在风险)。

有关更多详细信息,请参阅pipelinenotebooks示例,这些示例位于examples目录中。

运行管道

nbpipeline

在连续运行的任何情况下,没有变化的notebooks将不会再次运行。要禁用此缓存,请使用--disable_cache开关。

要生成规则图的交互式图,以及可重复性报告,请添加-i开关

nbpipeline -i

软件默认使用google-chrome进行图形可视化显示,可以通过CLI选项进行更改。

如果您命名了不同的定义文件(例如,my_rules.py而不是pipeline.py),则使用

nbpipeline --definitions_file my_rules.py

要显示所有命令行选项,请使用

nbpipeline -h

故障排除

如果您看到ModuleNotFoundError: No module named 'name_of_your_local_module',您可能需要强制指定路径,通过使用带有

PYTHONPATH=/path/to/the/parent/of/local/module:$PYTHONPATH nbpipeline

通常路径与当前目录相同,因此以下命令可能有效

PYTHONPATH=$(pwd):$PYTHONPATH nbpipeline

项目详情


下载文件

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

源分发

nbpipeline-0.2.7.tar.gz (24.1 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面