Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New module: checkqc #4158

Merged
merged 79 commits into from
Jul 22, 2024
Merged

New module: checkqc #4158

merged 79 commits into from
Jul 22, 2024

Conversation

matrulda
Copy link
Contributor

@matrulda matrulda commented Oct 18, 2023

Adding new module checkQC. Related to issue: #4011

Depends on nf-core/test-datasets#1024 for tests to work.

Note: The CheckQC version used in the module is not the latest. I was forced to use an old one since there is an issue with the biocontainers for more recent ones. I aim to fix this and make a PR to upgrade to that version later.

PR checklist

Closes #4011

  • This comment contains a description of changes (with reason).
  • If you've fixed a bug or added code that should be tested, add tests!
  • If you've added a new tool - have you followed the module conventions in the contribution docs
  • Remove all TODO statements.
  • Emit the versions.yml file.
  • Follow the naming conventions.
  • Follow the parameters requirements.
  • Follow the input/output options guidelines.
  • Add a resource label
  • 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:
    • 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

modules/nf-core/checkqc/tests/main.nf.test Outdated Show resolved Hide resolved
modules/nf-core/checkqc/tests/main.nf.test Outdated Show resolved Hide resolved
modules/nf-core/checkqc/tests/main.nf.test Outdated Show resolved Hide resolved
modules/nf-core/checkqc/tests/main.nf.test Outdated Show resolved Hide resolved
@sateeshperi
Copy link
Contributor

could you work on the failing tests and reach us out on nf-core/nf-test slack channel if you need help. cheers

@matrulda
Copy link
Contributor Author

matrulda commented Nov 8, 2023

Yes, will look into that, thank you!

matrulda and others added 24 commits November 8, 2023 08:34
* Code refactoring for mitohifi input

* Fix md5sum

* Fix md5sum for versions

* Bring back md5sum value

* Update md5sum again

* Remove md5sum

* Bring back versions.yml

* It looks like $HOME needs be writable in the container. Trying mounting it

* Add test for reads

* Update modules/nf-core/mitohifi/mitohifi/main.nf

Refactor the mitohifi command line

Co-authored-by: Solenne Correard <[email protected]>

* Fix md5sums

---------

Co-authored-by: Ksenia Krasheninnikova <[email protected]>
Co-authored-by: Matthieu Muffato <[email protected]>
Co-authored-by: Solenne Correard <[email protected]>
* Adding module sentieon/tnfilter

* WIP: CI-tests for sentieon/tnfilter. (test-data just local for now.)

* Skipping conda-based test of sentieon/tnfilter

* Remove avail_mem stuff.

* Fix description of output vcf

* Using test-data from nf-core test-datasets repo

* add tests for sentieon/tnfilter
* nf-test for pycoqc. snapshots for versions and json['All reads']

* tags.yml

* test naming conventions. Fix indentation. Add test for html output

---------

Co-authored-by: Jose Espinosa-Carrasco <[email protected]>
* update bclconvert to 4.2.4

* regenerate snapshot
* ci(renovate): Change schedule to monthly and pinDigests

https://emmer.dev/blog/keep-docker-base-images-updated-with-renovate/#default-renovate-config

* ci(renovate): Add security PRs immediately

https://emmer.dev/blog/keep-docker-base-images-updated-with-renovate/#custom-renovate-config

* ci(renovate): Just use best-practices

https://docs.renovatebot.com/presets-config/#configbest-practices

* ci(renovate): Set PR hourly limit to 3

* ci(renovate): Add conda support

Ulthran/ShotgunUnifrac#22

* ci(renovate): Add pre-commit

* ci(renovate): Request modules instead of maintainers

