You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nextflow中实现分组元组与对应RDS文件的关联(多对比组支持)

Nextflow分组匹配样本对应RDS文件的实现

初始分组生成

从Nextflow通道输出生成分组元组的代码如下:

ch_groups = INPUT_CHECK_GEX.out.group_samplesheet
            .splitCsv( header:true, sep:',', strip:true )
            .map { row ->
                    def keyID = row["keyid"]
                    def sampleID = row["sampleid"]
                    return [keyID, sampleID]
                }
            .groupTuple()
        ch_groups.view()

输出结果:

[group1-group2, [sample1, sample2, sample3, sample4]]

需求与遇到的问题

现有另一个元组格式通道 SEURAT_SINGLE.out.rds,存储样本与对应RDS文件路径的映射。需要为每个分组元组获取对应的所有RDS文件列表,但遇到以下问题:

  • 新增对比组后,初始方法仅输出第一个组的结果
  • 使用join操作虽能识别多组,但无法处理同时属于多个组的重复样本

最终解决方案

通过combine操作实现需求,代码如下:

ch_groups = INPUT_CHECK_GEX.out.group_samplesheet
            .splitCsv( header:true, sep:',', strip:true )
            .map { row ->
                    def key = row["keyid"]
                    def sample = row["sampleid"]
                    return [sample, key]
                }
            .combine(SEURAT_SINGLE.out.rds, by: 0)
            .map { sample, key, rds_file -> tuple( key, rds_file ) }
            .groupTuple()
            .view()

该代码可正确输出每个分组对应的完整RDS文件列表,包括多组共享样本的对应文件。


内容的提问来源于stack exchange,提问作者Samantha Sevilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:12:17