我对最佳做法有疑问。具体来说,关于从illumina测序中解复用读数的最佳snakemake模式。我们的工作流程需要解复用多个测序通道,然后将它们组合在一个分析中。显然,我们知道泳道和样品名称,但样品名称在泳道中并不相同。只有一条车道,人们可以做类似的事情:
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])
...
请原谅我以前是否已经回答,或者是否有一些明显的方法我不知道。
干杯, 凯文