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

时间:2018-12-29 18:34:22

标签: nextflow

我有一个进程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。

1 个答案:

答案 0 :(得分:0)

您可以使用first()运算符来执行此操作,例如:

inX = outA.first()

process B {
    input:
        file inX
    "script of process B $inX"
}

etc

还请注意,当一个流程没有输入(如流程A)时,其输出是隐式的值通道。