我试图创建一个条件管道 NextFlow。例如,
进程 A 向通道输出一个值。如果值为 1,则运行 X,否则运行 Y。
这是我想做的事情:
initialData = 2
receiver1 = "EMPTY"
receiver2 = "EMPTY"
receiver3 = ""
process A {
input:
val initialData
output:
val initialData into trigger
'''
echo 10
'''
}
process foo {
input:
val trigger
output:
val "I ran from FOO" into receiver2
when:
trigger == 2
'''
echo I ran from FOO
'''
}
process bar {
input:
val trigger
output:
val "I ran from BAR" into receiver1
when:
trigger == 1
'''
echo I ran from BAR
'''
}
假设 foo 和 bar 是等效的,但实现不同(例如,一个将电影从 AVI 转换为 h.264,另一个从 MOV 转换为 h.264)。我想要另一个进程,比如 C,它可以从 Bar 或 Foo 读取,而无需对触发器一无所知。但是,如果我在 Foo 和 Bar 中使用相同的输出通道名称,nextflow 会抱怨。