modules icon indicating copy to clipboard operation
modules copied to clipboard

Fix bcftools/stats module

Open SusiJo opened this issue 2 years ago • 1 comments

PR checklist

This PR fixes the module bcftools/stats and enables to use a regions (with index tbi files) or targets file (no index tbi file required) and adjusts the tests.

  • [x] This comment contains a description of changes (with reason).
  • [x] If you've fixed a bug or added code that should be tested, add tests!
  • [x ] If you've added a new tool - have you followed the module conventions in the contribution docs
  • [x] If necessary, include test data in your PR.
  • [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
    • [ ] PROFILE=singularity pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware
    • [ ] PROFILE=conda pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware

SusiJo avatar Aug 15 '22 06:08 SusiJo

The container with conda uses htslib=1.15.1 while the docker/singularity containers use htslib=1.15, therefore the files created with conda have checksums that differ from the test.yml. They just contain a different string in the header which specifies the versions used to create the test.bcftools.stats.txt:

# This file was produced by bcftools stats (1.15.1+htslib-1.15.1) and can be plotted using plot-vcfstats. 
# This file was produced by bcftools stats (1.15.1+htslib-1.15) and can be plotted using plot-vcfstats.

SusiJo avatar Aug 15 '22 07:08 SusiJo

@SusiJo to fix the issue with the different md5sums beween conda and docker/singularity, you can instead use a string:

https://pytest-workflow.readthedocs.io/en/stable/#test-options

e.g. you could use - `contains: ["This file was produced by bcftools stats"], or another string further done with actual content

jfy133 avatar Sep 08 '22 04:09 jfy133

Thanks! Somehow I didn't come up with just using a substring 😅

SusiJo avatar Sep 21 '22 14:09 SusiJo