Nextflow 具有不同文件数量的多个输入

问题描述

我正在尝试输入两个通道。但是,seacr_res_ch2 有 4 个文件,bigwig_ch3 有 5 个文件,其中包含一个对照和 4 个样本。所以我试图运行以下过程来计算峰值中心。 当我运行这个过程时,我遇到了这个错误:在寻找匹配的`"' 时出现意外的 EOF

process compute_matrix_peak_center {

    input:
    set val(sample_id),file(seacr_bed) from seacr_res_ch2
    set val(sample_id),file(bigwig) from bigwig_ch3

    output:
    set val(sample_id),file("${sample_id}.peak_centered.mat.gz") into peak_center_ch

    script:
    """

    "computeMatrix reference-point \
        -S ${bigwig} \
        -R ${seacr_bed} \
        -a 1000 \
        -b 1000 \
        -o ${sample_id}.peak_centered.mat.gz \
        --referencePoint center \
        -p 10

    """
}

解决方法

输入文件可能不是 file 对象。尝试用 file 替换声明中的 path,例如:

input:
set val(sample_id),path(seacr_bed) from seacr_res_ch2
set val(sample_id),path(bigwig) from bigwig_ch3

查看文档了解详情https://www.nextflow.io/docs/latest/process.html#input-of-type-path

,

您的输入块声明了两次名为 sample_id 的值。如果值来自两个(或更多)通道,则无法保证这些值相同。一个值将简单地破坏其他值。您需要先join()这些频道:

input:
set val(sample_id),file(seacr_bed),file(bigwig) from seacr_res_ch2.join(bigwig_ch3)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...