Kilian
02/26/2025, 10:45 AMThomas Danhorn
02/26/2025, 6:56 PM--extra_star_align_args parameter that allows you to pass additional arguments to STAR. Unfortunately, rnasplice does not have that (yet?), so you would have to use the more convoluted way of adding the parameters using ext.args for the STAR_ALIGN process in a config file. It is very important, though, that you check what the currently configured setting of ext.args for that process is, and that you add those settings to your own, otherwise you would be messing up other STAR parameters, and the pipeline might even crash. 🤞Alexandru Mizeranschi
02/26/2025, 7:02 PMIt is very important, though, that you check what the currently configured setting ofWhat does this mean, more exactly? I was under the impression thatfor that process is, and that you add those settings to your own, otherwise you would be messing up other STAR parameters, and the pipeline might even crash. 🤞ext.args
ext.args is generally initialized to NULL or empty, unless explicitly set by the user for some specific process. Is this not the case? Do the nf-core pipelines actually assume some "default" values for ext.args for the various pipeline processes?Thomas Danhorn
02/26/2025, 7:09 PMext.args is empty if you use a module in its default state (which typically is "bare-bones", relying on tool defaults), but many/most modules are customized by the respective pipeline (e.g. you might use different STAR arguments in rnaseq compared to rnasplice) via ext.args. So if you don't copy these custom settings over to your config, they get lost.Alexandru Mizeranschi
02/26/2025, 7:12 PMAlexandru Mizeranschi
02/26/2025, 7:13 PM--runThreadN and --outFileNamePrefix, but those shouldn't ever be set by the user via ext.args, anyway, so I'm still not sure what you mean hereThomas Danhorn
02/26/2025, 7:17 PM$args at the bottom of the STAR command line. This gets initialized from ext.args. Let me find where that is. It depends on the pipeline where the customizations are encoded. If there is a conf/modules.config, it would likely be there, but there are other places, and I think newer pipelines are moving away from a central config file to make it easier to move configs around.Alexandru Mizeranschi
02/26/2025, 7:24 PMconf/modules.config and it does use ext.args do set some parameters for this process.
https://github.com/nf-core/rnasplice/blob/master/conf/modules.config#L244Alexandru Mizeranschi
02/26/2025, 7:25 PMThomas Danhorn
02/26/2025, 7:26 PMThomas Danhorn
02/26/2025, 7:50 PMAlexandru Mizeranschi
02/27/2025, 6:12 AMext.args.Kilian
02/27/2025, 7:32 AMJames Fellows Yates
02/27/2025, 7:47 AMGreat info, thanks again. I really wish the nf-core guys would standardize this stuff a bit better. If people don't consider looking there, or they don't even know that they should look for these things in the first place, they might end up causing some unfortunate behavior from their pipelines when using ext.args.It is standardised already 😉 . Manual customisation of
ext.args is entirely at the users risk.
Only parameters you give to the pipeline e.g. nextflow run nf-core/rnasplice <...> --foo are official supportedJames Fellows Yates
02/27/2025, 7:48 AM--extra_star_align_args but this is NOT standardJames Fellows Yates
02/27/2025, 7:49 AMIn the rnaseq pipeline, there is the --extra_star_align_args parameter that allows you to pass additional arguments to STAR. Unfortunately, rnasplice does not have that (yet?)This is not standard or a specified thing at all, which is why you don't see it esalewhere
James Fellows Yates
02/27/2025, 7:50 AMIt is very important, though, that you check what the currently configured setting of ext.args for that process is, and that you add those settings to your own, otherwise you would be messing up other STAR parameters, and the pipeline might even crash. 🤞This is very important indeed if you ARE messing with
ext.args, because it is at your own risk.
We assume if you are going that route you are comfortable with nextflow to modify this etc., and it is already documented: https://nf-co.re/docs/usage/getting_started/configuration#understanding-and-modifying-tool-argumentsJames Fellows Yates
02/27/2025, 7:51 AMAlexandru Mizeranschi
02/27/2025, 7:52 AMext.args values in config files a bit confusing, honestly. Just my 2 cents. And as @Thomas Danhorn explained above, it's potentially opening up a can of worms for users who are looking to get a bit of extra flexibility from the nf-core pipelines. For instance, people who use STAR in both #CE8SSJV3N and #C0493FQQZ3P and need a custom parameter added, as in the example above, would basically need to dig into various config files and make some sort of a union of predefined parameters from both pipelines, or risk breaking things in their pipeline runs.James Fellows Yates
02/27/2025, 7:58 AM--extra_*_args. But then novice users won't know what to put in, or any user can put things and complain that something isn't working (because not supported by the pipeline)
• Complete lockdown: only pipeline parameters and injected directly into the module - no flexibility and only get new stuff added if a user requests a new parameter
I agree having common parameter names would be nice across modules, but it always come down to naming things: it is bascially impossible to implement to cover all cases. Lets say you have --extra_star_extra_args for all pipelines and that is hardcoded in the module. That's fine - but then you have a pipeline that needs STAR twice - then what do you do ? Maybe each STAR instance needs different parameters, so what do you name it there?
What we have now is a compromise to try and nudge people NOT to use whatever tool parameter they want willy-nilly - but give them a half hidden way to add it if they really really want.
Ultimately we've opted to cater primarily for new users or novice users (biologists), as they have the largest learning curve AND focusing on that makes much more robust/reliable core pipelines.
Giving too much flexibilty also risks reducing reproducbility
> potentially opening up a can of worms for users who are looking to get a bit of extra flexibility from the nf-core pipelines.
People looking for more flexibility are normally more experienced and should be able to understand the system somewhat (and read the docs) 😉Alexandru Mizeranschi
02/27/2025, 8:00 AMKilian
02/27/2025, 9:27 AMAlexandru Mizeranschi
02/27/2025, 9:29 AMThomas Danhorn
02/27/2025, 6:35 PM--extra_star_extra_args is not standard, but I nevertheless hope that more pipelines (including rnasplice, so if you ask for features, ask for that) will adopt it (it's either that, or you spend a lot of time explaining to users how to work around it 😀). The same goes for any other tool where users are likely to want to add/change parameter settings. Other than that, I think the system is OK the way it is, ext.args is there if you really need it. One thing to be discussed is if ext.args2 should be set up to be used instead, so if the parameters being customized in ext.args are unaffected, you don't need to worry about clobbering them. But then any process in any pipeline would need to check for and integrate ext.args2, and if there are conflicts with ext.args, these would need to be resolved.James Fellows Yates
02/27/2025, 7:02 PMJames Fellows Yates
02/27/2025, 7:03 PMJames Fellows Yates
02/27/2025, 7:04 PMJames Fellows Yates
02/27/2025, 7:05 PMThomas Danhorn
02/27/2025, 7:11 PM--extra_star_extra_args is that STAR has dozens of parameters, so you can't reasonably have a dedicate parameter in rnaseq/rnasplice/etc. for each one, if and if you leave a few out, someone will request them sooner or later.
I agree, personal philosophies ... 😄 "With great power comes great responsibility", I can live with that.James Fellows Yates
02/27/2025, 7:20 PMAlexandru Mizeranschi
02/27/2025, 7:21 PMWhat I like aboutA similar point to this one came up recently in the context of #CE9MS66BS, for the QUAST tool. The main issue there is that the corresponding module doesn't even have anyis that STAR has dozens of parameters, so you can't reasonably have a dedicate parameter in rnaseq/rnasplice/etc. for each one, if and if you leave a few out, someone will request them sooner or later.--extra_star_extra_args
ext.args support, so flexibility there is very low ATM.
https://github.com/nf-core/mag/issues/748James Fellows Yates
02/27/2025, 7:23 PMJames Fellows Yates
02/27/2025, 7:24 PMKilian
02/28/2025, 9:13 AM