Question about `meta` variable naming. What's perm...
# team-maintainers
m
Question about
meta
variable naming. What's permitted?
meta
meta2
meta3
etc, but is
meta_vcf
meta_vdj
etc also permitted?
j
I think we had the typical me Vs @Simon Pearce argument
🤣 1
I wanted it to be generic (same concept as args) but Simon wanted to allow more customisation
But also with the likely eventual switch to single input tuples i think this would be not so important
party this 1
s
Yeah, I didn't see the benefit from being restrictive
m
I kinda need to know for https://github.com/nf-core/tools/pull/4127. At the moment it's coded for
meta\d*
. I want to know if I need to extend that pattern match
s
you need to allow meta.strandedness
but no, we shouldn't allow meta_vcf with our current specs
m
you need to allow meta.strandedness
I had this, but then removed it because of https://github.com/nf-core/website/pull/4057
but no, we shouldn't allow meta_vcf with our current specs
I guess we need another lint check then.
j
I wasn't aware of
meta.strandedness
?
At laest I've never seen it 👀
But otherwise, I think the
meta, meta2, meta3
is the convention now: these are the list of mentions of
meta_*
in the modules repo:
Copy code
`
$ find -name '<http://main.nf|main.nf>' -type f -exec grep tuple {} \; | grep  'val(met' | cut -f 1 -d ',' | sort | uniq -c
      1     ch_expdesign             // Channel of tuples of [val(meta)
      1     ch_fasta // tuple val(meta)
      1     ch_input                 // Channel of tuples of val(meta)
      1     ch_searchdb              // Channel of tuples of [val(meta)
      1     contigs            // channel: tuple val(meta)
      1     input:tuple val(meta)
      1     sequences       // tuple val(meta)
      3         tuple val(meta)
      4         tuple val(meta)
      1     tuple  val(meta)
      1     tuple val(meta )
   6110     tuple val(meta)
     72     tuple val(meta) 
      2     tuple val(meta)   
      1     tuple val(meta)          
      1     tuple val(meta)             
      6    tuple val(meta)
      7     tuple val(meta1)
      1    tuple val(meta1)
      1     tuple val(meta10)
      1     tuple val(meta11)
      1     tuple val(meta12)
      1     tuple  val(meta2)
    456     tuple val(meta2)
    227     tuple val(meta3)
    105     tuple val(meta4)
     50     tuple val(meta5)
     24     tuple val(meta6)
      9     tuple val(meta7)
      6     tuple val(meta8)
      2     tuple val(meta9)
      1     tuple val(meta_ab)         
      1     tuple val(meta_beam)       
      1     tuple val(meta_c)
      1     tuple val(meta_cmo)        
      1     tuple val(meta_crispr)     
      1     tuple val(meta_db)
      1     tuple val(meta_gex)        
      1     tuple val(meta_ggtf)
      1     tuple val(meta_ref)
      5     tuple val(meta_t)
      1     tuple val(meta_tegtf)
      1     tuple val(meta_vdj)
I will make PRs to the docs specifications on docs2 for both the ext.args naming and meta naming to complement your tools linting PR @Mahesh Binzer-Panchal
Here is a docs (v2) update to modules specs clarifying naing of
meta
variables in modules, and
ext.args
. https://github.com/nf-core/website/pull/4080/changes Any objections? (Ignore the two environment_Setup files in the PRs, I branched off the wrong source branch, will disappear when another branch is merged in)
s
those
tuple val(meta )
and
tuple  val(meta)
😐 strandedness is being used in many modules inside rnaseq
nod 1
j
Yeah and only really rnaseq as far as I can tell.
s
sure, it is an rna related thing
you don't get strandedness for DNA sequencing
j
You can do in a different way - eager has to handle single stranded vs double stranded libraries
But that's not forward/reverse
(so also why I don't think keeping strandedness is a great idea as could be misunderstood)
s
Fair, that is a thing
👍 1
it is also being used in rnasplice, rnafusion, lncpipe, riboseq (i.e. their samplesheet schema requires it)
j
Sure but pipeline Devs can use whatever they want at a pipeline oecel
s
🤷 well, it is being used in plenty of places and has been for years
m
PR to make sure meta naming conforms to docs: https://github.com/nf-core/tools/pull/4129
s
Do you know how many modules this is going to cause to fail? And can it be turned off for pipelines?
m
It's only a module level lint and several will fail. I have no idea how many