* ci(renovate): Don't scan the meta.ymls
…a to v0.27.0 (nf-core#4256)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…nf-core#4257)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* new module picard/scatterintervalsbyns

* update annotsv to 3.3.6

* update installannotations

* fix all modules conda declaration
chore(config): migrate config .github/renovate.json5

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
nf-core#4220)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…f-core#4231)

* new module picard/scatterintervalsbyns

* update annotsv to 3.3.6

* update installannotations

* try to fix linting with nf-test

* small change to trigger tests

* fix if statement

* also test pytest

* remove nf-test exclude from linting

* try for a conda fix

* revert last commit

* Update .github/workflows/test.yml

Co-authored-by: Adam Talbot <[email protected]>

* temporarily reactivate pytest for vardictjava

* run fastp test

* revert test triggers

---------

Co-authored-by: Adam Talbot <[email protected]>
* new module picard/scatterintervalsbyns

* update annotsv to 3.3.6

* update installannotations

* nf-test rtgtools rocplot

* remove pytest tag

* update according to comments

* Update modules/nf-core/rtgtools/rocplot/tests/main.nf.test

Co-authored-by: Adrien Coulier <[email protected]>

* Update modules/nf-core/rtgtools/rocplot/tests/main.nf.test

* update conda declaration

---------

Co-authored-by: Adrien Coulier <[email protected]>
…re#4214)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* We should use "error" rather than "exit 1"

* Fixed the syntax

* Removed the quay.io prefix since it is the default registry
…4259)

* chore(deps): update biocontainers/goat docker tag to v0.2.5

* Version bump (across all 3 package systems)

* Fixed the type of the "taxon" parameter

* Updated the test md5

* Added me as a maintainer since GoaT is (partly) in my team

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matthieu Muffato <[email protected]>
* add nf-tests and snapshots for kallisto index & quant

* rm kallisto tags from pytest_modules.yml

* Update modules/nf-core/kallisto/index/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* Update modules/nf-core/kallisto/quant/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* Update modules/nf-core/kallisto/quant/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* update kallisto quant

* Update modules/nf-core/kallisto/index/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* Update modules/nf-core/kallisto/quant/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* Update modules/nf-core/kallisto/quant/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* Update modules/nf-core/kallisto/quant/tests/main.nf.test

Co-authored-by: Adam Talbot <[email protected]>

* remove superfluous quote marks

* fix linting

---------

Co-authored-by: Adam Talbot <[email protected]>
Co-authored-by: mashehu <[email protected]>
* Add Kmer coverage to module output

* Update test.yml

* Update modules/nf-core/genescopefk/meta.yml

Co-authored-by: Matthieu Muffato <[email protected]>

* Add bash directive

* Fix whitespace

---------

Co-authored-by: Matthieu Muffato <[email protected]>
Copy link
Contributor

@fmalmeida fmalmeida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @atrigila ,
Instead of removing the conda config, if the bioconda installation is being unreliable, one options would be to also use pip here as in the containers so to also have it:

name: checkqc
channels:
  - conda-forge
  - bioconda
  - defaults
dependencies:
  - python=3.9 # whathever version is needed
  - pip
  - pip:
    - custom-pkg1
    - custom-pkg2

Would be worthy to check in the nf-core slack channel if this would be accepted or if other solutions would be proposed.

modules/nf-core/checkqc/tests/main.nf.test Outdated Show resolved Hide resolved
@atrigila
Copy link
Contributor

atrigila commented Jul 18, 2024

@nf-core-bot fix linting pretty please

@atrigila
Copy link
Contributor

@fmalmeida adding the environment.yml with the version results in linting failure. This is related to this issue.

The environment.yml of the module checkqc is not valid: {'pip': ['checkqc==3.8.0', 'interop==1.2.4']} is not of type 'string'. Check the entry for dependencies. 

This was observed in this module as well.

In addition, even when removing versions, the conda tests do not pass due to libmamba being used in the test.yml:

