From a2848b8d1ab9ac8c31bd4ed42d7ef898bcec2829 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Wed, 1 Oct 2025 13:54:07 -0500 Subject: [PATCH 01/16] Added test against another nextflow version --- .github/workflows/ci.yml | 1 + CHANGELOG.md | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a666b0..ecf8278 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,7 @@ jobs: strategy: matrix: NXF_VER: + - "24.10.3" - "25.04.6" - "latest-everything" steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index d57a606..454d6e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### `Updated` + +- Adding GitHub CI tests against Nextflow `24.10.3`. [PR #8](https://github.com/phac-nml/iridanextexample2/pull/8) + ## [0.1.0] - 2025-07-25 - Initial release of phac-nml/iridanextexample2, created with the [nf-core](https://nf-co.re/) template. From efeb29fc6d793fef12ac13a0945bcfadb0042237 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Mon, 6 Oct 2025 10:29:26 -0500 Subject: [PATCH 02/16] Copied over updated github actions workflows --- .github/workflows/branch.yml | 6 +-- .github/workflows/ci.yml | 41 ----------------- .github/workflows/linting.yml | 6 +-- .github/workflows/nf-test.yml | 5 +- .../workflows/template-version-comment.yml | 46 +++++++++++++++++++ .nf-core.yml | 2 - 6 files changed, 55 insertions(+), 51 deletions(-) delete mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/template-version-comment.yml diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 74a4e50..ffa9433 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -1,6 +1,6 @@ name: nf-core branch protection # This workflow is triggered on PRs to `main`/`master` branch on the repository -# It fails when someone tries to make a PR against the nf-core `main`/`master` branch instead of `dev` +# It fails when someone tries to make a PR against the phac-nml `main`/`master` branch instead of `dev` on: pull_request_target: branches: @@ -11,7 +11,7 @@ jobs: test: runs-on: ubuntu-latest steps: - # PRs to the nf-core repo main/master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches + # PRs to the phac-nml repo main/master branch are only ok if coming from the phac-nml repo `dev` or any `patch` branches - name: Check PRs if: github.repository == 'phac-nml/iridanextexample2' run: | @@ -35,7 +35,7 @@ jobs: Hi @${{ github.event.pull_request.user.login }}, It looks like this pull-request is has been made against the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) ${{github.event.pull_request.base.ref}} branch. - The ${{github.event.pull_request.base.ref}} branch on nf-core repositories should always contain code from the latest release. + The ${{github.event.pull_request.base.ref}} branch on phac-nml repositories should always contain code from the latest release. Because of this, PRs to ${{github.event.pull_request.base.ref}} are only allowed if they come from the [${{github.event.pull_request.head.repo.full_name }}](https://github.com/${{github.event.pull_request.head.repo.full_name }}) `dev` branch. You do not need to close this PR, you can change the target branch to `dev` by clicking the _"Edit"_ button at the top of this page. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index ecf8278..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Pipeline CI -# This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors -on: - push: - branches: - - dev - pull_request: - release: - types: [published] - -env: - NXF_ANSI_LOG: false - -concurrency: - group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" - cancel-in-progress: true - -jobs: - test: - name: Run pipeline with test data - # Only run on push if this is the phac-nml dev branch (merged PRs) - if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'phac-nml/iridanextexample') }}" - runs-on: ubuntu-latest - strategy: - matrix: - NXF_VER: - - "24.10.3" - - "25.04.6" - - "latest-everything" - steps: - - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 - with: - version: "${{ matrix.NXF_VER }}" - - - name: Nextflow run with test profile - run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 584e218..22a2970 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,4 +1,4 @@ -name: nf-core linting of iridanextexample2 +name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. # It runs the `nf-core pipelines lint` and markdown lint tests to ensure # that the code meets the nf-core guidelines. @@ -50,7 +50,7 @@ jobs: pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }} - name: Run nf-core pipelines lint - if: ${{ github.base_ref != 'main' }} + if: ${{ github.base_ref != 'master' && github.base_ref != 'main' }} env: GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -58,7 +58,7 @@ jobs: run: nf-core -l lint_log.txt pipelines lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md - name: Run nf-core pipelines lint --release - if: ${{ github.base_ref == 'main' }} + if: ${{ github.base_ref == 'master' || github.base_ref == 'main' }} env: GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 7aeaf65..5ab00b7 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -68,7 +68,7 @@ jobs: shard: ${{ fromJson(needs.nf-test-changes.outputs.shard) }} profile: [conda, docker, singularity] isMain: - - ${{ github.base_ref == 'main' || github.base_ref == 'master' }} + - ${{ github.base_ref == 'master' || github.base_ref == 'main' }} # Exclude conda and singularity on dev exclude: - isMain: false @@ -76,7 +76,7 @@ jobs: - isMain: false profile: "singularity" NXF_VER: - - "24.10.5" + - "24.10.3" - "latest-everything" env: NXF_ANSI_LOG: false @@ -93,6 +93,7 @@ jobs: continue-on-error: ${{ matrix.NXF_VER == 'latest-everything' }} env: NFT_WORKDIR: ${{ env.NFT_WORKDIR }} + NXF_VERSION: ${{ matrix.NXF_VER }} with: profile: ${{ matrix.profile }} shard: ${{ matrix.shard }} diff --git a/.github/workflows/template-version-comment.yml b/.github/workflows/template-version-comment.yml new file mode 100644 index 0000000..beb5c77 --- /dev/null +++ b/.github/workflows/template-version-comment.yml @@ -0,0 +1,46 @@ +name: nf-core template version comment +# This workflow is triggered on PRs to check if the pipeline template version matches the latest nf-core version. +# It posts a comment to the PR, even if it comes from a fork. + +on: pull_request_target + +jobs: + template_version: + runs-on: ubuntu-latest + steps: + - name: Check out pipeline code + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + + - name: Read template version from .nf-core.yml + uses: nichmor/minimal-read-yaml@1f7205277e25e156e1f63815781db80a6d490b8f # v0.0.2 + id: read_yml + with: + config: ${{ github.workspace }}/.nf-core.yml + + - name: Install nf-core + run: | + python -m pip install --upgrade pip + pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }} + + - name: Check nf-core outdated + id: nf_core_outdated + run: echo "OUTPUT=$(pip list --outdated | grep nf-core)" >> ${GITHUB_ENV} + + - name: Post nf-core template version comment + uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2 + if: | + contains(env.OUTPUT, 'nf-core') + with: + repo-token: ${{ secrets.NF_CORE_BOT_AUTH_TOKEN }} + allow-repeats: false + message: | + > [!WARNING] + > Newer version of the nf-core template is available. + > + > Your pipeline is using an old version of the nf-core template: ${{ steps.read_yml.outputs['nf_core_version'] }}. + > Please update your pipeline to the latest version. + > + > For more documentation on how to update your pipeline, please see the [nf-core documentation](https://github.com/nf-core/tools?tab=readme-ov-file#sync-a-pipeline-with-the-template) and [Synchronisation documentation](https://nf-co.re/docs/contributing/sync). + # diff --git a/.nf-core.yml b/.nf-core.yml index 4792b85..5fa6e7c 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -3,7 +3,6 @@ repository_type: pipeline nf_core_version: 3.3.2 lint: - included_configs: False files_unchanged: - CODE_OF_CONDUCT.md - assets/nf-core-iridanextexample2_logo_light.png @@ -14,7 +13,6 @@ lint: - .github/PULL_REQUEST_TEMPLATE.md - assets/email_template.txt - docs/README.md - - .github/workflows/linting.yml nextflow_config: - custom_config - manifest.name From 434c4e9fb1f9e986e8811182a2303db8260c0afd Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Mon, 6 Oct 2025 10:43:24 -0500 Subject: [PATCH 03/16] Updating changelog and fixing versions/linting --- .nf-core.yml | 2 ++ CHANGELOG.md | 7 ++++++- README.md | 3 +-- nextflow.config | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index 5fa6e7c..862c807 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -11,6 +11,8 @@ lint: - .github/ISSUE_TEMPLATE/bug_report.yml - .github/CONTRIBUTING.md - .github/PULL_REQUEST_TEMPLATE.md + - .github/workflows/linting.yml + - .github/workflows/branch.yml - assets/email_template.txt - docs/README.md nextflow_config: diff --git a/CHANGELOG.md b/CHANGELOG.md index 454d6e7..b2a7db0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### `Updated` +### `Added` - Adding GitHub CI tests against Nextflow `24.10.3`. [PR #8](https://github.com/phac-nml/iridanextexample2/pull/8) + - Required downgrading minimum Nextflow version from `24.10.5` to `24.10.3`. + +### `Updated` + +- Some minor updates to GitHub actions and `.nf-core.yml` to better match latest nf-core template. [PR #8](https://github.com/phac-nml/iridanextexample2/pull/8) ## [0.1.0] - 2025-07-25 diff --git a/README.md b/README.md index db034f2..5528073 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,7 @@ [![GitHub Actions Linting Status](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml/badge.svg)](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml) [![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) -[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) -[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2) +[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.3-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) [![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) diff --git a/nextflow.config b/nextflow.config index 0858337..69cb10e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -259,7 +259,7 @@ manifest { description = """An example pipeline for running on IRIDA-Next with nf-schema""" mainScript = 'main.nf' defaultBranch = 'main' - nextflowVersion = '!>=24.10.5' + nextflowVersion = '!>=24.10.3' version = '0.1.0' doi = '' } From 2455372d8e50ab1b5fab9dac2444547655d4a287 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Mon, 6 Oct 2025 10:44:26 -0500 Subject: [PATCH 04/16] Fixed ro-crate --- ro-crate-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 548ba2c..a873a72 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -23,7 +23,7 @@ "@type": "Dataset", "creativeWorkStatus": "InProgress", "datePublished": "2025-07-09T15:42:36+00:00", - "description": "# phac-nml/iridanextexample2\n\n[![GitHub Actions CI Status](https://github.com/phac-nml/iridanextexample2/actions/workflows/nf-test.yml/badge.svg)](https://github.com/phac-nml/iridanextexample2/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml/badge.svg)](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n\n## Introduction\n\n**phac-nml/iridanextexample2** is an example pipeline for integration with IRIDA-Next. It is a successor to the original [iridanextexample](https://github.com/phac-nml/iridanextexample) which replaces [nf-validation](https://github.com/nextflow-io/nf-validation) with [nf-schema](https://github.com/nextflow-io/nf-schema)\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n### Input\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\nAn example [samplesheet](assets/samplesheet.csv), which follows the [schema_input.json](assets/schema_input.json) structure.\n\n```csv\nsample,fastq_1,fastq_2\nSAMPLE1,sample1_R1.fastq.gz,sample1_R2.fastq.gz\nSAMPLE2,sample2_R1.fastq.gz,sample2_R2.fastq.gz\nSAMPLE3,sample1_R1.fastq.gz,\n```\n\nEach row represents a fastq file (single-end) or a pair of fastq files (paired end). Validation of the samplesheet is performed by [nf-schema validateParameters()](https://nextflow-io.github.io/nf-schema/latest/nextflow_schema/).\n\n### Running the pipeline\n\n```bash\nnextflow run phac-nml/iridanextexample2 \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n### Output for IRIDA-Next\n\nOutput from the pipeline is available in IRIDA-Next users based on the contents of the `iridanext.output.json.gz`. Files and metadata are passed to the json output file using the [nf-iridanext plugin](https://github.com/phac-nml/nf-iridanext) based on the [iridanext.config](conf/iridanext.config).\n\nExample:\n\n```\n{\n \"files\": {\n \"global\": [\n\n ],\n \"samples\": {\n \"SAMPLE3\": [\n {\n \"path\": \"fastqc/SAMPLE3_fastqc.html\"\n }\n ],\n \"SAMPLE2\": [\n {\n \"path\": \"fastqc/SAMPLE2_2_fastqc.html\"\n },\n {\n \"path\": \"fastqc/SAMPLE2_1_fastqc.html\"\n }\n ],\n \"SAMPLE1\": [\n {\n \"path\": \"fastqc/SAMPLE1_2_fastqc.html\"\n },\n {\n \"path\": \"fastqc/SAMPLE1_1_fastqc.html\"\n }\n ]\n }\n },\n \"metadata\": {\n \"samples\": {\n \"SAMPLE3\": {\n \"id\": \"SAMPLE3\",\n \"single_end\": \"true\"\n },\n \"SAMPLE2\": {\n \"id\": \"SAMPLE2\",\n \"single_end\": \"false\"\n },\n \"SAMPLE1\": {\n \"id\": \"SAMPLE1\",\n \"single_end\": \"false\"\n }\n }\n }\n}\n```\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n\n# Legal\n\nCopyright 2023 Government of Canada\n\nLicensed under the MIT License (the \"License\"); you may not use\nthis work except in compliance with the License. You may obtain a copy of the\nLicense at:\n\nhttps://opensource.org/license/mit/\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n", + "description": "# phac-nml/iridanextexample2\n\n[![GitHub Actions CI Status](https://github.com/phac-nml/iridanextexample2/actions/workflows/nf-test.yml/badge.svg)](https://github.com/phac-nml/iridanextexample2/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml/badge.svg)](https://github.com/phac-nml/iridanextexample2/actions/workflows/linting.yml)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.3-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) [![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n\n## Introduction\n\n**phac-nml/iridanextexample2** is an example pipeline for integration with IRIDA-Next. It is a successor to the original [iridanextexample](https://github.com/phac-nml/iridanextexample) which replaces [nf-validation](https://github.com/nextflow-io/nf-validation) with [nf-schema](https://github.com/nextflow-io/nf-schema)\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n### Input\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\nAn example [samplesheet](assets/samplesheet.csv), which follows the [schema_input.json](assets/schema_input.json) structure.\n\n```csv\nsample,fastq_1,fastq_2\nSAMPLE1,sample1_R1.fastq.gz,sample1_R2.fastq.gz\nSAMPLE2,sample2_R1.fastq.gz,sample2_R2.fastq.gz\nSAMPLE3,sample1_R1.fastq.gz,\n```\n\nEach row represents a fastq file (single-end) or a pair of fastq files (paired end). Validation of the samplesheet is performed by [nf-schema validateParameters()](https://nextflow-io.github.io/nf-schema/latest/nextflow_schema/).\n\n### Running the pipeline\n\n```bash\nnextflow run phac-nml/iridanextexample2 \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n### Output for IRIDA-Next\n\nOutput from the pipeline is available in IRIDA-Next users based on the contents of the `iridanext.output.json.gz`. Files and metadata are passed to the json output file using the [nf-iridanext plugin](https://github.com/phac-nml/nf-iridanext) based on the [iridanext.config](conf/iridanext.config).\n\nExample:\n\n```\n{\n \"files\": {\n \"global\": [\n\n ],\n \"samples\": {\n \"SAMPLE3\": [\n {\n \"path\": \"fastqc/SAMPLE3_fastqc.html\"\n }\n ],\n \"SAMPLE2\": [\n {\n \"path\": \"fastqc/SAMPLE2_2_fastqc.html\"\n },\n {\n \"path\": \"fastqc/SAMPLE2_1_fastqc.html\"\n }\n ],\n \"SAMPLE1\": [\n {\n \"path\": \"fastqc/SAMPLE1_2_fastqc.html\"\n },\n {\n \"path\": \"fastqc/SAMPLE1_1_fastqc.html\"\n }\n ]\n }\n },\n \"metadata\": {\n \"samples\": {\n \"SAMPLE3\": {\n \"id\": \"SAMPLE3\",\n \"single_end\": \"true\"\n },\n \"SAMPLE2\": {\n \"id\": \"SAMPLE2\",\n \"single_end\": \"false\"\n },\n \"SAMPLE1\": {\n \"id\": \"SAMPLE1\",\n \"single_end\": \"false\"\n }\n }\n }\n}\n```\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n\n# Legal\n\nCopyright 2023 Government of Canada\n\nLicensed under the MIT License (the \"License\"); you may not use\nthis work except in compliance with the License. You may obtain a copy of the\nLicense at:\n\nhttps://opensource.org/license/mit/\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n", "hasPart": [ { "@id": "main.nf" From f78ba97613abd71a240f82ab03b2ae5b27cd9c92 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Mon, 6 Oct 2025 10:49:03 -0500 Subject: [PATCH 05/16] Updated nf-core modules --- CHANGELOG.md | 1 + modules.json | 2 +- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 ++-- .../nf-core/multiqc/tests/main.nf.test.snap | 18 +++++++++--------- modules/nf-core/multiqc/tests/tags.yml | 2 -- 6 files changed, 14 insertions(+), 15 deletions(-) delete mode 100644 modules/nf-core/multiqc/tests/tags.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index b2a7db0..94df19d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Updated` - Some minor updates to GitHub actions and `.nf-core.yml` to better match latest nf-core template. [PR #8](https://github.com/phac-nml/iridanextexample2/pull/8) +- Updated nf-core modules and subworkflows. [PR #8](https://github.com/phac-nml/iridanextexample2/pull/8) ## [0.1.0] - 2025-07-25 diff --git a/modules.json b/modules.json index 5acb616..cc0d343 100644 --- a/modules.json +++ b/modules.json @@ -12,7 +12,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "e10b76ca0c66213581bec2833e30d31f239dec0b", "installed_by": ["modules"] } } diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 812fc4c..dd513cb 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.29 + - bioconda::multiqc=1.31 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 0ac3c36..5288f5c 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.29--pyhdfd78af_0' : - 'biocontainers/multiqc:1.29--pyhdfd78af_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/ef/eff0eafe78d5f3b65a6639265a16b89fdca88d06d18894f90fcdb50142004329/data' : + 'community.wave.seqera.io/library/multiqc:1.31--1efbafd542a23882' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index 88e9057..17881d1 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,8968b114a3e20756d8af2b80713bcc4f" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-05-22T11:50:41.182332996" + "timestamp": "2025-09-08T20:57:36.139055243" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,8968b114a3e20756d8af2b80713bcc4f" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-05-22T11:51:22.448739369" + "timestamp": "2025-09-08T20:59:15.142230631" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,8968b114a3e20756d8af2b80713bcc4f" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-05-22T11:51:06.198928424" + "timestamp": "2025-09-08T20:58:29.629087066" } } \ No newline at end of file diff --git a/modules/nf-core/multiqc/tests/tags.yml b/modules/nf-core/multiqc/tests/tags.yml deleted file mode 100644 index bea6c0d..0000000 --- a/modules/nf-core/multiqc/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -multiqc: - - modules/nf-core/multiqc/** From 5c93d146a7523f5cb94bbd24e8d7005c2b4079f3 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Mon, 6 Oct 2025 10:51:03 -0500 Subject: [PATCH 06/16] updating nf-core subworkflows --- modules.json | 6 +- .../tests/nextflow.config | 2 +- .../utils_nextflow_pipeline/tests/tags.yml | 2 - .../tests/nextflow.config | 2 +- .../utils_nfcore_pipeline/tests/tags.yml | 2 - .../nf-core/utils_nfschema_plugin/main.nf | 40 +++++++++++-- .../utils_nfschema_plugin/tests/main.nf.test | 56 +++++++++++++++++++ .../tests/nextflow.config | 4 +- 8 files changed, 97 insertions(+), 17 deletions(-) delete mode 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml delete mode 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml diff --git a/modules.json b/modules.json index cc0d343..88c1a8a 100644 --- a/modules.json +++ b/modules.json @@ -21,17 +21,17 @@ "nf-core": { "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "c2b22d85f30a706a3073387f30380704fcae013b", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "51ae5406a030d4da1e49e4dab49756844fdd6c7a", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", - "git_sha": "2fd2cd6d0e7b273747f32e465fdc6bcc3ae0814e", + "git_sha": "4b406a74dc0449c0401ed87d5bfff4252fd277fd", "installed_by": ["subworkflows"] } } diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config index 1f89bca..a09572e 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -3,7 +3,7 @@ manifest { author = """nf-core""" homePage = 'https://127.0.0.1' description = """Dummy pipeline""" - nextflowVersion = '!>=24.10.0' + nextflowVersion = '!>=23.04.0' version = '9.9.9' doi = 'https://doi.org/10.5281/zenodo.5070524' } diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml deleted file mode 100644 index f847611..0000000 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nextflow_pipeline: - - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config index 8f97c6a..d0a926b 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config @@ -3,7 +3,7 @@ manifest { author = """nf-core""" homePage = 'https://127.0.0.1' description = """Dummy pipeline""" - nextflowVersion = '!>=24.10.0' + nextflowVersion = '!>=23.04.0' version = '9.9.9' doi = 'https://doi.org/10.5281/zenodo.5070524' } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml deleted file mode 100644 index ac8523c..0000000 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nfcore_pipeline: - - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/subworkflows/nf-core/utils_nfschema_plugin/main.nf index 4994303..ee4738c 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfschema_plugin/main.nf @@ -4,6 +4,7 @@ include { paramsSummaryLog } from 'plugin/nf-schema' include { validateParameters } from 'plugin/nf-schema' +include { paramsHelp } from 'plugin/nf-schema' workflow UTILS_NFSCHEMA_PLUGIN { @@ -15,29 +16,56 @@ workflow UTILS_NFSCHEMA_PLUGIN { // when this input is empty it will automatically use the configured schema or // "${projectDir}/nextflow_schema.json" as default. This input should not be empty // for meta pipelines + help // boolean: show help message + help_full // boolean: show full help message + show_hidden // boolean: show hidden parameters in help message + before_text // string: text to show before the help message and parameters summary + after_text // string: text to show after the help message and parameters summary + command // string: an example command of the pipeline main: + if(help || help_full) { + help_options = [ + beforeText: before_text, + afterText: after_text, + command: command, + showHidden: show_hidden, + fullHelp: help_full, + ] + if(parameters_schema) { + help_options << [parametersSchema: parameters_schema] + } + log.info paramsHelp( + help_options, + params.help instanceof String ? params.help : "", + ) + exit 0 + } + // // Print parameter summary to stdout. This will display the parameters // that differ from the default given in the JSON schema // + + summary_options = [:] if(parameters_schema) { - log.info paramsSummaryLog(input_workflow, parameters_schema:parameters_schema) - } else { - log.info paramsSummaryLog(input_workflow) + summary_options << [parametersSchema: parameters_schema] } + log.info before_text + log.info paramsSummaryLog(summary_options, input_workflow) + log.info after_text // // Validate the parameters using nextflow_schema.json or the schema // given via the validation.parametersSchema configuration option // if(validate_params) { + validateOptions = [:] if(parameters_schema) { - validateParameters(parameters_schema:parameters_schema) - } else { - validateParameters() + validateOptions << [parametersSchema: parameters_schema] } + validateParameters(validateOptions) } emit: diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test index 8fb3016..c977917 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test @@ -25,6 +25,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -51,6 +57,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -77,6 +89,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -103,6 +121,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -114,4 +138,36 @@ nextflow_workflow { ) } } + + test("Should create a help message") { + + when { + + params { + test_data = '' + outdir = null + } + + workflow { + """ + validate_params = true + input[0] = workflow + input[1] = validate_params + input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = true + input[4] = false + input[5] = false + input[6] = "Before" + input[7] = "After" + input[8] = "nextflow run test/test" + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } } diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config index 09ef842..8d8c737 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config @@ -1,8 +1,8 @@ plugins { - id "nf-schema@2.4.2" + id "nf-schema@2.5.1" } validation { parametersSchema = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" monochromeLogs = true -} \ No newline at end of file +} From 70820740b6b9971e3470927cf2ccdca270769e2a Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:26:00 -0500 Subject: [PATCH 07/16] Fixed missing parameters to workflow --- main.nf | 8 +++++++- nextflow.config | 2 +- subworkflows/local/utils_iridanextexample2/main.nf | 14 +++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/main.nf b/main.nf index 2cd4093..83c5fea 100644 --- a/main.nf +++ b/main.nf @@ -72,7 +72,13 @@ workflow { params.monochrome_logs, args, params.outdir, - params.input + params.input, + params.help, + params.help_full, + params.show_hidden, + null, + null, + null ) // diff --git a/nextflow.config b/nextflow.config index 69cb10e..f172e8b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -266,7 +266,7 @@ manifest { // Nextflow plugins plugins { - id 'nf-schema@2.4.2' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-schema@2.5.1' // Validation of pipeline parameters and creation of an input channel from a sample sheet id 'nf-iridanext@0.3.0' } includeConfig 'conf/iridanext.config' diff --git a/subworkflows/local/utils_iridanextexample2/main.nf b/subworkflows/local/utils_iridanextexample2/main.nf index 951e7d3..a93f458 100644 --- a/subworkflows/local/utils_iridanextexample2/main.nf +++ b/subworkflows/local/utils_iridanextexample2/main.nf @@ -32,6 +32,12 @@ workflow PIPELINE_INITIALISATION { nextflow_cli_args // array: List of positional nextflow CLI args outdir // string: The output directory where the results will be saved input // string: Path to input samplesheet + help // boolean: show help message + help_full // boolean: show full help message + show_hidden // boolean: show hidden parameters in help message + before_text // string: text to show before the help message and parameters summary + after_text // string: text to show after the help message and parameters summary + command // string: an example command of the pipeline main: @@ -53,7 +59,13 @@ workflow PIPELINE_INITIALISATION { UTILS_NFSCHEMA_PLUGIN ( workflow, validate_params, - null + null, + help, + help_full, + show_hidden, + before_text, + after_text, + command ) // From d0d8a812482f75fb036e3a92844ceb874fa726ec Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:28:36 -0500 Subject: [PATCH 08/16] Updated snapshot --- tests/default.nf.test.snap | 144 ++----------------------------------- 1 file changed, 6 insertions(+), 138 deletions(-) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index ce9ca32..29e8480 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -31,7 +31,6 @@ "merged_metadata.csv", "multiqc", "multiqc/multiqc_data", - "multiqc/multiqc_data/BETA-multiqc.parquet", "multiqc/multiqc_data/fastqc-status-check-heatmap.txt", "multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt", "multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt", @@ -43,7 +42,9 @@ "multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/multiqc_data/llms-full.txt", "multiqc/multiqc_data/multiqc.log", + "multiqc/multiqc_data/multiqc.parquet", "multiqc/multiqc_data/multiqc_citations.txt", "multiqc/multiqc_data/multiqc_data.json", "multiqc/multiqc_data/multiqc_fastqc.txt", @@ -108,150 +109,17 @@ "fastqc_sequence_counts_plot.txt:md5,c6e4e1588e6765fe8df27812a1322fbd", "fastqc_sequence_duplication_levels_plot.txt:md5,3cde2db4033f6c64648976d1174db925", "fastqc_sequence_length_distribution_plot.txt:md5,e82b9b14a7e24c0c5f27af97cebb6870", + "llms-full.txt:md5,5a6d155b6309597b8621ff0e3539d7a3", + "multiqc.parquet:md5,b68eaa1899c3607f21d1652b9af956e3", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", "multiqc_fastqc.txt:md5,1a41c2158adc9947bff9232962f70110", "multiqc_general_stats.txt:md5,0b54e4e764665bd57fe0f95216744a78" ] ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-07-25T16:02:53.359429554" - }, - "-profile test": { - "content": [ - 0, - { - "Workflow": { - "phac-nml/iridanextexample2": "v1.0.0dev" - } - }, - [ - "pipeline_info", - "pipeline_info/iridanextexample2_software_mqc_versions.yml" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.0", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-16T13:03:59.71613972" - }, - "-profile test,conda": { - "content": [ - 4, - { - "FASTQC": { - "fastqc": "0.12.1" - }, - "Workflow": { - "phac-nml/iridanextexample2": "v1.0.0dev" - } - }, - [ - "fastqc", - "fastqc/SAMPLE1_PE_1_fastqc.html", - "fastqc/SAMPLE1_PE_1_fastqc.zip", - "fastqc/SAMPLE1_PE_2_fastqc.html", - "fastqc/SAMPLE1_PE_2_fastqc.zip", - "fastqc/SAMPLE2_PE_1_fastqc.html", - "fastqc/SAMPLE2_PE_1_fastqc.zip", - "fastqc/SAMPLE2_PE_2_fastqc.html", - "fastqc/SAMPLE2_PE_2_fastqc.zip", - "fastqc/SAMPLE3_SE_1_fastqc.html", - "fastqc/SAMPLE3_SE_1_fastqc.zip", - "fastqc/SAMPLE3_SE_2_fastqc.html", - "fastqc/SAMPLE3_SE_2_fastqc.zip", - "iridanext.output.json.gz", - "multiqc", - "multiqc/multiqc_data", - "multiqc/multiqc_data/BETA-multiqc.parquet", - "multiqc/multiqc_data/fastqc-status-check-heatmap.txt", - "multiqc/multiqc_data/fastqc_overrepresented_sequences_plot.txt", - "multiqc/multiqc_data/fastqc_per_base_n_content_plot.txt", - "multiqc/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", - "multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", - "multiqc/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", - "multiqc/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", - "multiqc/multiqc_data/fastqc_sequence_counts_plot.txt", - "multiqc/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", - "multiqc/multiqc_data/fastqc_sequence_length_distribution_plot.txt", - "multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", - "multiqc/multiqc_data/multiqc.log", - "multiqc/multiqc_data/multiqc_citations.txt", - "multiqc/multiqc_data/multiqc_data.json", - "multiqc/multiqc_data/multiqc_fastqc.txt", - "multiqc/multiqc_data/multiqc_general_stats.txt", - "multiqc/multiqc_data/multiqc_software_versions.txt", - "multiqc/multiqc_data/multiqc_sources.txt", - "multiqc/multiqc_plots", - "multiqc/multiqc_plots/pdf", - "multiqc/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", - "multiqc/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", - "multiqc/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", - "multiqc/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", - "multiqc/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", - "multiqc/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", - "multiqc/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/multiqc_plots/png", - "multiqc/multiqc_plots/png/fastqc-status-check-heatmap.png", - "multiqc/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", - "multiqc/multiqc_plots/png/fastqc_per_base_n_content_plot.png", - "multiqc/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", - "multiqc/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", - "multiqc/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", - "multiqc/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", - "multiqc/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", - "multiqc/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", - "multiqc/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", - "multiqc/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/multiqc_plots/svg", - "multiqc/multiqc_plots/svg/fastqc-status-check-heatmap.svg", - "multiqc/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", - "multiqc/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", - "multiqc/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", - "multiqc/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", - "multiqc/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", - "multiqc/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/multiqc_report.html", - "pipeline_info", - "pipeline_info/iridanextexample2_software_mqc_versions.yml" - ], - [ - "fastqc-status-check-heatmap.txt:md5,0f1975c565a16bf09be08a05c204ded7", - "fastqc_overrepresented_sequences_plot.txt:md5,4b23cea39c4e23deef6b97810bc1ee46", - "fastqc_per_base_n_content_plot.txt:md5,037692101c0130c72493d3bbfa3afac1", - "fastqc_per_base_sequence_quality_plot.txt:md5,bfe735f3e31befe13bdf6761bb297d6e", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,7108d19c46ef7883e864ba274c457d2e", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,23f527c80a148e4f34e5a43f6e520a90", - "fastqc_per_sequence_quality_scores_plot.txt:md5,a0cc0e6df7bfb05257da1cfc88b13c50", - "fastqc_sequence_counts_plot.txt:md5,c6e4e1588e6765fe8df27812a1322fbd", - "fastqc_sequence_duplication_levels_plot.txt:md5,3cde2db4033f6c64648976d1174db925", - "fastqc_sequence_length_distribution_plot.txt:md5,e82b9b14a7e24c0c5f27af97cebb6870", - "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", - "multiqc_fastqc.txt:md5,1a41c2158adc9947bff9232962f70110", - "multiqc_general_stats.txt:md5,0b54e4e764665bd57fe0f95216744a78" - ] - ], - "meta": { - "nf-test": "0.9.0", - "nextflow": "25.04.6" - }, - "timestamp": "2025-07-18T16:48:55.321351221" + "timestamp": "2025-10-07T14:27:22.63095831" } } \ No newline at end of file From a0b5b455d4a65ef7fc36f7e8cc8d26144381df00 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:37:14 -0500 Subject: [PATCH 09/16] Added files to tests ignore --- tests/.nftignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/.nftignore b/tests/.nftignore index 824ddc7..05231ff 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -1,10 +1,11 @@ .DS_Store multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt -multiqc/multiqc_data/BETA-multiqc.parquet +multiqc/multiqc_data/multiqc.parquet multiqc/multiqc_data/multiqc.log multiqc/multiqc_data/multiqc_data.json multiqc/multiqc_data/multiqc_sources.txt multiqc/multiqc_data/multiqc_software_versions.txt +multiqc/multiqc_data/lims-full.txt multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html fastqc/*_fastqc.{html,zip} From 1714dcd8aeda71d8f88be316befdd61265901c70 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:39:07 -0500 Subject: [PATCH 10/16] Updated snapshot --- tests/default.nf.test.snap | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 29e8480..b25da5c 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -109,8 +109,7 @@ "fastqc_sequence_counts_plot.txt:md5,c6e4e1588e6765fe8df27812a1322fbd", "fastqc_sequence_duplication_levels_plot.txt:md5,3cde2db4033f6c64648976d1174db925", "fastqc_sequence_length_distribution_plot.txt:md5,e82b9b14a7e24c0c5f27af97cebb6870", - "llms-full.txt:md5,5a6d155b6309597b8621ff0e3539d7a3", - "multiqc.parquet:md5,b68eaa1899c3607f21d1652b9af956e3", + "llms-full.txt:md5,046a120e54deb7bdf06a4d9728723b71", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", "multiqc_fastqc.txt:md5,1a41c2158adc9947bff9232962f70110", "multiqc_general_stats.txt:md5,0b54e4e764665bd57fe0f95216744a78" @@ -120,6 +119,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-10-07T14:27:22.63095831" + "timestamp": "2025-10-07T14:38:04.378277923" } } \ No newline at end of file From c46c66ae4d1f6efe4636cc1f03e482cff250c565 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:42:42 -0500 Subject: [PATCH 11/16] Fixed tests --- tests/.nftignore | 2 +- tests/default.nf.test.snap | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/.nftignore b/tests/.nftignore index 05231ff..5461f8e 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -5,7 +5,7 @@ multiqc/multiqc_data/multiqc.log multiqc/multiqc_data/multiqc_data.json multiqc/multiqc_data/multiqc_sources.txt multiqc/multiqc_data/multiqc_software_versions.txt -multiqc/multiqc_data/lims-full.txt +multiqc/multiqc_data/llms-full.txt multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html fastqc/*_fastqc.{html,zip} diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index b25da5c..c439376 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -109,7 +109,6 @@ "fastqc_sequence_counts_plot.txt:md5,c6e4e1588e6765fe8df27812a1322fbd", "fastqc_sequence_duplication_levels_plot.txt:md5,3cde2db4033f6c64648976d1174db925", "fastqc_sequence_length_distribution_plot.txt:md5,e82b9b14a7e24c0c5f27af97cebb6870", - "llms-full.txt:md5,046a120e54deb7bdf06a4d9728723b71", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", "multiqc_fastqc.txt:md5,1a41c2158adc9947bff9232962f70110", "multiqc_general_stats.txt:md5,0b54e4e764665bd57fe0f95216744a78" @@ -119,6 +118,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-10-07T14:38:04.378277923" + "timestamp": "2025-10-07T14:41:41.180274463" } } \ No newline at end of file From 84208ff5745a2279dc6402dc1cac05db305d87d3 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:47:34 -0500 Subject: [PATCH 12/16] Downgrade nf-schema --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index f172e8b..69cb10e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -266,7 +266,7 @@ manifest { // Nextflow plugins plugins { - id 'nf-schema@2.5.1' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-schema@2.4.2' // Validation of pipeline parameters and creation of an input channel from a sample sheet id 'nf-iridanext@0.3.0' } includeConfig 'conf/iridanext.config' From a79c0281fa5affe911736ee6a379cf11ed48706e Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 14:59:33 -0500 Subject: [PATCH 13/16] Fixed up a few variables --- subworkflows/local/utils_iridanextexample2/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/utils_iridanextexample2/main.nf b/subworkflows/local/utils_iridanextexample2/main.nf index a93f458..81c4e40 100644 --- a/subworkflows/local/utils_iridanextexample2/main.nf +++ b/subworkflows/local/utils_iridanextexample2/main.nf @@ -59,7 +59,7 @@ workflow PIPELINE_INITIALISATION { UTILS_NFSCHEMA_PLUGIN ( workflow, validate_params, - null, + "${projectDir}/nextflow_schema.json", help, help_full, show_hidden, @@ -86,7 +86,7 @@ workflow PIPELINE_INITIALISATION { // Track processed IDs def processedIDs = [] as Set Channel - .fromList(samplesheetToList(params.input, "${projectDir}/assets/schema_input.json")) + .fromList(samplesheetToList(input, "${projectDir}/assets/schema_input.json")) .map { meta, fastq_1, fastq_2 -> if (!meta.id) { From 7aeba62e872d651691bbfcfb7681f03839296295 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 15:18:56 -0500 Subject: [PATCH 14/16] Some minor changes to config --- main.nf | 6 +++--- nextflow.config | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/main.nf b/main.nf index 83c5fea..7054e5f 100644 --- a/main.nf +++ b/main.nf @@ -76,9 +76,9 @@ workflow { params.help, params.help_full, params.show_hidden, - null, - null, - null + "", + "", + "nextflow run phac-nml/iridanextexample2 -profile --input samplesheet.csv --outdir " ) // diff --git a/nextflow.config b/nextflow.config index 69cb10e..10ab610 100644 --- a/nextflow.config +++ b/nextflow.config @@ -269,7 +269,9 @@ plugins { id 'nf-schema@2.4.2' // Validation of pipeline parameters and creation of an input channel from a sample sheet id 'nf-iridanext@0.3.0' } + includeConfig 'conf/iridanext.config' + validation { defaultIgnoreParams = ["genomes"] monochromeLogs = params.monochrome_logs From 84d41d8851e0e94c131e41815a9ff53734437e30 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 15:35:23 -0500 Subject: [PATCH 15/16] Removed some warnings --- .nf-core.yml | 2 -- nextflow.config | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index 862c807..47113aa 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -19,8 +19,6 @@ lint: - custom_config - manifest.name - manifest.homePage - - validation.help.beforeText - - validation.help.afterText - validation.summary.beforeText - validation.summary.afterText multiqc_config: diff --git a/nextflow.config b/nextflow.config index 10ab610..7cc6452 100644 --- a/nextflow.config +++ b/nextflow.config @@ -280,6 +280,8 @@ validation { command = "nextflow run phac-nml/iridanextexample2 -profile --input samplesheet.csv --outdir " fullParameter = "help_full" showHiddenParameter = "show_hidden" + beforeText = "" + afterText = "" } } From 6abca27251b1b719f3e7bac0b4c5ba64dc705d46 Mon Sep 17 00:00:00 2001 From: Aaron Petkau Date: Tue, 7 Oct 2025 15:49:29 -0500 Subject: [PATCH 16/16] Removed unneeded parameter --- main.nf | 1 - subworkflows/local/utils_iridanextexample2/main.nf | 1 - 2 files changed, 2 deletions(-) diff --git a/main.nf b/main.nf index 7054e5f..3f3fc70 100644 --- a/main.nf +++ b/main.nf @@ -69,7 +69,6 @@ workflow { PIPELINE_INITIALISATION ( params.version, params.validate_params, - params.monochrome_logs, args, params.outdir, params.input, diff --git a/subworkflows/local/utils_iridanextexample2/main.nf b/subworkflows/local/utils_iridanextexample2/main.nf index 81c4e40..4f9e2bd 100644 --- a/subworkflows/local/utils_iridanextexample2/main.nf +++ b/subworkflows/local/utils_iridanextexample2/main.nf @@ -28,7 +28,6 @@ workflow PIPELINE_INITIALISATION { take: version // boolean: Display version and exit validate_params // boolean: Boolean whether to validate parameters against the schema at runtime - monochrome_logs // boolean: Do not use coloured log outputs nextflow_cli_args // array: List of positional nextflow CLI args outdir // string: The output directory where the results will be saved input // string: Path to input samplesheet