【问题标题】:Declare variable-length array as a config value with Snakemake CLI使用 Snakemake CLI 将可变长度数组声明为配置值
【发布时间】:2018-11-27 18:15:35
【问题描述】:

我有一个 Snakemake 工作流程,其中一个顶级配置条目是一个可变大小的数组(在这个特定示例中,分析中可能包括也可能不包括兄弟姐妹)。目前我正在使用以下配置文件。

{
    "case": "/scratch/standage/12175/BAMs/12175.proband.bam",
    "controls": [
        "/scratch/standage/12175/BAMs/12175.mother.bam",
        "/scratch/standage/12175/BAMs/12175.father.bam"
    ]
}

我知道snakemake 允许在命令行上使用--config 标志指定配置选项。由于case 值是单个字符串,因此在命令行上执行此操作很简单。但是controls 值呢?是否可以将数组/值列表作为命令行上的配置选项之一传递?

【问题讨论】:

    标签: configuration command-line-interface snakemake


    【解决方案1】:

    是否可以将数组/值列表作为命令行上的配置选项之一传递

    我怀疑这是直接可能的,但你可以传递一个带引号的空格字符串(或逗号或其他)分隔值,你拆分到 Snakefile 中的列表:

    snakemake -C controls='control1 control2 ...'
    

    然后在 Snakefile 里面:

    controls= config['controls'].split(' ')
    

    【讨论】:

      【解决方案2】:

      另一种解决方案是像这样在命令行上传递变量...

      snakemake --config case=proband.bam control1=mother.bam control2=father.bam
      

      ...然后在 Snakefile 中动态解析配置设置。例如,任何匹配正则表达式control\d+ 的配置键都对应于一个对照样本。

      所以这是可能的,但有点牵强,配置文件可能是更好/更清洁的选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-17
        • 2013-08-11
        • 1970-01-01
        • 2013-08-02
        • 2020-08-04
        • 2012-05-28
        • 1970-01-01
        • 2021-10-26
        相关资源
        最近更新 更多