无需共享通配符即可耦合输入和输出

问题描述 投票:0回答:1

我有一组输入:[A,B,C,D]

以及一组输出:[1, 2, 3, 4]

我希望规则的输入/输出对为:A1、B2、C3、D4。

如何在蛇形文件中做到这一点?

python snakemake
1个回答
2
投票

提供更多详细信息和一些问题的示例代码将会有所帮助。无论如何,我会将字母/数字对放入字典或数据框中,并使用 lambda 函数来访问与字母对应的数字:

numbers = ['1', '2', '3', '4']
letters = ['A', 'B', 'C', 'D']

ln = dict(zip(numbers, letters))

rule all:
    input:
        expand('{number}.txt', number= numbers),

rule out:
    input:
        letter= lambda wc: ln[wc.number],
    output:
        '{number}.txt'
    shell:
        """
        echo {input.letter} > {output}
        """
© www.soinside.com 2019 - 2024. All rights reserved.