これは、snakemake チュートリアルの高度なセクションからの短い例です。
rule bwa_map:
input:
"data/genome.fa",
lambda wildcards: config["samples"][wildcards.sample]
output:
"mapped_reads/{sample}.bam"
threads: 8
shell:
"bwa mem -t {threads} {input} | samtools view -Sb - > {output}"
ここで、このルールを数か月前に作成し、出力ファイル名を覚えていないとしましょう。私の理解では、エラーが発生するため、ルール名を呼び出して snakemake を実行することはできません。
$ snakemake bwa_map
InputFunctionException in line 9 of Snakefile:
AttributeError: 'Wildcards' object has no attribute 'sample'
Wildcards:
$
まず、「サンプル」セクションを参照することは明らかであるため、snakemake がラムダ関数を使用して構成ファイルから入力ファイルを推測できない理由がわかりません。
第二に、これに対する回避策はありますか?古き良き Makefile を使用して古い Makefile を使用し、次のように入力して同じ bwa_map ルールを実行するのは非常に簡単だからです。
$ make bwa_map INPUT=data/samples/A.fastq
よろしくお願いします。ブノワ