From 6564c6a2b90e5dcd9597d21a3e5ff8a9b69fff80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 17 May 2024 11:39:48 +0200 Subject: [PATCH 01/11] start work on muse/call --- modules/nf-core/muse/Dockerfile | 17 +++++ modules/nf-core/muse/README.md | 17 +++++ modules/nf-core/muse/call/environment.yml | 9 +++ modules/nf-core/muse/call/main.nf | 63 +++++++++++++++++ modules/nf-core/muse/call/meta.yml | 61 +++++++++++++++++ modules/nf-core/muse/call/tests/main.nf.test | 68 +++++++++++++++++++ .../nf-core/muse/call/tests/main.nf.test.snap | 58 ++++++++++++++++ modules/nf-core/muse/call/tests/tags.yml | 2 + 8 files changed, 295 insertions(+) create mode 100644 modules/nf-core/muse/Dockerfile create mode 100644 modules/nf-core/muse/README.md create mode 100644 modules/nf-core/muse/call/environment.yml create mode 100644 modules/nf-core/muse/call/main.nf create mode 100644 modules/nf-core/muse/call/meta.yml create mode 100644 modules/nf-core/muse/call/tests/main.nf.test create mode 100644 modules/nf-core/muse/call/tests/main.nf.test.snap create mode 100644 modules/nf-core/muse/call/tests/tags.yml diff --git a/modules/nf-core/muse/Dockerfile b/modules/nf-core/muse/Dockerfile new file mode 100644 index 00000000000..51c13aa0c05 --- /dev/null +++ b/modules/nf-core/muse/Dockerfile @@ -0,0 +1,17 @@ +# Dockerfile to create a container with MuSE v + +FROM ubuntu:20.04 + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y --no-install-recommends \ + git g++ cmake autoconf libtool liblzma-dev zlib1g-dev libbz2-dev libcurl3-dev libssl-dev \ + ca-certificates cpp make libltdl-dev wget unzip \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +RUN git clone --recursive https://github.com/wwylab/MuSE +RUN cd MuSE && ./install_muse.sh + +RUN mkdir /MuSE/bin +RUN cp /MuSE/MuSE /MuSE/bin +RUN PATH=$PATH:/MuSE/bin diff --git a/modules/nf-core/muse/README.md b/modules/nf-core/muse/README.md new file mode 100644 index 00000000000..a4830a77381 --- /dev/null +++ b/modules/nf-core/muse/README.md @@ -0,0 +1,17 @@ +# Updating the Docker image +So far no public docker image is available for MuSE. This might change in the future, see Issue [#21](https://github.com/wwylab/MuSE/issues/21) on the official repository. Until then we have to build it ourselves using the provided Dockerfile. + +1. Build docker image using provided Dockerfile. + + ```bash + docker build -t muse: --platform linux/amd64 . + ``` + +2. Access rights are needed to push the container to the Dockerhub nf-core organization, please ask a core team member to do so. + + ```bash + docker tag muse: quay.io/nf-core/muse: + docker push quay.io/nf-core/muse: + ``` + +3. Make the image public. diff --git a/modules/nf-core/muse/call/environment.yml b/modules/nf-core/muse/call/environment.yml new file mode 100644 index 00000000000..939833dbe60 --- /dev/null +++ b/modules/nf-core/muse/call/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "muse_call" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::muse=1.0.rc" diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf new file mode 100644 index 00000000000..44ecf4164e2 --- /dev/null +++ b/modules/nf-core/muse/call/main.nf @@ -0,0 +1,63 @@ +process MUSE_CALL { + tag "$meta.id" + label 'process_high' + + // TODO nf-core: List required Conda package(s). + // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). + // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. + // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. + //conda "${moduleDir}/environment.yml" + // container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + // 'https://depot.galaxyproject.org/singularity/YOUR-TOOL-HERE': + // 'docker.io/library/muse:2.1' }" + + container "muse:2.1" + + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "MUSE module does not support Conda. Please use Docker / Singularity / Podman instead." + } + + input: + tuple val(meta), path(tumor_bam), path(normal_bam) + tuple val(meta2), path(reference) + + output: + tuple val(meta), path("*.MuSE.txt"), emit: txt + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + MuSE/MuSE call \\ + $args \\ + -f $reference \\ + -O ${prefix} \\ + -n $task.cpus \\ + $tumor_bam \\ + $normal_bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + muse: ${VERSION} + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${prefix}.MuSE.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + muse: ${VERSION} + END_VERSIONS + """ +} diff --git a/modules/nf-core/muse/call/meta.yml b/modules/nf-core/muse/call/meta.yml new file mode 100644 index 00000000000..569669d6beb --- /dev/null +++ b/modules/nf-core/muse/call/meta.yml @@ -0,0 +1,61 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "muse_call" +description: pre-filtering and calculating position-specific summary statistics using the Markov substitution model +keywords: + - genomics + - wgs + - wxs + - vcf +tools: + - "MuSE": + description: "Somatic point mutation caller based on Markov substitution model for molecular evolution" + homepage: "https://bioinformatics.mdanderson.org/public-software/muse/" + documentation: "https://github.com/wwylab/MuSE" + tool_dev_url: "https://github.com/wwylab/MuSE" + doi: "10.1101/gr.278456.123" + licence: ['https://github.com/danielfan/MuSE/blob/master/LICENSE'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - tumor_bam: + type: file + description: Sorted tumor BAM file + pattern: "*.bam" + - normal_bam: + type: file + description: Sorted matched normal BAM file + pattern: "*.bam" + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. `[ id:'test' ]` + - reference: + type: file + description: faidx indexed reference genome file + pattern: ".fasta" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - txt: + type: file + description: position-specific summary statistics + pattern: "*.MuSE.txt" + +authors: + - "@famosab" +maintainers: + - "@famosab" diff --git a/modules/nf-core/muse/call/tests/main.nf.test b/modules/nf-core/muse/call/tests/main.nf.test new file mode 100644 index 00000000000..c6f53d7e77c --- /dev/null +++ b/modules/nf-core/muse/call/tests/main.nf.test @@ -0,0 +1,68 @@ +nextflow_process { + + name "Test Process MUSE_CALL" + script "../main.nf" + process "MUSE_CALL" + + tag "modules" + tag "modules_nfcore" + tag "muse" + tag "muse/call" + + test("human - bam") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'reference' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("human - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'reference' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/muse/call/tests/main.nf.test.snap b/modules/nf-core/muse/call/tests/main.nf.test.snap new file mode 100644 index 00000000000..38e3c5e2fd9 --- /dev/null +++ b/modules/nf-core/muse/call/tests/main.nf.test.snap @@ -0,0 +1,58 @@ +{ + "human - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.MuSE.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + ], + "txt": [ + [ + { + "id": "test" + }, + "test.MuSE.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.0" + }, + "timestamp": "2024-05-17T10:43:39.296254" + }, + "human - bam": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "txt": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.0" + }, + "timestamp": "2024-05-17T10:43:31.511233" + } +} \ No newline at end of file diff --git a/modules/nf-core/muse/call/tests/tags.yml b/modules/nf-core/muse/call/tests/tags.yml new file mode 100644 index 00000000000..4e04a91a4af --- /dev/null +++ b/modules/nf-core/muse/call/tests/tags.yml @@ -0,0 +1,2 @@ +muse/call: + - "modules/nf-core/muse/call/**" From 7a17907eebfffa3b08ce48a9f73efbe61b8f73fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 17 May 2024 13:35:35 +0200 Subject: [PATCH 02/11] correct command and add snap --- modules/nf-core/muse/call/main.nf | 12 +++++------ .../nf-core/muse/call/tests/main.nf.test.snap | 20 ++++++++++++++----- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index 44ecf4164e2..8528b2c3d41 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -2,16 +2,13 @@ process MUSE_CALL { tag "$meta.id" label 'process_high' - // TODO nf-core: List required Conda package(s). - // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). - // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. - // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. - //conda "${moduleDir}/environment.yml" + // TODO Update when maintainer publishes conda package and container + // conda "${moduleDir}/environment.yml" // container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? // 'https://depot.galaxyproject.org/singularity/YOUR-TOOL-HERE': // 'docker.io/library/muse:2.1' }" - container "muse:2.1" + container "docker.io/famkebaeuerle/muse:2.1" // Exit if running this module with -profile conda / -profile mamba if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { @@ -34,7 +31,8 @@ process MUSE_CALL { def prefix = task.ext.prefix ?: "${meta.id}" def VERSION = '2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ - MuSE/MuSE call \\ + /MuSE/MuSE \\ + call \\ $args \\ -f $reference \\ -O ${prefix} \\ diff --git a/modules/nf-core/muse/call/tests/main.nf.test.snap b/modules/nf-core/muse/call/tests/main.nf.test.snap index 38e3c5e2fd9..4dc142c8e80 100644 --- a/modules/nf-core/muse/call/tests/main.nf.test.snap +++ b/modules/nf-core/muse/call/tests/main.nf.test.snap @@ -36,16 +36,26 @@ "content": [ { "0": [ - + [ + { + "id": "test" + }, + "test.MuSE.txt:md5,5f2f2279cd902f56c85156be77259660" + ] ], "1": [ - + "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" ], "txt": [ - + [ + { + "id": "test" + }, + "test.MuSE.txt:md5,5f2f2279cd902f56c85156be77259660" + ] ], "versions": [ - + "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" ] } ], @@ -53,6 +63,6 @@ "nf-test": "0.8.4", "nextflow": "23.10.0" }, - "timestamp": "2024-05-17T10:43:31.511233" + "timestamp": "2024-05-17T13:28:05.488472" } } \ No newline at end of file From 4b56b32461f06f93ffc1c594c7914a8a9e115adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 17 May 2024 16:20:29 +0200 Subject: [PATCH 03/11] prettier --- modules/nf-core/muse/README.md | 1 + modules/nf-core/muse/call/meta.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/nf-core/muse/README.md b/modules/nf-core/muse/README.md index a4830a77381..0cc74596063 100644 --- a/modules/nf-core/muse/README.md +++ b/modules/nf-core/muse/README.md @@ -1,4 +1,5 @@ # Updating the Docker image + So far no public docker image is available for MuSE. This might change in the future, see Issue [#21](https://github.com/wwylab/MuSE/issues/21) on the official repository. Until then we have to build it ourselves using the provided Dockerfile. 1. Build docker image using provided Dockerfile. diff --git a/modules/nf-core/muse/call/meta.yml b/modules/nf-core/muse/call/meta.yml index 569669d6beb..4f62284323b 100644 --- a/modules/nf-core/muse/call/meta.yml +++ b/modules/nf-core/muse/call/meta.yml @@ -14,7 +14,7 @@ tools: documentation: "https://github.com/wwylab/MuSE" tool_dev_url: "https://github.com/wwylab/MuSE" doi: "10.1101/gr.278456.123" - licence: ['https://github.com/danielfan/MuSE/blob/master/LICENSE'] + licence: ["https://github.com/danielfan/MuSE/blob/master/LICENSE"] input: - meta: From 60f9acb5312f5966c76d377f537400e6bf2abf11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 17 May 2024 16:31:20 +0200 Subject: [PATCH 04/11] exclude conda --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 43f9fa216ba..c36f2828911 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -607,6 +607,8 @@ jobs: path: modules/nf-core/merquryfk/ploidyplot - profile: conda path: modules/nf-core/molkartgarage/clahe + - profile: conda + path: modules/nf-core/muse/call - profile: conda path: modules/nf-core/quartonotebook - profile: conda From 4260160581896cdfd223d5cc1a1e2c353451b9de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 15 Nov 2024 10:34:06 +0100 Subject: [PATCH 05/11] change to bioconda --- modules/nf-core/muse/Dockerfile | 17 -------------- modules/nf-core/muse/README.md | 18 --------------- modules/nf-core/muse/call/environment.yml | 5 +---- modules/nf-core/muse/call/main.nf | 27 ++++++++--------------- 4 files changed, 10 insertions(+), 57 deletions(-) delete mode 100644 modules/nf-core/muse/Dockerfile delete mode 100644 modules/nf-core/muse/README.md diff --git a/modules/nf-core/muse/Dockerfile b/modules/nf-core/muse/Dockerfile deleted file mode 100644 index 51c13aa0c05..00000000000 --- a/modules/nf-core/muse/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# Dockerfile to create a container with MuSE v - -FROM ubuntu:20.04 - -ARG DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && apt-get install -y --no-install-recommends \ - git g++ cmake autoconf libtool liblzma-dev zlib1g-dev libbz2-dev libcurl3-dev libssl-dev \ - ca-certificates cpp make libltdl-dev wget unzip \ - && apt-get clean && rm -rf /var/lib/apt/lists/* - -RUN git clone --recursive https://github.com/wwylab/MuSE -RUN cd MuSE && ./install_muse.sh - -RUN mkdir /MuSE/bin -RUN cp /MuSE/MuSE /MuSE/bin -RUN PATH=$PATH:/MuSE/bin diff --git a/modules/nf-core/muse/README.md b/modules/nf-core/muse/README.md deleted file mode 100644 index 0cc74596063..00000000000 --- a/modules/nf-core/muse/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Updating the Docker image - -So far no public docker image is available for MuSE. This might change in the future, see Issue [#21](https://github.com/wwylab/MuSE/issues/21) on the official repository. Until then we have to build it ourselves using the provided Dockerfile. - -1. Build docker image using provided Dockerfile. - - ```bash - docker build -t muse: --platform linux/amd64 . - ``` - -2. Access rights are needed to push the container to the Dockerhub nf-core organization, please ask a core team member to do so. - - ```bash - docker tag muse: quay.io/nf-core/muse: - docker push quay.io/nf-core/muse: - ``` - -3. Make the image public. diff --git a/modules/nf-core/muse/call/environment.yml b/modules/nf-core/muse/call/environment.yml index 939833dbe60..38889f25fe4 100644 --- a/modules/nf-core/muse/call/environment.yml +++ b/modules/nf-core/muse/call/environment.yml @@ -1,9 +1,6 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json name: "muse_call" channels: - conda-forge - bioconda - - defaults dependencies: - - "bioconda::muse=1.0.rc" + - "bioconda::muse=2.1.2" diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index 8528b2c3d41..7b35770d1da 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -2,18 +2,10 @@ process MUSE_CALL { tag "$meta.id" label 'process_high' - // TODO Update when maintainer publishes conda package and container - // conda "${moduleDir}/environment.yml" - // container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - // 'https://depot.galaxyproject.org/singularity/YOUR-TOOL-HERE': - // 'docker.io/library/muse:2.1' }" - - container "docker.io/famkebaeuerle/muse:2.1" - - // Exit if running this module with -profile conda / -profile mamba - if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { - error "MUSE module does not support Conda. Please use Docker / Singularity / Podman instead." - } + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'oras://community.wave.seqera.io/library/muse_sump:6020175d1ed543c4': + 'community.wave.seqera.io/library/muse_sump:3847abd544ae3eb6' }" input: tuple val(meta), path(tumor_bam), path(normal_bam) @@ -29,9 +21,9 @@ process MUSE_CALL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def VERSION = '2.1.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ - /MuSE/MuSE \\ + MuSE \\ call \\ $args \\ -f $reference \\ @@ -42,20 +34,19 @@ process MUSE_CALL { cat <<-END_VERSIONS > versions.yml "${task.process}": - muse: ${VERSION} + MuSE: ${VERSION} END_VERSIONS """ stub: - def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def VERSION = '2.1.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ touch ${prefix}.MuSE.txt cat <<-END_VERSIONS > versions.yml "${task.process}": - muse: ${VERSION} + MuSE: ${VERSION} END_VERSIONS """ } From c03b8c7b999eaf6996f2b1edc5b04c458458ad40 Mon Sep 17 00:00:00 2001 From: famosab Date: Fri, 15 Nov 2024 10:52:57 +0100 Subject: [PATCH 06/11] update snap --- modules/nf-core/muse/call/environment.yml | 1 - modules/nf-core/muse/call/main.nf | 4 +- modules/nf-core/muse/call/meta.yml | 80 ++++++++++--------- .../nf-core/muse/call/tests/main.nf.test.snap | 24 +++--- 4 files changed, 55 insertions(+), 54 deletions(-) diff --git a/modules/nf-core/muse/call/environment.yml b/modules/nf-core/muse/call/environment.yml index 38889f25fe4..5bc34c10360 100644 --- a/modules/nf-core/muse/call/environment.yml +++ b/modules/nf-core/muse/call/environment.yml @@ -1,4 +1,3 @@ -name: "muse_call" channels: - conda-forge - bioconda diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index 7b35770d1da..91f96f5c51e 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -4,8 +4,8 @@ process MUSE_CALL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/muse_sump:6020175d1ed543c4': - 'community.wave.seqera.io/library/muse_sump:3847abd544ae3eb6' }" + 'oras://community.wave.seqera.io/library/muse:2.1.2--f6ec9e78771509ff': + 'community.wave.seqera.io/library/muse:2.1.2--e8279641c6ef8c63' }" input: tuple val(meta), path(tumor_bam), path(normal_bam) diff --git a/modules/nf-core/muse/call/meta.yml b/modules/nf-core/muse/call/meta.yml index 4f62284323b..f582421d171 100644 --- a/modules/nf-core/muse/call/meta.yml +++ b/modules/nf-core/muse/call/meta.yml @@ -1,7 +1,7 @@ ---- # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: "muse_call" -description: pre-filtering and calculating position-specific summary statistics using the Markov substitution model +description: pre-filtering and calculating position-specific summary statistics using + the Markov substitution model keywords: - genomics - wgs @@ -9,52 +9,54 @@ keywords: - vcf tools: - "MuSE": - description: "Somatic point mutation caller based on Markov substitution model for molecular evolution" + description: "Somatic point mutation caller based on Markov substitution model + for molecular evolution" homepage: "https://bioinformatics.mdanderson.org/public-software/muse/" documentation: "https://github.com/wwylab/MuSE" tool_dev_url: "https://github.com/wwylab/MuSE" doi: "10.1101/gr.278456.123" licence: ["https://github.com/danielfan/MuSE/blob/master/LICENSE"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'sample1' ]` - - tumor_bam: - type: file - description: Sorted tumor BAM file - pattern: "*.bam" - - normal_bam: - type: file - description: Sorted matched normal BAM file - pattern: "*.bam" - - meta2: - type: map - description: | - Groovy Map containing reference information. - e.g. `[ id:'test' ]` - - reference: - type: file - description: faidx indexed reference genome file - pattern: ".fasta" - + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - tumor_bam: + type: file + description: Sorted tumor BAM file + pattern: "*.bam" + - normal_bam: + type: file + description: Sorted matched normal BAM file + pattern: "*.bam" + - - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. `[ id:'test' ]` + - reference: + type: file + description: faidx indexed reference genome file + pattern: ".fasta" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'sample1' ]` - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - txt: - type: file - description: position-specific summary statistics - pattern: "*.MuSE.txt" - + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - "*.MuSE.txt": + type: file + description: position-specific summary statistics + pattern: "*.MuSE.txt" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@famosab" maintainers: diff --git a/modules/nf-core/muse/call/tests/main.nf.test.snap b/modules/nf-core/muse/call/tests/main.nf.test.snap index 4dc142c8e80..d698dad3a74 100644 --- a/modules/nf-core/muse/call/tests/main.nf.test.snap +++ b/modules/nf-core/muse/call/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" ], "txt": [ [ @@ -22,15 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.0" + "nf-test": "0.9.2", + "nextflow": "24.10.0" }, - "timestamp": "2024-05-17T10:43:39.296254" + "timestamp": "2024-11-15T10:51:43.352355237" }, "human - bam": { "content": [ @@ -40,29 +40,29 @@ { "id": "test" }, - "test.MuSE.txt:md5,5f2f2279cd902f56c85156be77259660" + "test.MuSE.txt:md5,639e250d6b7621286c1563b9244f2645" ] ], "1": [ - "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" ], "txt": [ [ { "id": "test" }, - "test.MuSE.txt:md5,5f2f2279cd902f56c85156be77259660" + "test.MuSE.txt:md5,639e250d6b7621286c1563b9244f2645" ] ], "versions": [ - "versions.yml:md5,c863d3ffccbea6b9229b91017f5935ff" + "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" ] } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.0" + "nf-test": "0.9.2", + "nextflow": "24.10.0" }, - "timestamp": "2024-05-17T13:28:05.488472" + "timestamp": "2024-11-15T10:51:35.004030902" } } \ No newline at end of file From 8a78b9a4be4dd9fbf902202e87f539e1a4a066aa Mon Sep 17 00:00:00 2001 From: famosab Date: Fri, 15 Nov 2024 10:57:35 +0100 Subject: [PATCH 07/11] add conda test --- .github/workflows/test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3bc1981e6e2..43fe9733d3a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -610,8 +610,6 @@ jobs: path: modules/nf-core/merquryfk/ploidyplot - profile: conda path: modules/nf-core/molkartgarage/clahe - - profile: conda - path: modules/nf-core/muse/call - profile: conda path: modules/nf-core/quartonotebook - profile: conda From 951bc523bf58b1dee289c8166da780f46fcbb360 Mon Sep 17 00:00:00 2001 From: famosab Date: Fri, 15 Nov 2024 13:17:36 +0100 Subject: [PATCH 08/11] update meta --- modules/nf-core/muse/call/meta.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/nf-core/muse/call/meta.yml b/modules/nf-core/muse/call/meta.yml index f582421d171..b1b7bec3df3 100644 --- a/modules/nf-core/muse/call/meta.yml +++ b/modules/nf-core/muse/call/meta.yml @@ -3,7 +3,8 @@ name: "muse_call" description: pre-filtering and calculating position-specific summary statistics using the Markov substitution model keywords: - - genomics + - variant calling + - somatic - wgs - wxs - vcf From 6600c946fcc3101a56f32c04a6089bf6244fe4cc Mon Sep 17 00:00:00 2001 From: famosab Date: Fri, 15 Nov 2024 13:22:26 +0100 Subject: [PATCH 09/11] change process label --- modules/nf-core/muse/call/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index 91f96f5c51e..bae02808d76 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -1,6 +1,6 @@ process MUSE_CALL { tag "$meta.id" - label 'process_high' + label 'process_medium' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From f3fe172819023744ed5f1beffd2fd14dfef3418d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 29 Nov 2024 14:14:14 +0100 Subject: [PATCH 10/11] add indices and update meta --- modules/nf-core/muse/call/main.nf | 2 +- modules/nf-core/muse/call/meta.yml | 10 +++++++++- modules/nf-core/muse/call/tests/main.nf.test | 8 ++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index bae02808d76..4a856a695bc 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -8,7 +8,7 @@ process MUSE_CALL { 'community.wave.seqera.io/library/muse:2.1.2--e8279641c6ef8c63' }" input: - tuple val(meta), path(tumor_bam), path(normal_bam) + tuple val(meta), path(tumor_bam), path(tumor_bai), path(normal_bam), path(normal_bai) tuple val(meta2), path(reference) output: diff --git a/modules/nf-core/muse/call/meta.yml b/modules/nf-core/muse/call/meta.yml index b1b7bec3df3..6733677dbdc 100644 --- a/modules/nf-core/muse/call/meta.yml +++ b/modules/nf-core/muse/call/meta.yml @@ -29,10 +29,18 @@ input: type: file description: Sorted tumor BAM file pattern: "*.bam" + - tumor_bai: + type: file + description: Index file for the tumor BAM file + pattern: "*.bai" - normal_bam: type: file description: Sorted matched normal BAM file pattern: "*.bam" + - normal_bai: + type: file + description: Index file for the normal BAM file + pattern: "*.bai" - - meta2: type: map description: | @@ -40,7 +48,7 @@ input: e.g. `[ id:'test' ]` - reference: type: file - description: faidx indexed reference genome file + description: reference genome file pattern: ".fasta" output: - txt: diff --git a/modules/nf-core/muse/call/tests/main.nf.test b/modules/nf-core/muse/call/tests/main.nf.test index c6f53d7e77c..b5e441ec32d 100644 --- a/modules/nf-core/muse/call/tests/main.nf.test +++ b/modules/nf-core/muse/call/tests/main.nf.test @@ -17,7 +17,9 @@ nextflow_process { input[0] = [ [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true) ] input[1] = [ [ id:'reference' ], // meta map @@ -46,7 +48,9 @@ nextflow_process { input[0] = [ [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam.bai', checkIfExists: true) ] input[1] = [ [ id:'reference' ], // meta map From 3243d1cc999f600b7a7e09e20abef8716374ea77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Famke=20Ba=CC=88uerle?= Date: Fri, 29 Nov 2024 14:31:53 +0100 Subject: [PATCH 11/11] update containers and version extraction --- modules/nf-core/muse/call/main.nf | 10 ++++------ .../nf-core/muse/call/tests/main.nf.test.snap | 16 ++++++++-------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/modules/nf-core/muse/call/main.nf b/modules/nf-core/muse/call/main.nf index 4a856a695bc..b4559761ab0 100644 --- a/modules/nf-core/muse/call/main.nf +++ b/modules/nf-core/muse/call/main.nf @@ -4,8 +4,8 @@ process MUSE_CALL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/muse:2.1.2--f6ec9e78771509ff': - 'community.wave.seqera.io/library/muse:2.1.2--e8279641c6ef8c63' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9f/9f0ebb574ef5eed2a6e034f1b2feea6c252d1ab0c8bc5135a669059aa1f4d2ca/data': + 'community.wave.seqera.io/library/muse:6637291dcbb0bdb8' }" input: tuple val(meta), path(tumor_bam), path(tumor_bai), path(normal_bam), path(normal_bai) @@ -21,7 +21,6 @@ process MUSE_CALL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '2.1.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ MuSE \\ call \\ @@ -34,19 +33,18 @@ process MUSE_CALL { cat <<-END_VERSIONS > versions.yml "${task.process}": - MuSE: ${VERSION} + MuSE: \$( MuSE --version | sed -e "s/MuSE, version //g" ) END_VERSIONS """ stub: def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '2.1.2' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. """ touch ${prefix}.MuSE.txt cat <<-END_VERSIONS > versions.yml "${task.process}": - MuSE: ${VERSION} + MuSE: \$( MuSE --version | sed -e "s/MuSE, version //g" ) END_VERSIONS """ } diff --git a/modules/nf-core/muse/call/tests/main.nf.test.snap b/modules/nf-core/muse/call/tests/main.nf.test.snap index d698dad3a74..ead8906a9ce 100644 --- a/modules/nf-core/muse/call/tests/main.nf.test.snap +++ b/modules/nf-core/muse/call/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" + "versions.yml:md5,de7c8f535f5b17473ed6aab68f1d70c1" ], "txt": [ [ @@ -22,7 +22,7 @@ ] ], "versions": [ - "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" + "versions.yml:md5,de7c8f535f5b17473ed6aab68f1d70c1" ] } ], @@ -30,7 +30,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.0" }, - "timestamp": "2024-11-15T10:51:43.352355237" + "timestamp": "2024-11-29T14:30:48.292828" }, "human - bam": { "content": [ @@ -40,22 +40,22 @@ { "id": "test" }, - "test.MuSE.txt:md5,639e250d6b7621286c1563b9244f2645" + "test.MuSE.txt:md5,3a38ee9131a217cc56199bd4a6b18e1d" ] ], "1": [ - "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" + "versions.yml:md5,de7c8f535f5b17473ed6aab68f1d70c1" ], "txt": [ [ { "id": "test" }, - "test.MuSE.txt:md5,639e250d6b7621286c1563b9244f2645" + "test.MuSE.txt:md5,3a38ee9131a217cc56199bd4a6b18e1d" ] ], "versions": [ - "versions.yml:md5,182c20f31394d1d406428dab96ec3b3e" + "versions.yml:md5,de7c8f535f5b17473ed6aab68f1d70c1" ] } ], @@ -63,6 +63,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.0" }, - "timestamp": "2024-11-15T10:51:35.004030902" + "timestamp": "2024-11-29T14:30:32.522553" } } \ No newline at end of file