为什么我不能在null对象上调用方法view()…我的代码是:
workflow parsefq {
take: samplesheet
main:
Channel.fromPath( samplesheet )
.splitCsv ( header:true, sep:'t' ) // dict: [sample:test1, fqdir:xxx, barcode: 10, 11]
.map { create_fastq_channel(it) } //[test1, [fq1, fq2]]
.set {reads}
emit: reads
}
def create_fastq_channel(LinkedHashMap row) {...return [row.sample, fq1s, fq2s]}
workflow {
ch_input = file(params.input)
parsefq (ch_input)
.set {ch_fq}
.view() //got error on this
}
您会得到上面的错误,因为set
操作符只返回null
。它仅用于将变量名分配给通道。通常我们在通道操作链的末尾使用set
操作符。如果我们不需要对输出应用任何转换,我们可以使用=
赋值操作符分配通道名称:
workflow {
ch_input = file(params.input)
ch_fq = parsefq(ch_input)
ch_fq.view()
}