You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I'm planning to work on this module, I added myself to the Assignees to facilitate tracking who is working on the module
I have some issues with the current module, some easy to solve, some that need a discussion since they potentially change the interface of the module.
I need to use the --include-lineage parameter supported by Diamond 2.10 but not the current 2.8. Easy to fix of course.
Diamond supports reading gzipped files, so the unzipping of gzipped input seems unnecessary and a waste of space.
Diamond also supports gzipping output files via --compress 1. Seems like a good feature to support, but is made difficult by the current third parameter being the file suffix which in turn decides the output format. My suggestion is to change the third param to the numerical output format and set the suffix from this instead. If $args contains --compress 1, a .gz can be added to the file suffix (except for .daa). (Overall, I also find the use of a suffix to decide the output format a bit too implicit for my taste. I definitely consider the blast output format a .tsv and would use that if I didn't know about the taxonomy (102) format.)
In my experience, Diamond uses cpus quite efficiently and tends to require a lot of memory, so I'd suggest labelling the process process_high instead of medium.
You're using find to get the path of the input .dmnd but I don't understand why since this is param two to the module.
I think it would be good to include `${meta2.id}" in the default output file name as that's likely (it is in my case at least) the name of the database.
Update: I realize I need to match output channels from this module with the database channel (meta2) in my pipeline before calling the next module, i.e. join the output of this module with a channel that is indexed with database names (meta2.id). As I see this, I can either return both meta objects or add a field (e.g. db) containing meta2.id to the meta object before returning it. An alternative is perhaps to modify meta.id to contain the database name before calling this module.
I need a module like my description above for #metatdenovo, so I've made a local while we discuss. At the moment it looks like the below but hasn't been properly tested yet (i.e. WIP). I'm happy to contribute this to nf-core/modules if and when we agree.
Small comment, switch statements are "deprecated". Nextflow vscode docs - The Nextflow language specification does not support switch statements. Use if-else statements instead
Is there an existing module for this?
Is there an open PR for this?
Is there an open issue for this?
Are you going to work on this?
Assignees
to facilitate tracking who is working on the moduleI have some issues with the current module, some easy to solve, some that need a discussion since they potentially change the interface of the module.
--include-lineage
parameter supported by Diamond 2.10 but not the current 2.8. Easy to fix of course.--compress 1
. Seems like a good feature to support, but is made difficult by the current third parameter being the file suffix which in turn decides the output format. My suggestion is to change the third param to the numerical output format and set the suffix from this instead. If$args
contains--compress 1
, a.gz
can be added to the file suffix (except for.daa
). (Overall, I also find the use of a suffix to decide the output format a bit too implicit for my taste. I definitely consider the blast output format a.tsv
and would use that if I didn't know about the taxonomy (102) format.)process_high
instead of medium.find
to get the path of the input.dmnd
but I don't understand why since this is param two to the module.Update: I realize I need to match output channels from this module with the database channel (
meta2
) in my pipeline before calling the next module, i.e. join the output of this module with a channel that is indexed with database names (meta2.id
). As I see this, I can either return both meta objects or add a field (e.g.db
) containingmeta2.id
to themeta
object before returning it. An alternative is perhaps to modifymeta.id
to contain the database name before calling this module.I need a module like my description above for #metatdenovo, so I've made a local while we discuss. At the moment it looks like the below but hasn't been properly tested yet (i.e. WIP). I'm happy to contribute this to nf-core/modules if and when we agree.
The text was updated successfully, but these errors were encountered: