diff --git a/.github/actions/get-shards/action.yml b/.github/actions/get-shards/action.yml index e2833ee9..2f6859ce 100644 --- a/.github/actions/get-shards/action.yml +++ b/.github/actions/get-shards/action.yml @@ -21,7 +21,7 @@ runs: using: "composite" steps: - name: Install nf-test - uses: nf-core/setup-nf-test@4069fbbaabe94c08faba4ad261bfa88225ba133f # v2 + uses: nf-core/setup-nf-test@v2 with: version: ${{ env.NFT_VER }} - name: Get number of shards diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index 4175e3c8..ba7095e8 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -20,24 +20,24 @@ runs: using: "composite" steps: - name: Setup Nextflow - uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3 + uses: nf-core/setup-nextflow@v3 with: version: "${{ env.NXF_VERSION }}" - name: Set up Python - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7 with: - python-version: "3.14" + python-version: "3.15" - name: Install nf-test - uses: nf-core/setup-nf-test@4069fbbaabe94c08faba4ad261bfa88225ba133f # v2 + uses: nf-core/setup-nf-test@v2 with: version: "${{ env.NFT_VER }}" install-pdiff: true - name: Setup apptainer if: contains(inputs.profile, 'singularity') - uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2.0.0 + uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2 - name: Set up Singularity if: contains(inputs.profile, 'singularity') @@ -48,7 +48,7 @@ runs: - name: Conda setup if: contains(inputs.profile, 'conda') - uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4 + uses: conda-incubator/setup-miniconda@be893c923ea9cf1cf7cd510fbdde27c7e18cbdcb # v4.1.0 with: auto-update-conda: true conda-solver: libmamba diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 7626b4a5..8414993e 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -56,7 +56,7 @@ jobs: - name: Upload PR comment artifact if: failure() - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: pr-comment path: pr-comment/ diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index ca2eb822..8d2d4f7c 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -42,18 +42,18 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Install Nextflow - uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3 + uses: nf-core/setup-nextflow@v3 - name: Disk space cleanup - uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + uses: jlumbroso/free-disk-space@ceedf095f4ec1a097402bc6bd80831f2e1a6fde6 # v2.0.0 - - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7 with: - python-version: "3.14" + python-version: "3.15" architecture: "x64" - name: Setup Apptainer - uses: eWaterCycle/setup-apptainer@4bb22c52d4f63406c49e94c804632975787312b3 # v2.0.0 + uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2 with: apptainer-version: 1.3.4 @@ -135,7 +135,7 @@ jobs: fi - name: Upload Nextflow logfile for debugging purposes - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: nextflow_logfile.txt path: .nextflow.log* diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml new file mode 100644 index 00000000..81ac1812 --- /dev/null +++ b/.github/workflows/fix-linting.yml @@ -0,0 +1,21 @@ +name: Fix linting from a comment +on: + issue_comment: + types: [created] # Add "@nf-core-bot fix linting" as a PR comment to trigger this workflow. + +concurrency: + group: ${{ github.workflow }}-${{ github.event.issue.number }} + +jobs: + fix-linting: + uses: nf-core/actions/.github/workflows/fix-linting.yml@v1 + with: + nextflow-versions: '["25.10.4","latest-everything"]' + permissions: + actions: read + contents: read + issues: write + pull-requests: write + + secrets: + BOT_TOKEN: ${{ secrets.nf_core_bot_auth_token }} diff --git a/.github/workflows/fix_linting.yml b/.github/workflows/fix_linting.yml deleted file mode 100644 index 61394953..00000000 --- a/.github/workflows/fix_linting.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Fix linting from a comment -on: - issue_comment: - types: [created] - -jobs: - fix-linting: - # Only run if comment is on a PR with the main repo, and if it contains the magic keywords - if: > - contains(github.event.comment.html_url, '/pull/') && - contains(github.event.comment.body, '@nf-core-bot fix linting') && - github.repository == 'IntGenomicsLab/lrsomatic' - runs-on: ubuntu-latest - steps: - # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - with: - token: ${{ secrets.nf_core_bot_auth_token }} - - # indication that the linting is being fixed - - name: React on comment - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 - with: - comment-id: ${{ github.event.comment.id }} - reactions: eyes - - # Action runs on the issue comment, so we don't get the PR by default - # Use the gh cli to check out the PR - - name: Checkout Pull Request - run: gh pr checkout ${{ github.event.issue.number }} - env: - GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - - name: Install Nextflow - uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3 - - # Install and run prek - - name: Run prek - id: prek - uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2 - continue-on-error: true - - # indication that the linting has finished - - name: react if linting finished succesfully - if: steps.prek.outcome == 'success' - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 - with: - comment-id: ${{ github.event.comment.id }} - reactions: "+1" - - - name: Commit & push changes - id: commit-and-push - if: steps.prek.outcome == 'failure' - run: | - git config user.email "core@nf-co.re" - git config user.name "nf-core-bot" - git config push.default upstream - git add . - git status - git commit -m "[automated] Fix code linting" - git push - - - name: react if linting errors were fixed - id: react-if-fixed - if: steps.commit-and-push.outcome == 'success' - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 - with: - comment-id: ${{ github.event.comment.id }} - reactions: hooray - - - name: react if linting errors were not fixed - if: steps.commit-and-push.outcome == 'failure' - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 - with: - comment-id: ${{ github.event.comment.id }} - reactions: confused - - - name: react if linting errors were not fixed - if: steps.commit-and-push.outcome == 'failure' - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 - with: - issue-number: ${{ github.event.issue.number }} - body: | - @${{ github.actor }} I tried to fix the linting errors, but it didn't work. Please fix them manually. - See [CI log](https://github.com/IntGenomicsLab/lrsomatic/actions/runs/${{ github.run_id }}) for more details. diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 7ca0ebd9..084489f4 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Install Nextflow - uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3 + uses: nf-core/setup-nextflow@v3 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 with: @@ -37,15 +37,15 @@ jobs: uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Install Nextflow - uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3 + uses: nf-core/setup-nextflow@v3 - - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7 + - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7 with: - python-version: "3.14" + python-version: "3.15" architecture: "x64" - name: Setup uv - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 + uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 - name: read .nf-core.yml uses: pietrobolcato/action-read-yaml@9f13718d61111b69f30ab4ac683e67a56d254e1d # 1.1.0 @@ -78,7 +78,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: linting-logs path: | @@ -99,7 +99,7 @@ jobs: - name: Upload PR comment artifact if: ${{ always() }} - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: pr-comment path: pr-comment/ diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 73d02998..8a0ef6a0 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -127,7 +127,7 @@ jobs: - name: Upload PR comment fragment if: ${{ always() && steps.run_nf_test.outcome == 'failure' && matrix.NXF_VER == 'latest-everything' }} - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7 with: name: pr-comment-fragment-${{ strategy.job-index }} path: pr-comment-fragment/ @@ -160,7 +160,7 @@ jobs: - name: Download PR comment fragments if: ${{ always() }} - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 continue-on-error: true with: pattern: pr-comment-fragment-* @@ -194,7 +194,7 @@ jobs: - name: Upload PR comment artifact if: ${{ always() }} - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7 with: name: pr-comment path: pr-comment/ diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml index ab7b59dd..093fa638 100644 --- a/.github/workflows/pr-comment.yml +++ b/.github/workflows/pr-comment.yml @@ -31,7 +31,7 @@ jobs: if: github.event.workflow_run.event == 'pull_request' steps: - name: Download PR comment artifact - uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 + uses: dawidd6/action-download-artifact@eab87c9830c39eff17e5a6eadb20bfb4bc880477 # v27 with: run_id: ${{ github.event.workflow_run.id }} name: pr-comment diff --git a/.github/workflows/template-version-comment.yml b/.github/workflows/template-version-comment.yml index 149e2851..775758ba 100644 --- a/.github/workflows/template-version-comment.yml +++ b/.github/workflows/template-version-comment.yml @@ -54,7 +54,7 @@ jobs: fi - name: Upload PR comment artifact - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: pr-comment path: pr-comment/ diff --git a/.nf-core.yml b/.nf-core.yml index f61b2031..f1bc5f3e 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -32,7 +32,7 @@ lint: # a -preview run publishes nothing, so this test asserts on the workflow graph instead of a versions.yml snapshot nf_test_content: - tests/sv_annotation_compose.nf.test -nf_core_version: 4.1.0 +nf_core_version: 4.2.1 repository_type: pipeline template: author: Robert Forsyth & Luuk Harbers @@ -44,4 +44,4 @@ template: outdir: . skip_features: - fastqc - version: 1.1.0 + version: 1.2.0dev diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a83210cc..bfd4fd2c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ repos: hooks: - id: prettier additional_dependencies: - - prettier@3.9.6 + - prettier@3.9.10 - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..8389b2db --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + // See https://github.com/nf-core/vscode-extensionpack + "recommendations": [ + "codezombiech.gitignore", + "esbenp.prettier-vscode", + "jebbs.markdown-extended", + "mechatroner.rainbow-csv", + "nextflow.nextflow", + "onnovalkering.vscode-singularity", + "redhat.vscode-yaml" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index a33b527c..a0033586 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "markdown.styles": ["public/vscode_markdown.css"] + // Render nf-core website admonitions nicely in markdown previews + "markdown.styles": ["https://nf-co.re/vscode_markdown.css"] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 250d345f..3d9717c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Changed` +- [#227](https://github.com/IntGenomicsLab/lrsomatic/pull/227) - Cleared the pipeline-level nf-core lint warnings. `manifest.version` and the `.nf-core.yml` template version are now `1.2.0dev`; the 13 flat `subworkflows/local/*.nf` files moved to `subworkflows/local//main.nf`; `skip_modkit` is in the skip options group and six parameters got schema descriptions; `--autocorrelation` is now a boolean (default `false`), as `docs/usage.md` already described it, so a bare `--autocorrelation` flag passes validation; template TODOs are resolved, including a pipeline citation in the MultiQC methods description and pipeline-specific contribution guidelines; and the stray `lint_log.txt` debug log is removed (@ljwharbers). +- [#224](https://github.com/IntGenomicsLab/lrsomatic/pull/224) - Updated to the nf-core template for [nf-core/tools 4.2.1](https://github.com/nf-core/tools/releases/tag/4.2.1). Bumps nf-schema to 2.7.3 (needed for Nextflow 26.04) and nft-utils to 1.2.1, sets `manifest.diagram` to the existing metro map (`assets/lrsomatic_1.0.png`), replaces `fix_linting.yml` with the reusable `fix-linting.yml` from nf-core/actions, adds recommended VS Code extensions, and stops `workflow.onComplete` from blocking on the MultiQC report. The linting workflow keeps running plain `pre-commit` rather than the template's prek-action (@ljwharbers). +- [#224](https://github.com/IntGenomicsLab/lrsomatic/pull/224) - Dropped `ext.use_gpu` from the GPU resource labels, following the template. `CLAIR3` now reads `params.use_gpu` instead of `task.ext.use_gpu`, the same param that picks its label and container, as DeepVariant, DeepSomatic and fibertools already do (@ljwharbers). - [#204](https://github.com/IntGenomicsLab/lrsomatic/pull/204) - With `--modkit_phased` set and haplotype DMR running, `5hmC` is appended to `--modified-bases` whenever `--modkit_args` names `5mC` without it, so the published `modkit_pileup/*_{hp1,hp2,combined}.bed.gz` now carry a 5hmC row next to each 5mC row. `modkit dmr pair` rejects bedMethyl rows whose valid coverage includes uncounted (`N_other`) calls, which ONT SUP data calling both 5mC and 5hmC produces under the `--cpg --modified-bases 5mC` default. Runs with `--skip_dmr`, without `--modkit_phased`, or without DMR references keep `--modkit_args` exactly as given (@YannVRB). - [#205](https://github.com/IntGenomicsLab/lrsomatic/pull/205) - Moved the fiber-seq steps into a `FIBERSEQ` subworkflow and the AmpliconArchitect MD5 default into `aaDataRepoMd5()`, because with dev merged the `LRSOMATIC` workflow body exceeded the 65,535-character limit on a compiled string and failed to compile; behaviour is unchanged (@robert-a-forsyth). - [#205](https://github.com/IntGenomicsLab/lrsomatic/pull/205) - `--download_sigprofiler_genome` now defaults to `true`, so a run without `--sigprofiler_genome_dir` installs the SigProfiler genome instead of stopping at launch; a given directory still wins (@robert-a-forsyth). @@ -61,6 +64,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Fixed` +- [#224](https://github.com/IntGenomicsLab/lrsomatic/pull/224) - Fixed `CLAIR3` with `--use_gpu`, which failed at start with "Reference index fai file not found". The GPU image `hkubal/clair3:v2.0.2_gpu` follows the reference symlink and looks for the `.fai` next to the real file, but Nextflow stages the index from a different task. The GPU image is now `hkubal/clair3:v2.0.5_gpu`, which has the fix and bundles the same models. CPU runs keep the 2.0.3 biocontainer. The image doesn't run on GPUs newer than compute capability 9.0, such as the B200. `docs/usage.md` and the schema now say so and list every tool that `--use_gpu` affects (@ljwharbers). - [#223](https://github.com/IntGenomicsLab/lrsomatic/pull/223) - Fixed the Severus input channel (@robert-a-forsyth). - [#205](https://github.com/IntGenomicsLab/lrsomatic/pull/205) - `PREPARE_AA_DATA_REPO` no longer reads a `versions` output `UNTAR` does not have, which crashed every default GRCh38 run with CoRAL; overriding `--aa_data_repo_url` drops the genome's default MD5 (@robert-a-forsyth). - [#205](https://github.com/IntGenomicsLab/lrsomatic/pull/205) - `-profile test_full` starts again: it skips CoRAL and signatures and carries the chr19 SAVANA workarounds from `test` (@robert-a-forsyth). @@ -112,12 +116,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#213](https://github.com/IntGenomicsLab/lrsomatic/pull/213) - Updated the small variant callers. **Germline and somatic calls change** with the new models (@ljwharbers). - | Tool | Old | New | Notes | - | ------------- | ----- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `clair3` | 1.2.0 | 2.0.3 | Clair3 v2 runs on PyTorch and **cannot read the v1 TensorFlow models** the pipeline downloaded from ONT's CDN. Models bundled with the image (HKU's and ONT's recent R10.4.1 SUP/HAC ones, `hifi_revio`) are now used from the image with no download; other models are fetched as PyTorch directories from HKU (ONT's Rerio catalogue for `r9`/`r10` names) by the new `CLAIR3_MODEL` step, which replaces `WGET`/`UNTAR` and, unlike `WGET`, checks the TLS certificate (Clair3 unpickles the files). The GPU image is `hkubal/clair3:v2.0.2_gpu`, the newest published | - | `clairs` | 0.4.4 | 0.5.1 | Bundles Clair3 2.0.3 for its germline step | - | `deepvariant` | 1.9.0 | 1.10.0 | nf-core update; `make_examples` now takes its flags from the model (`--checkpoint`): the ONT model is 199 wide with the new fuzzy channel, and both models call easy sites with the small model | - | `deepsomatic` | 1.7.0 | 1.10.0 | `make_examples_somatic` now takes its flags from the model (`--checkpoint`) instead of a hard-coded channel list and pileup width; the paired PacBio model is 147 wide with 9 channels. The small model is kept off explicitly (`--nocall_small_model_examples`), because the module does not pass its calls on | + | Tool | Old | New | Notes | + | ------------- | ----- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `clair3` | 1.2.0 | 2.0.3 | Clair3 v2 runs on PyTorch and **cannot read the v1 TensorFlow models** the pipeline downloaded from ONT's CDN. Models bundled with the image (HKU's and ONT's recent R10.4.1 SUP/HAC ones, `hifi_revio`) are now used from the image with no download; other models are fetched as PyTorch directories from HKU (ONT's Rerio catalogue for `r9`/`r10` names) by the new `CLAIR3_MODEL` step, which replaces `WGET`/`UNTAR` and, unlike `WGET`, checks the TLS certificate (Clair3 unpickles the files). The GPU image is `hkubal/clair3:v2.0.5_gpu` (was `v2.0.2_gpu` until #224; see Fixed) | + | `clairs` | 0.4.4 | 0.5.1 | Bundles Clair3 2.0.3 for its germline step | + | `deepvariant` | 1.9.0 | 1.10.0 | nf-core update; `make_examples` now takes its flags from the model (`--checkpoint`): the ONT model is 199 wide with the new fuzzy channel, and both models call easy sites with the small model | + | `deepsomatic` | 1.7.0 | 1.10.0 | `make_examples_somatic` now takes its flags from the model (`--checkpoint`) instead of a hard-coded channel list and pileup width; the paired PacBio model is 147 wide with 9 channels. The small model is kept off explicitly (`--nocall_small_model_examples`), because the module does not pass its calls on | - [#214](https://github.com/IntGenomicsLab/lrsomatic/pull/214) - Updated Wakhan from 0.4.4 to 0.5.0, run from `docker.io/ljwharbers/wakhan:0.5.0-histfix-1afd44d` (`oras://docker.io/ljwharbers/wakhan-sif:0.5.0-histfix-1afd44d` for Singularity/Apptainer) because no biocontainer was built for it. The image carries upstream commit 1afd44d4, which fixes the `IndexError` in `update_coverage_hist` that killed WAKHAN on some samples (KolmogorovLab/Wakhan#64). **The `wakhan/` output layout changes**: each solution is now `solution_{ploidy}_{purity}_{confidence}/` with `integer_profile.{bed,vcf,html,pdf}` (one boundary-aligned table for both haplotypes, replacing the two `*_HP_{1,2}.bed` files), `subclonal_profile.*`, `genes/genes_copynumber_states.*` and a `HiScanner_plots_data.zip` for the Wakhan web viewer; ranked solutions are `solution_rank_{n}`. Wakhan 0.5.0 no longer writes the per-chromosome `variation_plots`, `genome_copynumbers_details` plots or per-solution `loh_regions*.bed`. `LRSOMATICREPORT` now runs lrsomatic_report v1.6.1 (`ghcr.io/ljwharbers/lrsomatic-report:1.6.1`), which finds the copy-number plots in both layouts; v1.6.0 silently dropped them for 0.5.0 output. The WAKHAN stub now writes the outputs the module declares, and the version comes from `wakhan --version` (@ljwharbers). diff --git a/README.md b/README.md index 761ae695..90ec15e0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![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%A525.10.4-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-4.1.0-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.1.0) +[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.2.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.2.1) [![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/) @@ -72,9 +72,6 @@ c. Somatic SV and CNA functional annotation ([`Padfoot`](https://github.com/Kolm a. Rearrangement and copy-number figures per CN/SV caller pair ([`ReConPlot`](https://github.com/cortes-ciriano-lab/ReConPlot)) - - ## Usage > [!NOTE] diff --git a/assets/methods_description_template.yml b/assets/methods_description_template.yml index fca23d8a..c157bc19 100644 --- a/assets/methods_description_template.yml +++ b/assets/methods_description_template.yml @@ -3,16 +3,16 @@ description: "Suggested text and references to use when describing pipeline usag section_name: "IntGenomicsLab/lrsomatic Methods Description" section_href: "https://github.com/IntGenomicsLab/lrsomatic" plot_type: "html" -## TODO nf-core: Update the HTML below to your preferred methods description, e.g. add publication citation for this pipeline ## You inject any metadata in the Nextflow '${workflow}' object data: |

Methods

-

Data was processed using IntGenomicsLab/lrsomatic v${workflow.manifest.version} ${doi_text} of the nf-core collection of workflows (Ewels et al., 2020), utilising reproducible software environments from the Bioconda (Grüning et al., 2018) and Biocontainers (da Veiga Leprevost et al., 2017) projects.

+

Data was processed using IntGenomicsLab/lrsomatic v${workflow.manifest.version} ${doi_text} (Forsyth, Harbers et al., 2026), built with the nf-core framework (Ewels et al., 2020), utilising reproducible software environments from the Bioconda (Grüning et al., 2018) and Biocontainers (da Veiga Leprevost et al., 2017) projects.

The pipeline was executed with Nextflow v${workflow.nextflow.version} (Di Tommaso et al., 2017) with the following command:

${workflow.commandLine}

${tool_citations}

References