问题描述
尝试通过--config
参数将两个字符串列表传递到Snakemake工作流程时遇到问题。
我的config.yaml包含一个带有两个字符串的列表变量。
illumination_input:[“ sample1 / forward.fastq”,“ sample1 / reverse.fastq”]
当我使用Snakemake更改此YAML文件中的值时,此方法正常工作。
现在,我想使用一个shell脚本运行一批多个Snakemake运行,每个运行都提供不同的Illumina配对末端读取以供使用。我目前仅根据一条规则进行测试。
示例:
snakemake --config \
outdir=testoutputfolder/ \
illumina_input=["sample1/forward.fastq","sample1/reverse.fastq"] -r short_read_trimming
snakemake --config \
outdir=testoutputfolder/ \
illumina_input=["sample2/forward.fastq","sample2/reverse.fastq"] -r short_read_trimming
Snakefile的一部分
rule all:
input:
config["outdir"] + "reference-data-shortreads/trimmed/illumina1_trimmed_paired.fq",config["outdir"] + "reference-data-shortreads/trimmed/illumina2_trimmed_paired.fq"
rule short_read_trimming:
input:
config["illumina_input"]
output:
[config["outdir"] + "reference-data-shortreads/trimmed/illumina1_trimmed_paired.fq",config["outdir"] + "reference-data-shortreads/trimmed/illumina2_trimmed_paired.fq"]
shell:
"java -jar {config[trimmomatic_loc]} PE {input[0]} {input[1]} \
{config[outdir]}reference-data-shortreads/trimmed/illumina1_trimmed_paired.fq {config[outdir]}reference-data-shortreads/trimmed/illumina1_trimmed_unpaired.fq \
{config[outdir]}reference-data-shortreads/trimmed/illumina2_trimmed_paired.fq {config[outdir]}reference-data-shortreads/trimmed/illumina2_trimmed_unpaired.fq \
{config[trimmomatic_params]}"
Invalid config deFinition: Config entries have to be defined as name=value pairs.
我似乎无法弄清楚如何通过命令行为Snakemake配置提供列表。我试图去掉括号和逗号,并用空格代替它们,但似乎无济于事。
有人有什么主意吗?
解决方法
快要删除列表中各项之间的空格!
snakemake --config \
outdir=testoutputfolder/ \
illumina_input=["sample2/forward.fastq","sample2/reverse.fastq"]