【问题标题】:splitCsv join channel for each row multiple times nextflowsplitCsv 为每一行多次加入通道 nextflow
【发布时间】:2021-07-31 19:37:15
【问题描述】:

我有一个包含三列的 csv 文件 my_csv.csv,我可以使用 spliCsv 读取它,如下所示:

csv_ch.splitCsv(header:false,sep:',').map{row->tuple(row[0],row[1],row[2])}.view()
[chr1, 0, 1 10]
[chr1, 1, 10 20]
[chr1, 2, 20 30]
[chr2, 0, 1 10]
[chr2, 1, 10 20]
[chr2, 2, 20 30]
[chr3, 0, 1 10]
[chr3, 1, 10 20]
[chr3, 2, 20 30]
...

我有另一个频道map_ch,看起来像

map_ch.view()
[chr1,[map1.txt]
chr2,[map2.txt]
chr3,[mp3.txt]
chr4,[mp4.txt]]

....

现在,我想得到:

[chr1, 0, 1 10,[map1.txt]
[chr1, 1, 10 20,[map1.txt]
[chr1, 2, 20 30,[map1.txt]]
[chr2, 0, 1 10,[map2.txt]
[chr2, 1, 10 20,[map2.txt]
[chr2, 2, 20 30,[map2.txt]]
[chr3, 0, 1 10,[map3.txt]]
[chr3, 1, 10 20,[map3.txt]
[chr3, 2, 20 30,[map3.txt]]

如果我使用join 运算符,我只会得到

[chr1, 0, 1 10,[map1.txt]
[chr2, 0, 1 10,[map2.txt]
[chr3, 0, 1 10,[map3.txt]]

这不是我需要的

【问题讨论】:

    标签: nextflow


    【解决方案1】:

    combine 操作符会变魔术。

    map_ch.combine(csv_ch,by:0)

    它正好给了我我需要的东西。

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2020-12-12
      相关资源
      最近更新 更多