4

ベスト プラクティスについて質問があります。具体的には、イルミナシーケンシングからの読み取りを逆多重化するための最適なsnakemakeパターンについて。私たちのワークフローでは、シーケンスの複数のレーンを逆多重化し、これらを 1 つの分析に組み合わせる必要があります。もちろん、レーンとサンプルの名前はわかっていますが、サンプル名はレーン間で同じではありません。レーンが 1 つだけの場合、次のようなことができます。

SAMPLES = [...]
rule demux:
    input:
        reads="lanes/lanename.fastq.gz",
        key="keys/lanename.txt"
    output:
        reads=expand("reads/{sample}.fastq.gz", sample=SAMPLES)
    ...

ただし、複数のレーンがあるため、関数を出力ルールとして使用したくて行き詰まっています。以下はどのように可能なものに変換されますか:

LANES = {
    "lane1": ["S1", "S2"],
    "lane2": ["S3", "S4"],
    "lane3": ["S5", "S6"],
}

rule demux:
    input:
        reads="lanes/{lane}.fastq.gz",
        key="keys/{lane}.txt"
    output:
        reads=lambda wc: expand("reads/{sample}.fastq.gz", sample=LANES[wc.lane])
...

これが以前に回答されている場合、または私が見逃している明らかなアプローチがある場合は、ご容赦ください。

乾杯、 ケビン

4

0 に答える 0