簡體   English   中英

運行塊中的snakemake命名輸入文件

[英]snakemake named input files in run block

我的代碼如下所示:

rule my_rule:
    input: 
        in_one = rules.some_rule_one.output,
        in_two = rules.some_rule_two.output,
    output: some_output
    run:
        with open(input.in_one, 'rt') as f:
            ## do_something

當我運行它時,我收到以下錯誤:

RuleException:
TypeError in line ## of myfile.smk:
expected str, bytes or os.PathLike object, not set

我應該如何輸入輸入文件名?

顯然,解決方案是使用rules.some_rule_one.output[0]rules.some_rule_two.output[0]

但是,如果some_rule的輸出已命名,則它們可以按原樣使用。

rule some_rule_one:
    input: 'some_input_one'
    output: 'some_output_one'
    shell: ...

rule some_rule_two:
    input: 'some_input_two'
    output:
        foo = 'some_output_two'
    shell: ...

rule my_rule:
    input: 
        in_one = rules.some_rule_one.output[0],
        in_two = rules.some_rule_two.output.foo,
    output: some_output
    run:
        with open(input.in_one, 'rt') as f:
            ## do_something

也許只是為了讓事情變得有趣,當my_rule使用shell:而不是run:時,這不是問題run:即, rules.some_rule_one.output可以與shell: rules.some_rule_one.output正常工作shell:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM