Hi maintainers! What do you think about this thre...
# team-maintainers
l
Hi maintainers! What do you think about this thread? https://github.com/nf-core/modules/pull/11064 TLDR: How should one handle tools that have multiple functionalities depending on the input data/flags provided? 1 - Have everything under the same module and use optional outputs (similar to samtools/view). 2 - Have separate modules for each functionality. ( e.g. tabix/tabix for the index generation and tabix/extract for regions extraction, although the command line command is for both tabix followed by some flags/input files )
1️⃣ 2
e
I know people will argue, but for me it's the same command :p just one extra flag = one extra output
party this 2
j
IMO it depends on: 1. how complex the resulting module will be - if there are 10 potential behaviours or 2 2. who is writing and using the tool - is it more convenient two write two modules, or just 1 3. are you proposing to be exhaustive - will 1 module that can do everything provide more flexibility than if you write separate modules and accidentally miss a use-case I don't think there's a hard and fast rule to apply, and it will probably depend on how "popular" a module is - I can imagine it matters less for stuff that's in 1 pipeline versus something like tabix that would be used often?
m
Agreed. It will depend, although at least to begin use the same module.
party this 1
l
Thank you everyone for the input! 🙂
f
I think in this case we already have a suite of subtools all with similar commands but different usecases and I would argue that its more in line to have an extra module here.
l
They are separated into: • bgzip • bgzip + tabix • tabix depending on which tool or combination of tools is used, so to me it would still make sense to have it under tabix/tabix - but tbh I think both options are valid
f
Its also not #C0749PAEU9F for me
l
same for me, I just need to update this module one way or another 😄 I think both options are fine as long as we kind of agree on one
j
We can always change our minds... I think given the small number of modules keeping it in
tabix
is fine here? And if we need to add more epicycles in future we can always spin it out