python-3.x之如何在Snakemake中进行部分扩展

kenshinobiy 阅读:13 2024-08-05 10:48:10 评论:0

我正在尝试先为LETTERS x NUMS组合生成4个文件,然后对NUMS进行汇总,以在LETTERS中为每个元素获取一个文件:

LETTERS = ["A", "B"] 
NUMS = ["1", "2"] 
 
 
rule all: 
    input: 
        expand("combined_{letter}.txt", letter=LETTERS) 
 
rule generate_text: 
    output: 
        "text_{letter}_{num}.txt" 
    shell: 
        """ 
        echo "test" > {output} 
        """ 
 
rule combine text: 
    input: 
        expand("text_{letter}_{num}.txt", num=NUMS) 
    output: 
        "combined_{letter}.txt" 
    shell: 
        """ 
        cat {input} > {output} 
        """ 

执行此蛇文件会导致以下错误:
WildcardError in line 19 of /tmp/Snakefile: 
No values given for wildcard 'letter'. 
  File "/tmp/Snakefile", line 19, in <module> 

似乎无法使用 expand部分。这是 expand的限制吗?如果是这样,我应该如何规避呢?

请您参考如下方法:

使用allow_missing=True可以部分扩展。
例如:

expand("text_{letter}_{num}.txt", num=[1, 2], allow_missing=True) 
 
> ["text_{letter}_1.txt", "text_{letter}_2.txt"] 


标签:Python
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号