1

是否可以將自定義命令行參數傳遞給snakemake腳本?我試過了,但執行Snakefile與​​導致錯誤snakemake: error: unrecognized arguments: -zz。以下是一個示例腳本。在Snakemake腳本中使用argparse

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}" 
+0

你是如何調用這個腳本的?通常我會希望看到:'python your_script.py -zz afilename'。 – hpaulj

+0

找到解決方案。允許通過'--config'。 [來源](http://snakemake.readthedocs.io/en/stable/project_info/faq.html#is-it-possible-to-pass-variable-values-to-the-workflow-via-the-command-線) – JeeYem

回答

1

從命令行傳遞參數是possible using --config。例如:

snakemake --config zz="filename"

在snakefile腳本,這可以以這種方式使用:

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

See the doc獲取更多信息。