Add mifaser#11643
Conversation
Co-authored-by: Nick Waters <nickp60@gmail.com> Co-authored-by: Mirae Baichoo <miraep8@gmail.com>
Co-authored-by: Nick Waters <nickp60@gmail.com> Co-authored-by: Mirae Baichoo <miraep8@gmail.com>
Co-authored-by: Nick Waters <nickp60@gmail.com> Co-authored-by: Mirae Baichoo <miraep8@gmail.com>
Co-authored-by: Nick Waters <nickp60@gmail.com> Co-authored-by: Mirae Baichoo <miraep8@gmail.com>
Co-authored-by: Nick Waters <nickp60@gmail.com> Co-authored-by: Mirae Baichoo <miraep8@gmail.com>
|
Thanks @vinisalazar! I emailed the authors of Mifaser to ask them to push a new version to pypi. The Bioconda folks want stuff coming direct from Pypi so their recipe updater bots can keep things current. In the meantime, could you maybe set the command to prepend the database with And just FYI their is an official docker container https://hub.docker.com/r/bromberglab/mifaser/tags. I built the ghcr.io/vdblab/mifaser:1.64d container because I needed version tagged versions rather than the "latest" or "dev" tags. |
Use quay.io/biocontainers/mifaser:1.60--pyh106432d_0 instead of ghcr.io/vdblab/mifaser:1.64d. Prepend \$PWD to staged db path so mifaser 1.60 resolves --databasefolder as absolute path rather than relative to its Python package directory. Co-authored-by: Nick Waters <nickp60@gmail.com>
|
Thanks @nickp60, I ended up going with 1.60 and Biocontainers (instead of the official Docker image you linked) as that is a requirement from the linter. Biocontainers consumes from Bioconda so we will need an update to the recipe in order to get 1.64. I added the $PWD fix you suggested. |
|
Also, on the PyPI requirement for Bioconda: completely reasonable, but while there isn't an automated routine for the mifaser BitBucket repo to push new tags to PyPI, I'd argue that in the meantime, using the BitBucket tags would make more sense, even if it requires manually updating the recipe (the lack of the automated routine I mentioned already implies the need for manual update step) |
|
|
||
| input: | ||
| tuple val(meta), path(reads) | ||
| path db |
There was a problem hiding this comment.
If you need to use the database for every incoming sample ( sample 1, sample 2, etc.), you need to use each : https://docs.seqera.io/nextflow/process#input-repeaters-each
Otherwise, the process will only run for the first incoming sample and not for potentially more
|
|
||
| input: | ||
| tuple val(meta), path(reads) | ||
| path db |
There was a problem hiding this comment.
| path db | |
| each path(db) |
They already pushed the version so you should be good to go with using official pypi/conda/biocontainers 1.64! |
Description
Adds mifaser for functional annotation of metagenomic reads via EC number assignment (DOI: 10.1093/nar/gkx1209).
Work towards nf-core/funcprofiler#52, nf-core/funcprofiler#58
Notes on container
The bioconda package (mifaser=1.60) and the tool's own container (ghcr.io/vdblab/mifaser:1.64d) have incompatible --databasefolder semantics:
os.path.join(pkg_dir, 'database', args.databasefolder)), making it unusable with a user-provided database path unless an absolute path is passed.This module uses ghcr.io/vdblab/mifaser:1.64d to work around the 1.60 bug. This fails the container_links lint check. A proper fix would require either:
Currently the mifaser code is available on BitBucket: https://bitbucket.org/bromberglab/mifaser/ and version 1.64 is available, but the bioconda recipe points to the PyPI release which is still 1.60
@nickp60 do you think we could set the bioconda recipe to get the tarball from a bitbucket tag endpoint instead? For example, a link from https://bitbucket.org/bromberglab/mifaser/downloads/?tab=tags