Nextflow中如何展平元组第二个元素并拆分通道给fqcheck进程
解决方案
直接用flatMap操作替代flatten(),它能让你自定义处理每个元组元素,保留ID的同时单独拆分每个fastq文件:
filter (ch_splitfq) .set {ch_fq} // tuple: val(id), path(sample.clean_*.fq.gz) ch_fq.flatMap { id, fq_files -> fq_files.collect { file -> tuple(id, file) } } .set {ch_fq_per_file} fqcheck (ch_fq_per_file) .collect() .set {ch_fqcheck}
说明
flatMap会遍历ch_fq中的每个元组(比如sample1和对应的两个fastq文件列表)- 在闭包里,我们把每个fastq文件单独和原ID组成新的
tuple,再通过collect把这些新元组整理成列表 - 最终
ch_fq_per_file的结构就是你需要的:tuple(val(sample1), path(sample1.clean_1.fq.gz))和tuple(val(sample1), path(sample1.clean_2.fq.gz)),可以直接传给fqcheck进程
内容的提问来源于stack exchange,提问作者Calli
相关产品推荐
相关产品推荐

