在 Snakemake 脚本中使用 argparse

Use of argparse in Snakemake script

是否可以将自定义命令行参数传递给 snakemake 脚本?我试过了,但是用 argparse 执行 Snakefile 会导致错误 snakemake: error: unrecognized arguments: -zz。下面是一个示例脚本。

import argparse

def get_args():
    parser = argparse.ArgumentParser(description='Compares Illumina and 10x VCFs using RTG vcfeval')

    # required main arguments
    parser.add_argument('-zz', metavar='--filename', dest='fn', help='Filename', required=True)

    # parse arguments
    args = parser.parse_args()

    fn = args.fn
    return fn

fn = get_args()

rule test_1:
    input:
        fn + "/example.txt"
    shell:
        "echo Using file {input}"

从命令行传递参数是 possible using --config。例如:

snakemake --config zz="filename"

在snakefile脚本中,可以这样使用:

rule test_1:
    input:
        fn + config['zz']
    shell:
        "echo Using file {input}"

See the doc 了解更多信息。