我想运行 bcl2fastq 从 bcl 格式生成 fastq 文件。
根据与测序模式相关的测序设置以及使用了多少索引,它可以生成 read1、read2、index1 或 read1、read2、index1、index2 等。
我要做的是,将读取的输出编号信息放在 config.yaml 文件中,如下所示:
readids: ['I1','I2','R1','R2']
并让规则自动计算出它应该生成多少读取输出(fastq.gz 文件)。
我如何编写输出部分来实现它?
下面是我所拥有的,它每次只能从这个规则中输出一个文件。所以它实际上运行了这个规则 4 次,每个用于 I1、I2、R1 和 R2,这不是我想要的。如何在第 45 行修复它?在第 45 行,{readid}
应该是I1,I2,R1,R2
.
39 rule bcl2fastq:
40 input:
41 "/data/MiniSeq/test"
42 params:
43 prefix="0_fastq"
44 output:
45 "0_fastq/{runid}_S0_L001_{readid}_001.fastq.gz"
46 log:
47 "0_fastq/bcl2fastq_log.txt"
48 shell:
49 """
50 bcl2fastq -R {input} -o {params.prefix} --create-fastq-for-index-reads --barcode-mismatches 1 --use-bases-mask {config[bcl2mask]} --minimum-trimmed
-read-length 1 --mask-short-adapter-reads 1 --no-bgzf-compression &> {log}
52
53 """