実際に入力ファイルではない依存関係を定義する方法がSnakemakeにあるかどうかを知りたいと思います。 私は、コマンドラインで提供されていないファイルが存在すると予想されるプログラムがあることを意味しています。Snakemake:入力されていない依存関係
bwa
を例として考えてみましょう。ここで
rule bwa_mem_map:
input:
lambda wildcards: config["references"][wildcards.reference],
lambda wildcards: config["units"][wildcards.unit]
output:
"mapping/{reference}/units/{unit}.bam"
params:
sample=lambda wildcards: UNIT_TO_SAMPLE[wildcards.unit],
custom=config.get("params_bwa_mem", "")
log:
"mapping/log/{reference}/{unit}.log"
threads: 8
shell:
"bwa mem {params.custom} "
r"-R '@RG\tID:{wildcards.unit}\t"
"SM:{params.sample}\tPL:{config[platform]}' "
"-t {threads} {input} 2> {log} "
"| samtools view -Sbh - > {output}"
、BWAそれは、コマンドライン引数(インデックスファイルへのパスゲノムパスから推定される)がいない間ゲノムインデックスファイルが存在することを期待する: これはJohannes Köster mapping rulesからルールです。
Snakemakeにインデックスファイルが依存関係であることを伝える方法はありますか?Snakemakeはこのファイルの生成方法を知っていればルールを調べますか?
私はあなたがまだようにルールの入力を書き換えることができたとします
rule bwa_mem_map:
input:
genome=lambda wildcards: config["references"][wildcards.reference],
fastq=lambda wildcards: config["units"][wildcards.unit]
index=foo.idx
、その結果、ルールにrun
一部を適応させます。 最高のソリューションですか?
ありがとうございます。 Benoist