Jim Downie
09/01/2026, 9:24 AMsamtools collate will write to stdout when you pass the -O flag, rather than just passing - as with many of the subcommands, which required some bugfixes to the code I had already written. So I think it's possible a module like this could hold quite a few bugs if not constructed with care, and well-tested so that at the very least each subcommand is tested as the first and last command of a pipeline, which might be onerous. And if we replicated this for other tools, they might require their own carefully-constructed carve-outs.
Not sure that the above is necessarily reason to not have these modules, but it means they would definitely require some care in the way they are written so that the logic is clear and are not a mess of ifs and opt-outs.
github.com/nf-core/modules/pull/11550/Matthias De Smet
09/01/2026, 9:57 AMJim Downie
09/01/2026, 9:58 AMJim Downie
09/01/2026, 9:59 AMMatthias De Smet
09/01/2026, 9:59 AMMatthias De Smet
09/01/2026, 9:59 AMSimon Pearce
09/01/2026, 12:13 PMJim Downie
09/01/2026, 12:15 PMMaxime Garcia
09/01/2026, 3:17 PMmulticommand?
We agree on this for the name?Jim Downie
09/01/2026, 3:23 PMpipedcommand if we want to be more explicit that the module creates a chain of piped commands, but I don't know if we care enoughJim Downie
09/04/2026, 8:43 AMJim Downie
09/04/2026, 8:57 AMargs contains a threads option and don't apply it in this case?Jim Downie
09/04/2026, 9:06 AMtask.ext.cpus1 -> task.ext.cpusN πMatthieu Muffato
09/04/2026, 9:20 AMtask.ext.cpus cpus to each sub-command, letting the OS / execution engine manage the number of CPUs being used.Jim Downie
09/04/2026, 9:21 AMJim Downie
09/04/2026, 9:22 AM[view, sort] you might want to apportion 16 threads as 4,12 . Though in practice I don't know if this is efficient as once view is done the sort can't take advantage if those extra 4 threads.Matthieu Muffato
09/04/2026, 9:26 AMview probably canβt print things faster with 12 CPUs than with 4 CPUs (or less) β stdout is likely the bottleneck.
But not trying to keep the sum of all threads given to all commands equal to task.ext.cpus . This would lead to an underuse of the CPUsJim Downie
09/04/2026, 10:08 AMview is the final command. If I'm filtering to a 100GB+ CRAM file, I might want the spare threads at the final stage for compression.Jim Downie
09/04/2026, 10:08 AMJim Downie
09/04/2026, 1:35 PM-@ in args, the default task.cpus is overridden for that tool. There's no check that this adds up, but it does give some control over the threading if needed.