Ben Sherman
10/15/2026, 10:20 PMBen Sherman
10/15/2026, 10:24 PMcombine and groupBy) but they are not suitable for interfaces like process inputs/outputsBen Sherman
10/15/2026, 10:25 PMBen Sherman
10/15/2026, 10:28 PMBen Sherman
10/15/2026, 10:33 PMBen Sherman
10/15/2026, 10:38 PMBen Sherman
10/15/2026, 10:43 PMnextflow lint π
It is very good at spotting mismatches and name collisions with records. I encourage you to spend some time with the linter to see what it can do. You can establish some naming conventions if you want, but I really don't think this part will be as difficult as you thinkJames Fellows Yates
10/16/2026, 6:14 AMJames Fellows Yates
10/16/2026, 6:15 AMJames Fellows Yates
10/16/2026, 6:16 AMMahesh Binzer-Panchal
10/16/2026, 7:02 AMJames Fellows Yates
10/16/2026, 7:09 AMJonathan Manning
10/16/2026, 7:10 AMJames Fellows Yates
10/16/2026, 7:12 AMMahesh Binzer-Panchal
10/16/2026, 7:13 AMJames Fellows Yates
10/16/2026, 7:29 AMMaxime Garcia
10/16/2026, 7:30 AMJames Fellows Yates
10/16/2026, 7:31 AMJim Downie
10/16/2026, 7:40 AMarg=value format, where you /map/ your record fields directly onto the input arguments of a process, and you don't permanently modify a record by renaming fields. This also sidesteps the problem of structure entirely - processes take flat inputs and how a pipeline gets them to a module is entirely up to the pipeline.
3. On the topic of a standardised vocabulary, I think such a thing would be hard for the domain-specific things discussed already. But also, I think we would have to have a system of hyper-generic input names ("fasta", "alignment", "tsv", etc.) with a system of super-specific output names (e.g. "minimap2_align_bam", "samtools_faidx_fai") so that when we join records together, there's no risk of overwriting fields accidentally (than if all modules that write BAM have an output "bam" field, for example).Jim Downie
10/16/2026, 7:41 AMMaxime Garcia
10/16/2026, 7:42 AMJim Downie
10/16/2026, 7:46 AMJose Espinosa-Carrasco
10/16/2026, 7:50 AMJames Fellows Yates
10/16/2026, 8:01 AMMahesh Binzer-Panchal
10/16/2026, 8:06 AMMahesh Binzer-Panchal
10/16/2026, 8:07 AMArthur
10/16/2026, 8:14 AMAlso, I want consistency. We pretty much HAVE to have record types at pipeline boundaries, and being forced to keep tuples internally, preventing me from accessing the nice type safetyIf you have type-safety at the boundaries, do the internals - which you control as a pipeline dev - really matter?
I think the other thing Iβm really starting to feel is that the drip-feeding of these new features has made this more complicated100% agree On the naming issue, named inputs are both great and awful. You now have the ability with named record fields to be order-agnostic and clearer to a reader about what the input is. However if you just end up having to rename half your fields between modules then that is going to be no better and possibly even a considerably worse user experience, than having to occasionally re-shape channels. In that sense I think
nf-core should absolutely aim for generic and standardised field names.James Fellows Yates
10/16/2026, 8:16 AMIf you have type-safety at the boundaries, do the internals - which you control as a pipeline dev - really matter?Yeah @Julian Flesch proposed this - I liked this too. But @Jonathan Manning and @Nicolas Vannieuwkerke didn't want to rompcromise
James Fellows Yates
10/16/2026, 8:17 AMJames Fellows Yates
10/16/2026, 8:17 AMJames Fellows Yates
10/16/2026, 8:17 AMJames Fellows Yates
10/16/2026, 8:19 AMArthur
10/16/2026, 8:20 AMmodule run command stuff, which is neat, but as a pipeline dev not really important to me.Nicolas Vannieuwkerke
10/16/2026, 8:23 AMNicolas Vannieuwkerke
10/16/2026, 8:23 AMMatthias De Smet
10/16/2026, 8:23 AMI think the other thing Iβm really starting to feel is that the drip-feeding of these new features has made this more complicatedI would also much prefer the shorter stabbing pain. As for the naming, I think we can meet halfway be defining naming conventions for frequently used inputs (eg.
reference_fasta, reference_fai ) while also allowing custom naming for less frequently used or domain specific stuff. Output naming should be process specific along the lines of module-name_output-nameArthur
10/16/2026, 8:24 AMvcf vcf_index etc because then I have to do fewer channel manipulations and renaming of record fields no?James Fellows Yates
10/16/2026, 8:25 AMJim Downie
10/16/2026, 8:25 AMvcf_index from different processes? e.g. SVs and indels for one sampleArthur
10/16/2026, 8:26 AMJim Downie
10/16/2026, 8:26 AMNicolas Vannieuwkerke
10/16/2026, 8:26 AMNicolas Vannieuwkerke
10/16/2026, 8:26 AMArthur
10/16/2026, 8:26 AMvcf_index from different processes?
Well in that case you rename them - but everyone who doesnβt need to, doesnβt have to?Arthur
10/16/2026, 8:27 AMJim Downie
10/16/2026, 8:27 AMMatthias De Smet
10/16/2026, 8:27 AMBCFTOOLS_VIEW(vcf: ..., vcf_index: ..)
BCFTOOLS_INDEX(vcf: BCFTOOLS_VIEW.out.bcftoolsview_vcf)
so standard inputs, custom outNicolas Vannieuwkerke
10/16/2026, 8:28 AMJames Fellows Yates
10/16/2026, 8:28 AMAre you guys willing to arbitrate/curate the choices of these names?
Matthias De Smet
10/16/2026, 8:28 AMArthur
10/16/2026, 8:29 AMAre you guys willing to arbitrate/curate the choices of these names?Are you asking if I want to wield the hammer of power? π But I think generally this not much different from out current situation in nf-core, most places that output a vcf call it
vcf?Maxime Garcia
10/16/2026, 8:29 AMJim Downie
10/16/2026, 8:30 AMvcf but I don't think that's the same for FASTAJim Downie
10/16/2026, 8:30 AMMatthias De Smet
10/16/2026, 8:30 AMfasta, reference, fa all pointing to a reference genomeMaxime Garcia
10/16/2026, 8:31 AMJames Fellows Yates
10/16/2026, 8:31 AMMatthias De Smet
10/16/2026, 8:31 AMreference_fasta π€·π» as an exampleJim Downie
10/16/2026, 8:32 AMorf_fasta, reference_fasta etc.Arthur
10/16/2026, 8:32 AMArthur
10/16/2026, 8:33 AMArthur
10/16/2026, 8:33 AMbcftools, samtools, etc are not the same as some rarely used domain specific toolJim Downie
10/16/2026, 8:33 AMMatthias De Smet
10/16/2026, 8:34 AMdefining naming conventions for frequently used inputs (eg.Thatβs what I meant here) while also allowing custom naming for less frequently used or domain specific stuffreference_fasta, reference_fai
Jim Downie
10/16/2026, 8:34 AMMatthias De Smet
10/16/2026, 8:35 AMMatthias De Smet
10/16/2026, 8:36 AMNicolas Vannieuwkerke
10/16/2026, 8:36 AMJim Downie
10/16/2026, 8:38 AMPhil Ewels
10/16/2026, 8:40 AMReally processes should be functions that take arguments with anThis seems like a technical thing that we may be able to work towards on the Nextflow side if folks really want it?format, where you /map/ your record fields directly onto the input arguments of a process, and you don't permanently modify a record by renaming fields.arg=value
it might be better if we just had a target NF version where we said, the old stuff is out and the new stuff is in.We did exactly that, it's 26.10 - I thought that came across but maybe not so clear. But yes since the start of 2025 we've been saying that the final language features will be in by 26.10
Phil Ewels
10/16/2026, 8:40 AMNicolas Vannieuwkerke
10/16/2026, 8:40 AMPhil Ewels
10/16/2026, 8:41 AMPhil Ewels
10/16/2026, 8:41 AMPhil Ewels
10/16/2026, 8:41 AMPhil Ewels
10/16/2026, 8:41 AMPhil Ewels
10/16/2026, 8:42 AMnextflow module runNicolas Vannieuwkerke
10/16/2026, 8:42 AMPhil Ewels
10/16/2026, 8:42 AMPhil Ewels
10/16/2026, 8:42 AMJames Fellows Yates
10/16/2026, 8:42 AMAlso maybe I missed it, but don't people want to run modules directly?? nextflow module runI've never seen the utility really, cool idea - but I might as well just run the tool stadnalone
Phil Ewels
10/16/2026, 8:43 AMPhil Ewels
10/16/2026, 8:43 AMPhil Ewels
10/16/2026, 8:43 AMPhil Ewels
10/16/2026, 8:43 AMMahesh Binzer-Panchal
10/16/2026, 8:43 AMPhil Ewels
10/16/2026, 8:44 AMJim Downie
10/16/2026, 8:44 AMCLI tools can be used for many things but we don't complain about having named CLI flags?I mean that's not quite the point right, it's more like what if every named CLI flag needed to be pointed at a file with the same name?
Also maybe I missed it, but don't people want to run modules directly??I really do!nextflow module run
Mahesh Binzer-Panchal
10/16/2026, 8:46 AMbut.. why?We're agreeing. People do want
nextflow module runJose Espinosa-Carrasco
10/16/2026, 8:47 AMJonathan Manning
10/16/2026, 8:48 AMI read about 2/3rds of this thread before my brain started to dribble out of my ears
Mahesh Binzer-Panchal
10/16/2026, 12:04 PMMaxime Garcia
10/16/2026, 12:10 PMMaxime Garcia
10/16/2026, 12:10 PMNicolas Vannieuwkerke
10/16/2026, 12:11 PMMaxime Garcia
10/16/2026, 12:11 PMBen Sherman
10/16/2026, 1:48 PMnextflow module run is orthogonal to the record/tuple question. You get the same functionality either wayBen Sherman
10/16/2026, 1:52 PMBen Sherman
10/16/2026, 1:57 PMrename(), etc)
If some global ontology emerges then great. If not, it doesn't block the overall effort
That will be a more productive path forward IMOJames Fellows Yates
10/16/2026, 2:05 PMBen Sherman
10/16/2026, 2:06 PMnextflow lint) will be with you π