Оператор "Mix" не ожидает завершения процессов в восходящем направлении

У меня есть несколько процессов верхнего уровня, скажем, A, B и C, выполняющих аналогичные задачи. После этого у меня есть один процесс X, который должен обрабатывать все выходы A, B и C одинаково.

Я попытался использовать оператор "mix" для создания одного канала из выходных файлов A, B и C, например:

process A {
    output:
    file outA
}
process B {
    output:
    file outB
}
process C {
    output:
    file outC
}

inX = outA.mix(outB,outC)

process X {
    input:
    file inX

    "myscript.sh"
 }

Процесс A часто завершается раньше, чем B и C, и каким-то образом процесс X не ожидает завершения процессов B и C и принимает только выходные данные A в качестве входных данных.

1 ответ

Следующий фрагмент отлично работает:

process A {
    output:
    file outA
    """
    touch outA
    """
}

process B {
    output:
    file outB
    """
    touch outB
    """

}

process C {
    output:
    file outC
    """
    touch outC
    """
}

inX = outA.mix(outB,outC)

process X {
    input:
    file inX

    "echo myscript.sh"
}

Если вы продолжаете испытывать ту же проблему, не стесняйтесь открыть проблему, включая воспроизводимый контрольный пример.

Другие вопросы по тегам