process PIVOT_WIDER{ input: path(tsv) output: path("wider.tsv"), emit: tsv script: """ csvtk spread -t -k 2 -v 3 -H ${tsv} > wider.tsv """ } workflow { ch_rows= channel.fromList([["A","V1",1],["A","V2",2],["B","V1",3],["B","V2",4]]) .view() .map{s,c,v->"${s}\t${c}\t${v}"}.view() ch_narrow=ch_rows.collectFile(name:"test.tsv",newLine:true).view() PIVOT_WIDER(ch_narrow).view() }