示例:
#!/usr/bin/env nextflow
nextflow.enable.dsl=2
workflow
{
days = Channel.of("Sat", "Sun", "Mon")
tasks = Channel.of("Cleaning", "Cooking")
tasks_days = tasks.combine(days)
tasks_days.view()
}当前产出:
$ nextflow run bench.nf
N E X T F L O W ~ version 22.04.0
Launching `bench.nf` [shrivelled_avogadro] DSL2 - revision: fb7c91b512
[Cleaning, Sat]
[Cooking, Sat]
[Cleaning, Sun]
[Cooking, Sun]
[Cleaning, Mon]
[Cooking, Mon]我感兴趣的是如何创建新的tasks_days频道,其中包含第一个元素清洗,烹饪,清洗,烹饪,清洗,烹饪
发布于 2022-08-02 11:39:11
您可以使用地图操作符和闭包来完成以下操作:
tasks_days = tasks.combine(days).map { it.first() }请注意,上面将抛出一个给定空列表的NoSuchElementException。如果您希望在列表为空时使用null值,只需使用:
tasks_days = tasks.combine(days).map { it[0] }还请注意,Groovy闭包支持参数解包,因此在最简单的情况下,您可以使用以下方法获得第一个元素:
tasks_days = tasks.combine(days).map { task, day -> task }https://stackoverflow.com/questions/73204784
复制相似问题