4

我有一个关于最佳实践的问题。具体来说,关于从 illumina 测序中解复用读取的最佳蛇形模式。我们的工作流程需要解复用多个测序通道,然后将它们组合在一个分析中。显然,我们知道泳道和样品名称,但是样品名称在泳道之间并不相同。只有一条车道,可以执行以下操作:

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