modules icon indicating copy to clipboard operation
modules copied to clipboard

Feat: create module for pretextmap

Open gertrudeln opened this issue 3 years ago • 6 comments

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.yml file.
  • [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

@nf-core-bot fix linting

gertrudeln avatar Oct 10 '22 12:10 gertrudeln

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.

marrip avatar Oct 13 '22 10:10 marrip

@nf-core/modules-team

marrip avatar Oct 13 '22 12:10 marrip

@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?

jfy133 avatar Oct 13 '22 21:10 jfy133

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...

marrip avatar Oct 14 '22 11:10 marrip

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...

Is that after installing in an isolated environment conda create -n pretextmap -c bioconda pretext=1.<...> samtools=<...>?

jfy133 avatar Oct 14 '22 12:10 jfy133

Is that after installing in an isolated environment conda create -n pretextmap -c bioconda pretext=1.<...> samtools=<...>?

yes

marrip avatar Oct 14 '22 13:10 marrip

@priyanka-surana I made the requested changes. Could you please check again? Thank you.

marrip avatar Oct 25 '22 05:10 marrip