我有一个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
值呢?是否可以在命令行上将值的数组/列表作为配置选项之一传递?
答案 0 :(得分:1)
是否可以在命令行上将值的数组/列表作为配置选项之一传递
我怀疑这是否可能直接实现,但是您可以传递一个用引号引起来的字符串(或逗号或其他)分隔的值,这些值将分割后在Snakefile中列出:
snakemake -C controls='control1 control2 ...'
然后在Snakefile中
controls= config['controls'].split(' ')
答案 1 :(得分:0)
另一种解决方案是像这样在命令行上传递变量...
snakemake --config case=proband.bam control1=mother.bam control2=father.bam
...然后在Snakefile中动态解析配置设置。例如,与正则表达式control\d+
匹配的任何配置键都对应于一个控件样本。
所以这是可能的,但要花点时间,配置文件可能是更好/更干净的选择。