Test [a030344b] 'homo_sapiens illumina test_interop_bcl2fastqstats_flowcell - QC OK' FAILED (16.366s)                                            │
│                                                                                                                                                    │
│   Assertion failed:                                                                                                                                │
│                                                                                                                                                    │
│   2 of 2 assertions failed                                                                                                                         │
│                                                                                                                                                    │
│   Nextflow stdout:                                                                                                                                 │
│                                                                                                                                                    │
│   ERROR ~ Error executing process > 'UNTAR (1)'                                                                                                    │
│                                                                                                                                                    │
│   Caused by:                                                                                                                                       │
│     Failed to create Conda environment                                                                                                             │
│       command: conda env create --prefix                                                                                                           │
│ /workspace/modules/.nf-test/tests/a030344b93d4d35baf2381e4cf0f249f/work/conda/untar-6ec82032d38a28f610b86307ce4a0ff3 --file                        │
│ /workspace/modules/./modules/nf-core/checkqc/tests/../../untar/environment.yml                                                                     │
│       status : 1                                                                                                                                   │
│       message:                                                                                                                                     │
│         Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory) │
│         Retrieving notices: ...working... done                                                                                                     │
│                                                                                                                                                    │
│         CondaValueError: You have chosen a non-default solver backend (libmamba) but it was not recognized. Choose one of: classic                 │

@fmalmeida
Copy link
Contributor

fmalmeida commented Jul 19, 2024

@fmalmeida adding the environment.yml with the version results in linting failure. This is related to this issue.

The environment.yml of the module checkqc is not valid: {'pip': ['checkqc==3.8.0', 'interop==1.2.4']} is not of type 'string'. Check the entry for dependencies. 

This was observed in this module as well.

In addition, even when removing versions, the conda tests do not pass due to libmamba being used in the test.yml:

Test [a030344b] 'homo_sapiens illumina test_interop_bcl2fastqstats_flowcell - QC OK' FAILED (16.366s)                                            │
│                                                                                                                                                    │
│   Assertion failed:                                                                                                                                │
│                                                                                                                                                    │
│   2 of 2 assertions failed                                                                                                                         │
│                                                                                                                                                    │
│   Nextflow stdout:                                                                                                                                 │
│                                                                                                                                                    │
│   ERROR ~ Error executing process > 'UNTAR (1)'                                                                                                    │
│                                                                                                                                                    │
│   Caused by:                                                                                                                                       │
│     Failed to create Conda environment                                                                                                             │
│       command: conda env create --prefix                                                                                                           │
│ /workspace/modules/.nf-test/tests/a030344b93d4d35baf2381e4cf0f249f/work/conda/untar-6ec82032d38a28f610b86307ce4a0ff3 --file                        │
│ /workspace/modules/./modules/nf-core/checkqc/tests/../../untar/environment.yml                                                                     │
│       status : 1                                                                                                                                   │
│       message:                                                                                                                                     │
│         Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory) │
│         Retrieving notices: ...working... done                                                                                                     │
│                                                                                                                                                    │
│         CondaValueError: You have chosen a non-default solver backend (libmamba) but it was not recognized. Choose one of: classic                 │

Hi @atrigila ,

I see. Then unfortunately I think the best is to keep the env.yml file using the bioconda installation, however, using the same version that is used in the container. And then, just remove the conda testing profile from the CI, since the container executions work.

@atrigila
Copy link
Contributor

@fmalmeida I think I prefer to stick to the current version as it specifically states that it is installed from pip. Since there is at least other module that has this same linting issue, and I think this will be addressed in the future, I would ask core-members @edmundmiller and @FloWuenne:

  1. Can you disable the conda CI .yml for checkqc? As we do not have permissions to do so.
  2. Could you allow us to merge with the linting issue (the same observed in module spotiflow?
    Thank you!

disable in nf-test not in pytest
@maxulysse
Copy link
Member

conda CI is properly disabled.
It was actually disabled for pytest, and it should have been disabled for nf-test actually.

@maxulysse maxulysse merged commit 5848a1e into nf-core:master Jul 22, 2024
9 of 11 checks passed
@atrigila atrigila mentioned this pull request Jul 29, 2024
17 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: To do
Development

Successfully merging this pull request may close these issues.

new module: checkqc