2.6. Operadors
A la secció anterior hem vist com moure canals per dirigir les dades entre els processos. Per poder modificar el contingut o el comportament d’un canal, Nexflow ha creat el que es denominen operadors. En els scripts anteriors hem vist l’operador view, però podem trobar operadors de filtratge, combinació o d’operacions matemàtiques entre molts altres. En aquesta secció en veurem alguns exemples.
Els operadors es poden introduir mitjançant un pipe (|), com hem vist anteriorment, o precedits per un punt. Així:
workflow{
ordenE(pi,queue_ch) | view( )
}
és anàleg a:
workflow{
ordenE(pi,queue_ch).view( )
}
A partir de l’script anterior eliminarem el canal valor pi i ens quedarem amb un exemple més senzill amb el canal of queue_ch. Com veureu a continuació hi afegim la notació .view, i dins d’aquest operador hi introduïm un prefix, chr, i un valor, $it, entre { }. Aquests parèntesis defineixen un bloc de codi que va al costat i utilitza la nomenclatura de goovy (it, d’ítem) per definir els paràmetres.
nextflow.enable.dsl=2
queue_ch = Channel.of( 1, 3, 5, 7 ).view({"chr$it"})
process ordenE {
input:
val x
output:
stdout
"""
echo $x
"""
}
workflow{
ordenE(queue_ch)
}
En aquest cas l’output es visualitza a la figura 6.

Font: elaboració pròpia.
Podem introduir un filtre al canal per mostrar únicament els valors superiors a 4:
queue_ch = Channel.of( 1, 3, 5, 7 ).filter { it > 4 }.view({"chr$it"})
També podem combinar canals utilitzant l’operador mix:
ch1 = channel.of( 1..22 )
ch2 = channel.of( 'X','Y' )
ch3 = channel.of( 'MT' )
queue_ch = ch1.mix(ch2,ch3).view({"chr$it"})
i fer operacions com comptar el nombre d’elements:
queue_ch = ch1.mix(ch2,ch3).count().view()
Les possibilitats dels operadors proporcionen una versatilitat molt gran de poder manipular les dades que volem analitzar.