<!subteam^S08MYEKMNTX> I just noticed that in our ...
# mag
j
<!subteam^S08MYEKMNTX> I just noticed that in our
.nextflow.config
we havr
--run_busco true
by default, but I don't like that behaviour as it's not intuitive for users to go
--run_busco false
to skip it... and is inconsistent with the others what would be our be our preferred behaviour here? 1. Change just busco back to
--skip_busco
2. Set all BinQC tools to
--skip_<tool>
3. Set all to
false
and have another error check that if you
--skip_binqc false
and all the
run_<troo>
parameters are
false
then we tell user to turn one of them on
🙌 1
d
I usually prefer when a pipeline is running with default setting. I disliked my (novice) experience with sarek, because variant calling was disabled by default ()in a variant calling pipeline...). Personally, for my using the pipeline, I wouldnt care, but for someone who just wants to run that pipeline that will be in my opinion an unpleasant first experience, its a guaranteed first fail of the pipeline when all binners are turned off by default. Edit: I do agree though that setting a skip_* parameter to true is a bad idea. Optimally that should change.
j
My personal preference is to have
—run_X
parameters only, and just have them set to true or false depending on what is a sensible default. I don’t really understand the guideline that all boolean flags have to have the same state by default.
j
I don’t really understand the guideline that all boolean flags have to have the same state by default.
For me because
--run_blah
and
--run_blah true
are two ways of setting the same to true, but
--run_blah false
set it's to false. But given the standard pattern is to run
--run_blah
to turn it true, users do not know how to turn it off. No-where is it described you can specify to a boolean parameter
true
or
false
. Setting
false
is 'internal' knowledge, so to say
d
1. be most convenient, I think. But inconsistent. Possibly it would be best to change to something like
--binqc_tool
but allow multiple comma separated values? By default e.g.
--binqc_tool busco
and make
--binqc_tool busco,checkm2
and such possible?
j
We talked about that when adding multiple but I didn't like it due it being error prone
😬 1
My personal instinct is actually to change everything to skip and run all three (well, BUSCO and CheckM2) as they all give similar but each one additional information
Ugh this is annoying
d
Run by default all three is better than run none, imho.
j
Eaxctly
d
I agree that the 3 options should be consistent. But I also don't like that everything is run by default. In some way, CheckM is already outdated and could be could be considered superseeded by CheckM2, so most of the time doesn't really make sense (to me at least) to run it.
j
On that point, from our discussions with the folk in Denmark doing the Danish Microflora project, they still run CheckM alongside CheckM2 as they find that CheckM2 still does not handle some lineages very well
d
The other drawback from "run all by default" is run times. With the next version of mag, we will be running 6 binners by default, and that's a lot. So if a user just uses the basic setup (input + outdir) will end up with very long and compute intensive runtimes (2 assemblers * 6 binners * 3 qc tools, prokka on a huge amount of bins, etc)
@Jim Downie That's interesting, I was not aware of that. I would though that in that sense, BUSCO would do a better job (thanks to its big db).
j
Agree with Diego... > But given the standard pattern is to run
--run_blah
to turn it true, users do not know how to turn it off. No-where is it described you can specify to a boolean parameter
true
or
false
. Setting
false
is 'internal' knowledge, so to say We can document this in the params descriptions/in the pipeline docs, something like: "all tools are controlled by a parameter called
--run_X
. To disable a tool, change the value of
run_X
to false in your params file or run Nextflow with `--run_X false`" I'm not opposed to enforcing a little reading. Ideally Nextflow would support boolean flags like
argparse
, but I understand why it doesn't.
@Diego Alvarez Saravia I think things are different with odb12, but historically the lineages in CheckM were AFAIK more extensive than the lineages in odb10.
👍 1
j
Hrmmm, OK. I still don't particularly use it (as people still won't read), but I guess I'm being outvoted here and #C078586GZ5X @Daniel Straub are you OK wiht this then, still have something run even if parameter usage is inconsistent?
Also this means if we are just updating docs then no backwards compatiblity problems
d
> are you OK wiht this then, still have something run even if parameter usage is inconsistent? Yes
👍 1