carpentries-incubator / workflows-nextflow

Workflow management with Nextflow and nf-core
https://carpentries-incubator.github.io/workflows-nextflow/
Other
18 stars 29 forks source link

Nextflow review @bobturneruk ep3, tuple definition #119

Open ggrimes opened 2 months ago

ggrimes commented 2 months ago

I'm not clear on how a tuple is defined here.

It's introduced as "a grouping of data, represented as a Groovy List" - could it be called a list?

The Nextflow docs really only talk about tuples in the fromFilePairs section "The matching files are emitted as tuples".

Maybe there is an important distinction, but I'm a bit confused.

I see Tuples are defined here https://www.nextflow.io/docs/latest/process.html#input-type-tuple and in the lesson here

https://carpentries-incubator.github.io/workflows-nextflow/05-processes-part2.html#grouped-inputs-and-outputs

ggrimes commented 2 months ago

I agree it is confusing.

In Nextflow, tuples are preferred over lists because they ensure data remains unchanged and grouped correctly as it passes through various steps of a pipeline, thanks to their immutable and fixed-size nature. This helps maintain data integrity and simplifies the management of complex workflows.

https://blog.mrhaki.com/2016/03/groovy-goodness-using-tuples.html

I will have a go at rewording