首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snakemake对工作流设计的建议以克服模糊规则

Snakemake对工作流设计的建议以克服模糊规则
EN

Stack Overflow用户
提问于 2018-02-01 17:07:23
回答 1查看 411关注 0票数 1

我有两个规则能够根据通配符值产生相同的输出,这会导致模糊的规则异常。

我阅读了关于http://snakemake.readthedocs.io/en/latest/snakefiles/rules.html?highlight=ruleorder#handling-ambiguous-rules的关于处理模糊规则异常的文档。

使用规则顺序似乎是解决问题的方法。但是,我的规则preprocess_zheng17的输入取决于simulate_data规则的输出。因此,如果我使用ruleorder: simulate_data > preprocess_zheng17,则永远不会运行preprocess_zheng17规则。

我想要做的是首先运行simulate_data,然后对每个通配符对运行preprocess_zheng17规则。我想知道什么是一个很好的工作流设计实践来解决这个问题。规则如下。

代码语言:javascript
复制
rule preprocess_zheng17:
    input:
        loom_file = SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}.loom'
    params:
        transpose = False
    output:
        SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}_zheng17.loom'
    script: 
        "scripts/preprocess_zheng17.py"

rule simulate_data:
    input:
        sample_loom = HDF5_OUTPUT+'/{sample}.loom'
    params:
        group_prob = config['splat_simulate']['group_prob'],
        dropout_present = config['splat_simulate']['dropout_present']
    output:
        SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}.loom'
    script:
        "scripts/data_simulation.R"

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 12:46:27

您的问题不是来自设计,而是因为无法区分两个规则的输出和使用的通配符。SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}_zheng17.loom'SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}.loom'

以相同的模式开始和结束,snakemake无法确定_zheng17是否是通配符{loc}的一部分。

您可以使用bli在他的注释中所描述的内容,也可以稍微更改任一规则的输出。例如:

代码语言:javascript
复制
rule preprocess_zheng17:
    input:
        loom_file = SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}.loom'
    params:
        transpose = False
    output:
        SIMULATED_DATA_OUTPUT+'/{sample}_sim_zheng17_loc{loc}.loom'
    script: 
        "scripts/preprocess_zheng17.py"

rule simulate_data:
    input:
        sample_loom = HDF5_OUTPUT+'/{sample}.loom'
    params:
        group_prob = config['splat_simulate']['group_prob'],
        dropout_present = config['splat_simulate']['dropout_present']
    output:
        SIMULATED_DATA_OUTPUT+'/{sample}_sim_loc{loc}.loom'
    script:
        "scripts/data_simulation.R"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48568166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档