求助:fromFilePairs通道工厂无法正确生成文件配对
解决Nextflow fromFilePairs无法正确配对文件的问题
你的问题出在通配符模式没有定义正确的捕获组,导致Nextflow无法识别两个文件属于同一配对。
问题分析
你使用的*{1,2}.txt模式只是简单匹配文件名末尾带1或2的txt文件,但没有告诉Nextflow哪些部分是配对文件的公共前缀。因此每个文件被单独视为一个配对项,输出自然是分开的单个文件。
解决方案
需要用括号()定义捕获组,让Nextflow提取出配对文件的公共部分作为键。根据你预期的输出,调整通配符模式如下:
workflow test { paired_files = channel.fromFilePairs(file("(.*-)[12].txt")).view() }
或者用更清晰的{1,2}语法也可以:
workflow test { paired_files = channel.fromFilePairs(file("(.*-){1,2}.txt")).view() }
原理说明
(.*-)是捕获组,会提取文件名中-和数字之间的公共部分(这里就是fileA-),作为配对的键。[12]或{1,2}用来匹配配对文件的区分后缀(1和2)。- fromFilePairs会自动将拥有相同捕获组内容的文件归为同一配对。
运行修改后的代码,就能得到你预期的输出:
[fileA-, [fileA-1.txt, fileA-2.txt]]
内容的提问来源于stack exchange,提问作者Manan Chopra
相关产品推荐
相关产品推荐

