Nextflow :是否可以将队列通道转换为价值通道?
Nextflow : Is it possible to tranform a queue channel to a value channel?
我有一个进程 A
将文件输出到通道 outA
。我想将该文件用作 3 个下游进程 B
、C
和 D
的输入。由于创建的通道 outA
默认是一个队列通道,我不能直接多次使用该文件(与值通道不同)。
目前,我使用 into
运算符复制频道 outA
,如 here 所述(参见下面的代码)。
我还知道您可以通过 Channel.value(file('/path/to/file.txt'))
从文件创建价值渠道。
我目前的代码:
// Upstream process creating a queue channel with one file
process A {
output:
file outA
"echo 'Bonjour le monde !' > $outA"
}
// Queue channel triplication
outA.into {inB; inC; inD}
// Downstream processes all using the same file
process B {
input:
file inB
"script of process B $inB"
}
process C {
input:
file inC
"script of process C $inC"
}
process D {
input:
file inD
"script of process D $inD"
}
我现在工作正常,但我想知道是否可以将队列通道 outA
转换为值通道,以便我可以使用 相同的通道作为输入进程 B、C 和 D。
您可以使用 first()
运算符来执行此操作,例如:
inX = outA.first()
process B {
input:
file inX
"script of process B $inX"
}
etc
另请注意,当进程没有输入时(如进程 A),其输出隐式为值通道。
我有一个进程 A
将文件输出到通道 outA
。我想将该文件用作 3 个下游进程 B
、C
和 D
的输入。由于创建的通道 outA
默认是一个队列通道,我不能直接多次使用该文件(与值通道不同)。
目前,我使用 into
运算符复制频道 outA
,如 here 所述(参见下面的代码)。
我还知道您可以通过 Channel.value(file('/path/to/file.txt'))
从文件创建价值渠道。
我目前的代码:
// Upstream process creating a queue channel with one file
process A {
output:
file outA
"echo 'Bonjour le monde !' > $outA"
}
// Queue channel triplication
outA.into {inB; inC; inD}
// Downstream processes all using the same file
process B {
input:
file inB
"script of process B $inB"
}
process C {
input:
file inC
"script of process C $inC"
}
process D {
input:
file inD
"script of process D $inD"
}
我现在工作正常,但我想知道是否可以将队列通道 outA
转换为值通道,以便我可以使用 相同的通道作为输入进程 B、C 和 D。
您可以使用 first()
运算符来执行此操作,例如:
inX = outA.first()
process B {
input:
file inX
"script of process B $inX"
}
etc
另请注意,当进程没有输入时(如进程 A),其输出隐式为值通道。