Feat: create module for pretextmap
Description
User request to add module for PretextMap. Added module alongside with test config.
PR checklist
Closes #1947
- [x] This comment contains a description of changes (with reason).
- [x] If you've added a new tool - have you followed the module conventions in the contribution docs
- [x] Remove all TODO statements.
- [x] Emit the
versions.ymlfile. - [x] Follow the naming conventions.
- [x] Follow the parameters requirements.
- [x] Follow the input/output options guidelines.
- [x] Add a resource
label - [x] Use BioConda and BioContainers if possible to fulfil software requirements.
- Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky:
- [x]
PROFILE=docker pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware - [x]
PROFILE=singularity pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware - [x]
PROFILE=conda pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware
- [x]
@nf-core-bot fix linting
I don't get these tests to work. I can't make any sense of the pytest output. Any hints or advice would be highly appreciated.
@nf-core/modules-team
@marrip in this case you need to look at the actual nextflow logs (pytest traceback sucks, I hate it personally).
It appears your conda environment is not building correctly (as far as I can tell).If you scroll to the bottom of the summary page of the CI tests, you can find the artefact containing all the logs:
https://github.com/nf-core/modules/actions/runs/3241811168
In which you should see:
Caused by:
Process `test_pretextmap_bam:PRETEXTMAP (test)` terminated with an error exit status (127)
Command executed:
if [[ test.paired_end.sorted.bam == *.pairs.gz ]]; then
zcat test.paired_end.sorted.bam | PretextMap \
\
-o test.pretext
else
samtools \
view \
-h \
test.paired_end.sorted.bam | PretextMap \
\
-o test.pretext
fi
cat <<-END_VERSIONS > versions.yml
"test_pretextmap_bam:PRETEXTMAP":
pretextmap: $(PretextMap | grep "Version" | sed 's/PretextMap Version //g')
samtools: $(echo $(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*$//' ))
END_VERSIONS
Command exit status:
127
Command output:
(empty)
Command error:
.command.sh: line 12: PretextMap: command not found
Areyou able to test with conda locally?
Hey @jfy133 ! Thanks for your reply. I checked testing it locally and it fails as well, looking into the logs, I see that indeed the conda environment did not build correctly using samtools=1.16.1:
Package libgcc-ng conflicts for:
samtools=1.16.1 -> ncurses[version='>=6.3,<7.0a0'] -> libgcc-ng[version='>=11.2.0|>=7.5.0']
pretextmap=0.1.9 -> libgcc-ng[version='>=10.3.0|>=9.4.0']
samtools=1.16.1 -> libgcc-ng[version='>=12']
I tried to with samtools=1.15.1:
Package _libgcc_mutex conflicts for:
samtools=1.15.1 -> libgcc-ng[version='>=10.3.0'] -> _libgcc_mutex[version='*|0.1',build=main]
pretextmap=0.1.9 -> libgcc-ng[version='>=10.3.0'] -> _libgcc_mutex[version='*|0.1',build=main]
which is extremely confusing as both tools request the same version of libgcc-ng. Nevertheless, I was able to run these tests successfully before I changed the script - the conda environment was the same as now. It seems they also fail with both docker and singularity which is using a mulled container which contains both tools - I checked locally.
And I agree, the pytest output is more so confusing than it is helpful. I would expect some indication of the source of the error...I don't really know how to trouble shoot this. I also checked the nextflow logs but for my test with docker it did not say anything helpful either...
Hey @jfy133 ! Thanks for your reply. I checked testing it locally and it fails as well, looking into the logs, I see that indeed the conda environment did not build correctly using
samtools=1.16.1:Package libgcc-ng conflicts for: samtools=1.16.1 -> ncurses[version='>=6.3,<7.0a0'] -> libgcc-ng[version='>=11.2.0|>=7.5.0'] pretextmap=0.1.9 -> libgcc-ng[version='>=10.3.0|>=9.4.0'] samtools=1.16.1 -> libgcc-ng[version='>=12']I tried to with
samtools=1.15.1:Package _libgcc_mutex conflicts for: samtools=1.15.1 -> libgcc-ng[version='>=10.3.0'] -> _libgcc_mutex[version='*|0.1',build=main] pretextmap=0.1.9 -> libgcc-ng[version='>=10.3.0'] -> _libgcc_mutex[version='*|0.1',build=main]which is extremely confusing as both tools request the same version of
libgcc-ng. Nevertheless, I was able to run these tests successfully before I changed thescript- the conda environment was the same as now. It seems they also fail with both docker and singularity which is using a mulled container which contains both tools - I checked locally. And I agree, the pytest output is more so confusing than it is helpful. I would expect some indication of the source of the error...I don't really know how to trouble shoot this. I also checked the nextflow logs but for my test with docker it did not say anything helpful either...
Is that after installing in an isolated environment conda create -n pretextmap -c bioconda pretext=1.<...> samtools=<...>?
Is that after installing in an isolated environment
conda create -n pretextmap -c bioconda pretext=1.<...> samtools=<...>?
yes
@priyanka-surana I made the requested changes. Could you please check again? Thank you.