我在 nextflow 中有一个列表
chr_frequency.toList().view()
[[chr1, 70], [chr2, 50], [chr3, 45]]
和 wnat 转换成地图,如:
[ "chr1": 70, "chr2": 50, "chr2": 45 ]
我需要这种格式来映射
groupKey
test.out.map { chr, bcf -> tuple( groupKey(chr, chr_frequency[chr]), bcf.flatten() ) }.groupTuple( by: 0 ).view()
我已经尝试过:
chr_frequency
.flatten()
.view()
chr21
3
chr22
3
.toSpreadMap()
"Missing process or function toSpreadMap()"
尝试2
chr_frequency
.collate(2).collectEntries().view()
Missing process or function collectEntries()
使用 ubuntu 22.04 - openjdk 版本“11.0.22”2024-01-16
如果
[[chr1, 70], [chr2, 50], [chr3, 45]]
是通过chr_frequency.toList().view()
获得的,则chr_frequency
是Nextflow通道。这不是一个列表,您不应该尝试将它当作一个列表来处理。
我创建了一个类似于您在下面描述的通道,并通过一些 Nextflow 脚本代码获得了我认为您正在寻找的内容。
Channel
.of([['chr1', 70],
['chr2', 50],
['chr3', 45]
])
.flatMap()
.map { ["${it[0]}": it[1]] }
.collect()
.view()
如果您真的想要
[ "chr1": 70, "chr2": 50, "chr2": 45 ]
,您可以通过在 .view()
行上方添加以下行来实现:
...
.map { it.collectEntries() }
.view()