Nextflow :是否可以将队列通道转换为价值通道?

Nextflow : Is it possible to tranform a queue channel to a value channel?

我有一个进程 A 将文件输出到通道 outA。我想将该文件用作 3 个下游进程 BCD 的输入。由于创建的通道 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),其输出隐式为值通道。