So I chatted a bit more with <@U05LNHCFLCW> after ...
# meta-omics
j
So I chatted a bit more with @Evangelos Karatzas after the meeting and we made this doc to better plan out the preprocessing subworkflow idea: https://hackmd.io/@nf-core/S1NVXogilg Rather than combining different seqeuencing techs into one, we could have one common subwork per sequencing tech, the first being an Illumina one: What does everyone think of this (more ugly, but more easily protypable) mermaid diagram:
m
Kicking off different subworkflows based on, for example, short or long reads is a good choice. Much better than littering the code with hundreds of conditions testing for that along the way.
👍 2
j
I think this looks good, but I think there could easily be further sub-sub-workflowification - which may or may not be platform specific - that would improve maintainability. Depending on the number of tools in each box, you might want that bit to be separated - short read adapter removal could also be its own subworkflow, for example. Other bits might not be platform specific - host removal might be something easily shared across long and short reads with the same tools. Otherwise, the only comment I would have is whether run merging is a necessary component, or if that’s something that needs to be flexible enough that it should be handled by a pipeline. Because otherwise you have to start making assumptions (here’s my wee bugbear again 😇) about the contents of the meta object…
👍 2
e
Yep, I like the idea of sub-subworkflows. Maximum modularization
👍 2
j
Yeah, Vangelis and I thought about that yesterday (About run merging) too... that and hsot removal
m
Pretty nice. My only comment is that adapterclip_merge has loads of tools that are for the same purpose. I agree with James that every team has a favourite tool for this but it adds loads of complexity to the subworkflow (and maintenance burden). Borrowing from classic programming langs, could we build the sbf with one tool (or 2) and define some kind of interface/API/conventiont so people can swap tools?
j
I dont think so, as the outputs channel structure of each tool might not be exactly teh same
But I woudl argue most adapterclipper tools are pretty stable, so I think it's unlikely to change (thus the maintaince burden should be quite low). Also my hope would be that this would be a beloved subworkflow used by all, so lots of people to help out once created and adopted in the different pipelines
m
yeah, to maximise adoption you need to have people favourite tools
j
Precisely
So I think it looks scary, but might not be as bad as we think. Also because @Evangelos Karatzas can probably just copy and paste from all the pielines already using them
👍 1
m
also.. my gut feeling is that most of those tools are easy to maintain (no massive consumption of resources, massive usage by the community)
💯 1
j
I dunno, we try and see what happens 🙂
We coudl also reduce the adapter clip tools and only include those that included in > 1 nf-core pipleine
m
yup... I will think about my plug-and-play thingy anyway drevil
j
e.g. keep adaptermreoval
don't bother with leehom
definitely trimgalore
dont bother with ngmerge
etc.
image.png
e
could start with these, yes
peeps favs
👍 1
merge tool tier list
👍 1
and I guess all the tools in this list are mutually exclusive for this sub-subworkflow, right? No case where two of these tools will be used togetehr
#or fastp + 1 other
j
Pretty much
We can also use that as a requirement
EAch tool must do everything in that 'section'