Nextflow "flatten" 类似于 dplyr 中的 "unnest"
Nextflow "flatten" analogous to "unnest" in dplyr
Nextflow,目前不使用 DSL2。
data = [
[1, 'a', ['a1', 'a2']],
[2, 'b', ['b1', 'b2', 'b3']],
[3, 'c', ['c1']]
]
ch = Channel.from(data)
有什么方法可以从这里进入一个总共有 6 行内容的频道
[
[1, 'a', 'a1'],
[1, 'a', 'a2'],
[2, 'b', 'b1'],
[2, 'b', 'b2'],
[2, 'b', 'b3'],
[3, 'c', 'c1']
]
基本上,取消嵌套通道中每个元组的第三个项目。我想它可以通过首先 重复 嵌套列表长度的非嵌套项目然后展平结果来工作,但我不知道我会怎么做。
您可以为此使用 transpose 运算符:
data = [
[1, 'a', ['a1', 'a2']],
[2, 'b', ['b1', 'b2', 'b3']],
[3, 'c', ['c1']]
]
Channel.from(data).transpose().view()
结果:
[1, a, a1]
[1, a, a2]
[2, b, b1]
[2, b, b2]
[2, b, b3]
[3, c, c1]
Nextflow,目前不使用 DSL2。
data = [
[1, 'a', ['a1', 'a2']],
[2, 'b', ['b1', 'b2', 'b3']],
[3, 'c', ['c1']]
]
ch = Channel.from(data)
有什么方法可以从这里进入一个总共有 6 行内容的频道
[
[1, 'a', 'a1'],
[1, 'a', 'a2'],
[2, 'b', 'b1'],
[2, 'b', 'b2'],
[2, 'b', 'b3'],
[3, 'c', 'c1']
]
基本上,取消嵌套通道中每个元组的第三个项目。我想它可以通过首先 重复 嵌套列表长度的非嵌套项目然后展平结果来工作,但我不知道我会怎么做。
您可以为此使用 transpose 运算符:
data = [
[1, 'a', ['a1', 'a2']],
[2, 'b', ['b1', 'b2', 'b3']],
[3, 'c', ['c1']]
]
Channel.from(data).transpose().view()
结果:
[1, a, a1]
[1, a, a2]
[2, b, b1]
[2, b, b2]
[2, b, b3]
[3, c, c1]