我有一个关于最佳实践的问题。具体来说,关于从 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])
...
如果之前已经回答过这个问题,或者如果我遗漏了一些明显的方法,请原谅我。
干杯,凯文