just a rustqc versions bump: <https://github.com/n...
# request-review
j
✅ 1
m
already?
j
Blame @Phil Ewels 😄
m
Poor him, I argue with him enough already
I forgot the MOST important question I had for RustQC
@Phil Ewels DID YOU MADE STICKERS?
j
Good point, well made
🤣 2
p
Not yet 😆
I kind of don't want RustQC to become well known though 😂 I should make dupRadar / RSeQC etc. stickers!
m
@Jonathan Manning Am I right into assuming that I can use RUSTQC to replace samtools stats, flagstat and idxstats, so basically the whole BAM_STATS_SAMTOOLS subworkflow?
j
Bot response:
Copy code
Yes, that's correct - RustQC produces all three outputs (`flagstat`, `idxstats`, and `stats`), so it can replace the whole `BAM_STATS_SAMTOOLS` subworkflow.

- **flagstat** and **idxstats** are numerically identical to samtools
- **stats** matches on all Summary Numbers (SN) fields and 19 of 20 histogram sections - the only minor difference is in the GCD (GC-depth) section, which can show tiny floating-point variation (~0.018 max) due to sampling, but nothing meaningful in practice
- All outputs are MultiQC-compatible, so downstream reporting works as-is

These are all generated as part of RustQC's single-pass BAM processing, so there's no additional runtime cost - you get them alongside featureCounts, dupRadar, RSeQC, and Qualimap outputs in the same run.
👍 1
m
OK, so we need to patch all subworkflows containing this BAM_STATS_SAMTOOLS subworkflow
j
hold off until we've trialled it a bit
m
Any other way to trial than pushing in prod?
🤣 elmofire
p
@Maxime Garcia check that it actually improves things first - Samtools is pretty efficient already
(but yeah, if samtools can't make all 3 outputs in a single pass, then it should do 3->1 passes, which should help things I guess)
m
We are running 3 times samtools to get that
only 1 process is already an improvment
but I'm actually more thinking we might need to rethink the logic behind these QC files there
and also, maybe we don't want all QC output from RustQC at these particular steps
p
You can turn stuff off in RustQC - it produces all outputs by default but you can give it a config file / env vars / CLI flags to turn bits off that you don't want
m
yeah, sorry, need to read the docs
We don't have access to such a config file in the module
p
Which is why you can also do it with env vars and CLI flags 😉
s
Eagerly awaiting the
rustqc dna
command 😉
party this 1
m
For samtools (flagstat, stats, idxstats), I think it's one of the first tool we considered to group together as a single module
p
Yes, viewing subworkflows as potential targets is a pretty good idea!
j
I actually factored out the relevant rnaseq steps into a subworkflow so that the switch with RustQC was easier to read, I should probably make that an official nf-core subworkflow
party this 1
m
That would facilitate my plan to integrate it in #C01NHS4CC91
👍 1
j
(there's a linked data pr as you'll see)
m
yeah I noticed
j
just noticed the versions channel needs stripping
Now tidy and test data merged https://github.com/nf-core/modules/pull/11147
👀 1
You reckon this good to go @Maxime Garcia?
m
oh
sorry forgot about it
blob np 1
Let me check again
j
I just spotted alignments you won't like, will fix
🤣 1
m
I just let LS do it for me, and I gave up on upholding Harshil's alignment
😆 1
shared a GIF
But I actually have a different suggestion. Following Adam's and Rike's idea, I started using the filter operator instead of if statements, code looks way nicer I believe
👍 1
no need for most empty channels
j
Not a bad plan, I'm in favour of stripping conditionals for channel logic. Coming up...
m
I did that in #C06PHJM0Y3D -> https://github.com/nf-core/seqinspector/blob/dev/workflows/seqinspector.nf I only have a single tools array, that contains tools to be run, so logic is much clearer
no skip
only run
and I have a function in the local utils subworfklow to build this array: https://github.com/nf-core/seqinspector/blob/dev/subworkflows/local/utils_nfcore_seqinspector_pipeline/main.nf#L312 That I only call once: https://github.com/nf-core/seqinspector/blob/dev/main.nf#L46 And I have implemented such a setup in rnavar
j
OK done, tests running
🎉 1
m
It does look SO MUCH nicer
We just miss a multiqc_files topics, but that's another discussion
👍 1
j
Thanks! Will do the workflow install soon
Done! https://github.com/nf-core/rnaseq/pull/1786 (needs this first though https://github.com/nf-core/modules/pull/11165) Very few local components in rnaseq after this
✅ 1
m
Only last thing I can see remove params from the subworkflows