是否可以使用命令行标志启用/禁用某些Snakemake规则

时间:2019-05-17 03:07:28

标签: snakemake

是否可以将蛇make文件和/或规则文件配置为仅在某些情况下使用命令行开关执行某些规则。

要详细说明,可以说我的规则文件夹中有以下规则:

  • 规则1
  • 规则2a
  • 规则2b
  • 规则2c
  • 规则3

是否可以通过这种方式配置/执行工作流程:

  • 呼叫snakemake --user_option 2a将导致规则1,规则2a, 规则3被调用
  • 调用snakemake --user_option 2b将导致规则1,规则2b,规则3被调用
  • 依此类推

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在命令行中传递user_option作为配置键,然后使用if-else来决定要使用的中间规则。例如。

snakemake --config option='2a'

虚拟的Snakefile:

rule all:
    input:
        'output.txt',

rule one:
    output:
        'foo.txt'

if config['option'] == '2a':
    rule two_a:
        input:
            'foo.txt',
        output:
            'bar.txt',
elif config['option'] == '2b':
    rule two_b:
        input:
            'foo.txt',
        output:
            'bar.txt',
else:
    sys.exit() ## handle this case

rule three:
    input:
        'bar.txt',
    output:
        'output.txt',