From 3a207b47c1d21895c72762fe72800a3581467fad Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Wed, 21 May 2025 14:12:02 +0200 Subject: [PATCH 1/9] Added module --- .pre-commit-config.yaml | 10 +- .../nf-core/msisensorpro/pro/environment.yml | 7 ++ modules/nf-core/msisensorpro/pro/main.nf | 56 +++++++++++ modules/nf-core/msisensorpro/pro/meta.yml | 62 ++++++++++++ .../msisensorpro/pro/tests/main.nf.test | 99 +++++++++++++++++++ .../msisensorpro/pro/tests/main.nf.test.snap | 68 +++++++++++++ 6 files changed, 297 insertions(+), 5 deletions(-) create mode 100644 modules/nf-core/msisensorpro/pro/environment.yml create mode 100644 modules/nf-core/msisensorpro/pro/main.nf create mode 100644 modules/nf-core/msisensorpro/pro/meta.yml create mode 100644 modules/nf-core/msisensorpro/pro/tests/main.nf.test create mode 100644 modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 98c1d8ede8e..70574d3b948 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,13 +9,13 @@ repos: types: [yaml] additional_dependencies: ["ruamel.yaml"] - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.1.0" + rev: "v4.0.0-alpha.8" hooks: - id: prettier additional_dependencies: - prettier@3.5.0 - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.4 + rev: 0.33.0 hooks: - id: check-jsonschema name: "Match meta.ymls in one of the subdirectories of modules/nf-core" @@ -36,20 +36,20 @@ repos: # use ruff for python files - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.7.3 + rev: v0.11.10 hooks: - id: ruff files: \.py$ args: [--fix, --exit-non-zero-on-fix, "--select", "I,E1,E4,E7,E9,F,UP,N"] # sort imports and fix (rules taken from nf-core/tools) - id: ruff-format # formatter - repo: https://github.com/editorconfig-checker/editorconfig-checker.python - rev: "3.0.3" + rev: "3.2.1" hooks: - id: editorconfig-checker alias: ec # NOTE This runs with Docker instead of the binary. Hoping anyone messing with Dockerfiles has Docker installed - repo: https://github.com/hadolint/hadolint - rev: v2.12.0 + rev: v2.13.1-beta hooks: - id: hadolint-docker - repo: https://github.com/nf-core/tools diff --git a/modules/nf-core/msisensorpro/pro/environment.yml b/modules/nf-core/msisensorpro/pro/environment.yml new file mode 100644 index 00000000000..3b66afc67ed --- /dev/null +++ b/modules/nf-core/msisensorpro/pro/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::msisensor-pro=1.3.0 diff --git a/modules/nf-core/msisensorpro/pro/main.nf b/modules/nf-core/msisensorpro/pro/main.nf new file mode 100644 index 00000000000..84a186ff1f8 --- /dev/null +++ b/modules/nf-core/msisensorpro/pro/main.nf @@ -0,0 +1,56 @@ +process MSISENSORPRO_PRO { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': + 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" + + input: + tuple val(meta), path(cram) + path("${cram}.crai") + path(list) + path(fasta) + path("${fasta}.fai") + + output: + tuple val(meta), path("${prefix}") , emit: summary_msi + tuple val(meta), path("${prefix}_all") , emit: all_msi + tuple val(meta), path("${prefix}_dis") , emit: dis_msi + tuple val(meta), path("${prefix}_unstable") , emit: unstable_msi + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + """ + msisensor-pro \\ + pro \\ + -d $list \\ + -t $cram \\ + -g $fasta \\ + -o ${prefix} \\ + -b $task.cpus \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + msisensorpro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\s*//p') + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix} ${prefix}_all ${prefix}_dis ${prefix}_unstable + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + msisensorpro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\s*//p') + END_VERSIONS + """ +} diff --git a/modules/nf-core/msisensorpro/pro/meta.yml b/modules/nf-core/msisensorpro/pro/meta.yml new file mode 100644 index 00000000000..e3baadbae13 --- /dev/null +++ b/modules/nf-core/msisensorpro/pro/meta.yml @@ -0,0 +1,62 @@ +--- +name: "msisensorpro_pro" +description: MSIsensor-pro/pro is a tool used to evaluate MSI using single (tumor) sample + sequencing data +keywords: + - msisensor-pro + - pro + - micro-satellite +tools: + - msisensorpro: + description: Microsatellite Instability (MSI) detection using high-throughput + sequencing data. + homepage: https://github.com/xjtu-omics/msisensor-pro + documentation: https://github.com/xjtu-omics/msisensor-pro/wiki + tool_dev_url: https://github.com/xjtu-omics/msisensor-pro + doi: "10.1016/j.gpb.2020.02.001" + licence: ["Custom Licence"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - cram: + type: file + description: Sorted CRAM file + pattern: "*.{cram}" + - - list: + type: path + description: path to micro-satellite list + - - fasta: + type: path + description: path to reference genome used to create micro-satellite list + pattern: "*.{fasta}" +output: + - - summary_msi: + type: file + description: txt file containing summary of results + pattern: "*.txt" + - - all_msi: + type: file + description: txt file containing all results + pattern: "*_all.txt" + - - dis_msi: + type: file + description: txt file containing the allele length distribution + pattern: "*_dis.txt" + - - unstable_msi: + type: file + description: txt file containing unstable micro-satellite sites + pattern: "*_unstable.txt" + - versions: + - "versions.yml": + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@Tuur-ds" +maintainers: + - "@Tuur-ds" diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test b/modules/nf-core/msisensorpro/pro/tests/main.nf.test new file mode 100644 index 00000000000..1f770f7dfb5 --- /dev/null +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test @@ -0,0 +1,99 @@ +// TODO nf-core: Once you have added the required tests, please run the following command to build this file: +// nf-core modules test msisensorpro/pro +nextflow_process { + + name "Test Process MSISENSORPRO_PRO" + script "../main.nf" + process "MSISENSORPRO_PRO" + + tag "modules" + tag "modules_nfcore" + tag "msisensorpro" + tag "msisensorpro/pro" + + // TODO nf-core: Change the test name preferably indicating the test-data and file-format used + test("testdata - [test, cram], list, fasta") { + setup { + run("MSISENSORPRO_SCAN") { + script "../../scan/main.nf" + process { + """ + input[0] = [ + [ id:'test'], + file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') + ] + """ + } + } + } + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + ] + input[1] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai') + input[2] = MSISENSORPRO_SCAN.out.list.map{ it[1] } + input[3] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') + input[4] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta.fai') + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.summary_msi, process.out.all_msi, process.out.dis_msi, process.out.unstable_msi).match() } + //TODO nf-core: Add all required assertions to verify the test output. + // See https://nf-co.re/docs/contributing/tutorials/nf-test_assertions for more information and examples. + ) + } + + } + + // TODO nf-core: Change the test name preferably indicating the test-data and file-format used but keep the " - stub" suffix. + test("testdata - stub - [test, cram], list, fasta") { + + options "-stub" + + setup { + run("MSISENSORPRO_SCAN") { + script "../../scan/main.nf" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], + file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + ] + input[1] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai') + input[2] = MSISENSORPRO_SCAN.out.list.map{ it[1] } + input[3] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') + input[4] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta.fai') + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.summary_msi, process.out.all_msi, process.out.dis_msi, process.out.unstable_msi).match() } + //TODO nf-core: Add all required assertions to verify the test output. + ) + } + + } + +} diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap new file mode 100644 index 00000000000..6ff0eea6226 --- /dev/null +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "testdata - stub - [test, cram], list, fasta": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test_all:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test_dis:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.4" + }, + "timestamp": "2025-05-21T13:59:44.517502737" + }, + "testdata - [test, cram], list, fasta": { + "content": [ + [ + + ], + [ + + ], + [ + + ], + [ + + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.4" + }, + "timestamp": "2025-05-21T11:22:31.003805747" + } +} \ No newline at end of file From 98cacdd0b48ea1cbce260c7e48960dd6587e8a9f Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Wed, 21 May 2025 15:02:49 +0200 Subject: [PATCH 2/9] updated module --- .pre-commit-config.yaml | 10 +-- modules/nf-core/msisensorpro/pro/main.nf | 11 ++- .../msisensorpro/pro/tests/main.nf.test | 51 +++++------- .../msisensorpro/pro/tests/main.nf.test.snap | 82 +++++++++++++++++++ 4 files changed, 113 insertions(+), 41 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 70574d3b948..98c1d8ede8e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,13 +9,13 @@ repos: types: [yaml] additional_dependencies: ["ruamel.yaml"] - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v4.0.0-alpha.8" + rev: "v3.1.0" hooks: - id: prettier additional_dependencies: - prettier@3.5.0 - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.33.0 + rev: 0.29.4 hooks: - id: check-jsonschema name: "Match meta.ymls in one of the subdirectories of modules/nf-core" @@ -36,20 +36,20 @@ repos: # use ruff for python files - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.10 + rev: v0.7.3 hooks: - id: ruff files: \.py$ args: [--fix, --exit-non-zero-on-fix, "--select", "I,E1,E4,E7,E9,F,UP,N"] # sort imports and fix (rules taken from nf-core/tools) - id: ruff-format # formatter - repo: https://github.com/editorconfig-checker/editorconfig-checker.python - rev: "3.2.1" + rev: "3.0.3" hooks: - id: editorconfig-checker alias: ec # NOTE This runs with Docker instead of the binary. Hoping anyone messing with Dockerfiles has Docker installed - repo: https://github.com/hadolint/hadolint - rev: v2.13.1-beta + rev: v2.12.0 hooks: - id: hadolint-docker - repo: https://github.com/nf-core/tools diff --git a/modules/nf-core/msisensorpro/pro/main.nf b/modules/nf-core/msisensorpro/pro/main.nf index 84a186ff1f8..1866bd9290e 100644 --- a/modules/nf-core/msisensorpro/pro/main.nf +++ b/modules/nf-core/msisensorpro/pro/main.nf @@ -8,11 +8,10 @@ process MSISENSORPRO_PRO { 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" input: - tuple val(meta), path(cram) - path("${cram}.crai") - path(list) - path(fasta) - path("${fasta}.fai") + tuple val(meta), path(input), path(index) + tuple val(meta2), path(list) + tuple val(meta3), path(fasta) + tuple val(meta4), path(fai) output: tuple val(meta), path("${prefix}") , emit: summary_msi @@ -31,7 +30,7 @@ process MSISENSORPRO_PRO { msisensor-pro \\ pro \\ -d $list \\ - -t $cram \\ + -t $input \\ -g $fasta \\ -o ${prefix} \\ -b $task.cpus \\ diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test b/modules/nf-core/msisensorpro/pro/tests/main.nf.test index 1f770f7dfb5..e7a4555fb52 100644 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test @@ -11,17 +11,13 @@ nextflow_process { tag "msisensorpro" tag "msisensorpro/pro" - // TODO nf-core: Change the test name preferably indicating the test-data and file-format used - test("testdata - [test, cram], list, fasta") { + test("testdata - [test, input, index], list, fasta") { setup { run("MSISENSORPRO_SCAN") { script "../../scan/main.nf" process { """ - input[0] = [ - [ id:'test'], - file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') - ] + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] """ } } @@ -30,13 +26,14 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map - file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + [ id:'test_bam' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) ] - input[1] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai') - input[2] = MSISENSORPRO_SCAN.out.list.map{ it[1] } - input[3] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') - input[4] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta.fai') + input[1] = MSISENSORPRO_SCAN.out.list + input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) ] + """ } } @@ -44,16 +41,13 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.summary_msi, process.out.all_msi, process.out.dis_msi, process.out.unstable_msi).match() } - //TODO nf-core: Add all required assertions to verify the test output. - // See https://nf-co.re/docs/contributing/tutorials/nf-test_assertions for more information and examples. - ) + { assert snapshot(process.out).match() } + ) } } - // TODO nf-core: Change the test name preferably indicating the test-data and file-format used but keep the " - stub" suffix. - test("testdata - stub - [test, cram], list, fasta") { + test("testdata - [test, input], list, fasta - stub") { options "-stub" @@ -62,10 +56,7 @@ nextflow_process { script "../../scan/main.nf" process { """ - input[0] = [ - [ id:'test', single_end:false ], - file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) - ] + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] """ } } @@ -75,13 +66,14 @@ nextflow_process { process { """ input[0] = [ - [ id:'test', single_end:false ], // meta map - file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) + [ id:'test_bam' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) ] - input[1] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai') - input[2] = MSISENSORPRO_SCAN.out.list.map{ it[1] } - input[3] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta') - input[4] = file('https://github.com/nf-core/test-datasets/raw/refs/heads/modules/data/genomics/homo_sapiens/genome/genome.fasta.fai') + input[1] = MSISENSORPRO_SCAN.out.list + input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) ] + """ } } @@ -89,8 +81,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.summary_msi, process.out.all_msi, process.out.dis_msi, process.out.unstable_msi).match() } - //TODO nf-core: Add all required assertions to verify the test output. + { assert snapshot(process.out).match() } ) } diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap index 6ff0eea6226..af95fa554c5 100644 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap @@ -1,4 +1,86 @@ { + "testdata - [test, input], list, fasta - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "all_msi": [ + + ], + "dis_msi": [ + + ], + "summary_msi": [ + + ], + "unstable_msi": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.4" + }, + "timestamp": "2025-05-21T14:44:05.883508584" + }, + "testdata - [test, input, index], list, fasta": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "all_msi": [ + + ], + "dis_msi": [ + + ], + "summary_msi": [ + + ], + "unstable_msi": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.4" + }, + "timestamp": "2025-05-21T14:43:59.904015128" + }, "testdata - stub - [test, cram], list, fasta": { "content": [ [ From 1e86c7e7ec5c36412c0692fc5d8d51923160c08f Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Wed, 21 May 2025 16:26:22 +0200 Subject: [PATCH 3/9] Updated testdata --- .../msisensorpro/pro/tests/main.nf.test | 20 +-- .../msisensorpro/pro/tests/main.nf.test.snap | 124 ++++++++++++++---- 2 files changed, 112 insertions(+), 32 deletions(-) diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test b/modules/nf-core/msisensorpro/pro/tests/main.nf.test index e7a4555fb52..7c0b0ac07b8 100644 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test @@ -17,7 +17,7 @@ nextflow_process { script "../../scan/main.nf" process { """ - input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] """ } } @@ -27,12 +27,12 @@ nextflow_process { """ input[0] = [ [ id:'test_bam' ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam.bai', checkIfExists: true) ] input[1] = MSISENSORPRO_SCAN.out.list - input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] - input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) ] + input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] + input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true) ] """ } @@ -56,7 +56,7 @@ nextflow_process { script "../../scan/main.nf" process { """ - input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] """ } } @@ -67,12 +67,12 @@ nextflow_process { """ input[0] = [ [ id:'test_bam' ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam.bai', checkIfExists: true) ] input[1] = MSISENSORPRO_SCAN.out.list - input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] - input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) ] + input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] + input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true) ] """ } diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap index af95fa554c5..0443511c7c8 100644 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap +++ b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap @@ -3,34 +3,74 @@ "content": [ { "0": [ - + [ + { + "id": "test_bam" + }, + "test_bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "1": [ - + [ + { + "id": "test_bam" + }, + "test_bam_all:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "2": [ - + [ + { + "id": "test_bam" + }, + "test_bam_dis:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "3": [ - + [ + { + "id": "test_bam" + }, + "test_bam_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "4": [ - + "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" ], "all_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_all:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "dis_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_dis:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "summary_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "unstable_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], "versions": [ - + "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" ] } ], @@ -38,40 +78,80 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-21T14:44:05.883508584" + "timestamp": "2025-05-21T16:23:24.356558342" }, "testdata - [test, input, index], list, fasta": { "content": [ { "0": [ - + [ + { + "id": "test_bam" + }, + "test_bam:md5,fd9bb39ab453ab41062a9cba4915e48c" + ] ], "1": [ - + [ + { + "id": "test_bam" + }, + "test_bam_all:md5,8504b033b5e939b3cc5478baba649e76" + ] ], "2": [ - + [ + { + "id": "test_bam" + }, + "test_bam_dis:md5,8e5ff0fd95ba6ea1167394af6ff3434e" + ] ], "3": [ - + [ + { + "id": "test_bam" + }, + "test_bam_unstable:md5,2d3495f76e346a859190deaa5ac4357f" + ] ], "4": [ - + "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" ], "all_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_all:md5,8504b033b5e939b3cc5478baba649e76" + ] ], "dis_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_dis:md5,8e5ff0fd95ba6ea1167394af6ff3434e" + ] ], "summary_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam:md5,fd9bb39ab453ab41062a9cba4915e48c" + ] ], "unstable_msi": [ - + [ + { + "id": "test_bam" + }, + "test_bam_unstable:md5,2d3495f76e346a859190deaa5ac4357f" + ] ], "versions": [ - + "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" ] } ], @@ -79,7 +159,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-21T14:43:59.904015128" + "timestamp": "2025-05-21T16:23:09.169763728" }, "testdata - stub - [test, cram], list, fasta": { "content": [ From 680cfedb0f7ceb5384b4d9f9baedcb007b5e69e6 Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Wed, 21 May 2025 16:27:15 +0200 Subject: [PATCH 4/9] Updated msisensorpro to v1.3.0 --- modules/nf-core/msisensorpro/scan/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/nf-core/msisensorpro/scan/main.nf b/modules/nf-core/msisensorpro/scan/main.nf index 265e6a132ad..edd27e83cb3 100644 --- a/modules/nf-core/msisensorpro/scan/main.nf +++ b/modules/nf-core/msisensorpro/scan/main.nf @@ -4,8 +4,8 @@ process MSISENSORPRO_SCAN { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : - 'biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" + 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': + 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" input: tuple val(meta), path(fasta) From a507fed6790dd907573558ee70b943f835aa186d Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Wed, 21 May 2025 16:34:12 +0200 Subject: [PATCH 5/9] Removed files for pro command --- .../nf-core/msisensorpro/pro/environment.yml | 7 - modules/nf-core/msisensorpro/pro/main.nf | 55 ----- modules/nf-core/msisensorpro/pro/meta.yml | 62 ----- .../msisensorpro/pro/tests/main.nf.test | 90 ------- .../msisensorpro/pro/tests/main.nf.test.snap | 230 ------------------ 5 files changed, 444 deletions(-) delete mode 100644 modules/nf-core/msisensorpro/pro/environment.yml delete mode 100644 modules/nf-core/msisensorpro/pro/main.nf delete mode 100644 modules/nf-core/msisensorpro/pro/meta.yml delete mode 100644 modules/nf-core/msisensorpro/pro/tests/main.nf.test delete mode 100644 modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap diff --git a/modules/nf-core/msisensorpro/pro/environment.yml b/modules/nf-core/msisensorpro/pro/environment.yml deleted file mode 100644 index 3b66afc67ed..00000000000 --- a/modules/nf-core/msisensorpro/pro/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json -channels: - - conda-forge - - bioconda -dependencies: - - bioconda::msisensor-pro=1.3.0 diff --git a/modules/nf-core/msisensorpro/pro/main.nf b/modules/nf-core/msisensorpro/pro/main.nf deleted file mode 100644 index 1866bd9290e..00000000000 --- a/modules/nf-core/msisensorpro/pro/main.nf +++ /dev/null @@ -1,55 +0,0 @@ -process MSISENSORPRO_PRO { - tag "$meta.id" - label 'process_low' - - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': - 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" - - input: - tuple val(meta), path(input), path(index) - tuple val(meta2), path(list) - tuple val(meta3), path(fasta) - tuple val(meta4), path(fai) - - output: - tuple val(meta), path("${prefix}") , emit: summary_msi - tuple val(meta), path("${prefix}_all") , emit: all_msi - tuple val(meta), path("${prefix}_dis") , emit: dis_msi - tuple val(meta), path("${prefix}_unstable") , emit: unstable_msi - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - """ - msisensor-pro \\ - pro \\ - -d $list \\ - -t $input \\ - -g $fasta \\ - -o ${prefix} \\ - -b $task.cpus \\ - $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - msisensorpro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\s*//p') - END_VERSIONS - """ - - stub: - prefix = task.ext.prefix ?: "${meta.id}" - """ - touch ${prefix} ${prefix}_all ${prefix}_dis ${prefix}_unstable - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - msisensorpro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\s*//p') - END_VERSIONS - """ -} diff --git a/modules/nf-core/msisensorpro/pro/meta.yml b/modules/nf-core/msisensorpro/pro/meta.yml deleted file mode 100644 index e3baadbae13..00000000000 --- a/modules/nf-core/msisensorpro/pro/meta.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -name: "msisensorpro_pro" -description: MSIsensor-pro/pro is a tool used to evaluate MSI using single (tumor) sample - sequencing data -keywords: - - msisensor-pro - - pro - - micro-satellite -tools: - - msisensorpro: - description: Microsatellite Instability (MSI) detection using high-throughput - sequencing data. - homepage: https://github.com/xjtu-omics/msisensor-pro - documentation: https://github.com/xjtu-omics/msisensor-pro/wiki - tool_dev_url: https://github.com/xjtu-omics/msisensor-pro - doi: "10.1016/j.gpb.2020.02.001" - licence: ["Custom Licence"] - identifier: "" - -input: - - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. `[ id:'sample1', single_end:false ]` - - cram: - type: file - description: Sorted CRAM file - pattern: "*.{cram}" - - - list: - type: path - description: path to micro-satellite list - - - fasta: - type: path - description: path to reference genome used to create micro-satellite list - pattern: "*.{fasta}" -output: - - - summary_msi: - type: file - description: txt file containing summary of results - pattern: "*.txt" - - - all_msi: - type: file - description: txt file containing all results - pattern: "*_all.txt" - - - dis_msi: - type: file - description: txt file containing the allele length distribution - pattern: "*_dis.txt" - - - unstable_msi: - type: file - description: txt file containing unstable micro-satellite sites - pattern: "*_unstable.txt" - - versions: - - "versions.yml": - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@Tuur-ds" -maintainers: - - "@Tuur-ds" diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test b/modules/nf-core/msisensorpro/pro/tests/main.nf.test deleted file mode 100644 index 7c0b0ac07b8..00000000000 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test +++ /dev/null @@ -1,90 +0,0 @@ -// TODO nf-core: Once you have added the required tests, please run the following command to build this file: -// nf-core modules test msisensorpro/pro -nextflow_process { - - name "Test Process MSISENSORPRO_PRO" - script "../main.nf" - process "MSISENSORPRO_PRO" - - tag "modules" - tag "modules_nfcore" - tag "msisensorpro" - tag "msisensorpro/pro" - - test("testdata - [test, input, index], list, fasta") { - setup { - run("MSISENSORPRO_SCAN") { - script "../../scan/main.nf" - process { - """ - input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] - """ - } - } - } - when { - process { - """ - input[0] = [ - [ id:'test_bam' ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam.bai', checkIfExists: true) - ] - input[1] = MSISENSORPRO_SCAN.out.list - input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] - input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true) ] - - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - - test("testdata - [test, input], list, fasta - stub") { - - options "-stub" - - setup { - run("MSISENSORPRO_SCAN") { - script "../../scan/main.nf" - process { - """ - input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] - """ - } - } - } - - when { - process { - """ - input[0] = [ - [ id:'test_bam' ], // meta map - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam.bai', checkIfExists: true) - ] - input[1] = MSISENSORPRO_SCAN.out.list - input[2] = [ [ id:'test_fasta' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta', checkIfExists: true) ] - input[3] = [ [ id:'test_fai' ], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai', checkIfExists: true) ] - - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - -} diff --git a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap deleted file mode 100644 index 0443511c7c8..00000000000 --- a/modules/nf-core/msisensorpro/pro/tests/main.nf.test.snap +++ /dev/null @@ -1,230 +0,0 @@ -{ - "testdata - [test, input], list, fasta - stub": { - "content": [ - { - "0": [ - [ - { - "id": "test_bam" - }, - "test_bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - { - "id": "test_bam" - }, - "test_bam_all:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "2": [ - [ - { - "id": "test_bam" - }, - "test_bam_dis:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "3": [ - [ - { - "id": "test_bam" - }, - "test_bam_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "4": [ - "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" - ], - "all_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_all:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "dis_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_dis:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "summary_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "unstable_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" - ] - } - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-21T16:23:24.356558342" - }, - "testdata - [test, input, index], list, fasta": { - "content": [ - { - "0": [ - [ - { - "id": "test_bam" - }, - "test_bam:md5,fd9bb39ab453ab41062a9cba4915e48c" - ] - ], - "1": [ - [ - { - "id": "test_bam" - }, - "test_bam_all:md5,8504b033b5e939b3cc5478baba649e76" - ] - ], - "2": [ - [ - { - "id": "test_bam" - }, - "test_bam_dis:md5,8e5ff0fd95ba6ea1167394af6ff3434e" - ] - ], - "3": [ - [ - { - "id": "test_bam" - }, - "test_bam_unstable:md5,2d3495f76e346a859190deaa5ac4357f" - ] - ], - "4": [ - "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" - ], - "all_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_all:md5,8504b033b5e939b3cc5478baba649e76" - ] - ], - "dis_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_dis:md5,8e5ff0fd95ba6ea1167394af6ff3434e" - ] - ], - "summary_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam:md5,fd9bb39ab453ab41062a9cba4915e48c" - ] - ], - "unstable_msi": [ - [ - { - "id": "test_bam" - }, - "test_bam_unstable:md5,2d3495f76e346a859190deaa5ac4357f" - ] - ], - "versions": [ - "versions.yml:md5,f44fd0e62f3a39a84a86006ac2a69011" - ] - } - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-21T16:23:09.169763728" - }, - "testdata - stub - [test, cram], list, fasta": { - "content": [ - [ - [ - { - "id": "test", - "single_end": false - }, - "test:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - [ - [ - { - "id": "test", - "single_end": false - }, - "test_all:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - [ - [ - { - "id": "test", - "single_end": false - }, - "test_dis:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - [ - [ - { - "id": "test", - "single_end": false - }, - "test_unstable:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-21T13:59:44.517502737" - }, - "testdata - [test, cram], list, fasta": { - "content": [ - [ - - ], - [ - - ], - [ - - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.4" - }, - "timestamp": "2025-05-21T11:22:31.003805747" - } -} \ No newline at end of file From 3d7f71e1a38db3a94966a7dd67070b765e1b4b24 Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Thu, 22 May 2025 09:45:32 +0200 Subject: [PATCH 6/9] Updated snapshot --- .../msisensorpro/scan/tests/main.nf.test.snap | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/nf-core/msisensorpro/scan/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/scan/tests/main.nf.test.snap index f7ea66fc84e..0d5dd79b74e 100644 --- a/modules/nf-core/msisensorpro/scan/tests/main.nf.test.snap +++ b/modules/nf-core/msisensorpro/scan/tests/main.nf.test.snap @@ -12,7 +12,7 @@ ] ], "1": [ - "versions.yml:md5,e99820cdb69a600f5919ee1d7d5d1c3f" + "versions.yml:md5,287e1f39989122a72b82ce521388c06b" ], "list": [ [ @@ -24,15 +24,15 @@ ] ], "versions": [ - "versions.yml:md5,e99820cdb69a600f5919ee1d7d5d1c3f" + "versions.yml:md5,287e1f39989122a72b82ce521388c06b" ] } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.4" }, - "timestamp": "2024-09-05T16:44:21.450285" + "timestamp": "2025-05-22T09:37:54.471663239" }, "test-msisensorpro-scan": { "content": [ @@ -43,11 +43,11 @@ "id": "test", "single_end": false }, - "test.msisensor_scan.list:md5,309d41b136993db24a9f3dade877753b" + "test.msisensor_scan.list:md5,614754c7f1f44d5988dd80f8f21f69d1" ] ], "1": [ - "versions.yml:md5,e99820cdb69a600f5919ee1d7d5d1c3f" + "versions.yml:md5,287e1f39989122a72b82ce521388c06b" ], "list": [ [ @@ -55,18 +55,18 @@ "id": "test", "single_end": false }, - "test.msisensor_scan.list:md5,309d41b136993db24a9f3dade877753b" + "test.msisensor_scan.list:md5,614754c7f1f44d5988dd80f8f21f69d1" ] ], "versions": [ - "versions.yml:md5,e99820cdb69a600f5919ee1d7d5d1c3f" + "versions.yml:md5,287e1f39989122a72b82ce521388c06b" ] } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.4" }, - "timestamp": "2024-09-05T16:44:09.684249" + "timestamp": "2025-05-22T09:37:44.122010756" } } \ No newline at end of file From 5c2b31414d5eed67be4267d312aeb303c33032b5 Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Thu, 22 May 2025 10:00:44 +0200 Subject: [PATCH 7/9] Updated msisensorpro/msisomatic --- .../nf-core/msisensorpro/msisomatic/main.nf | 8 +- .../msisomatic/tests/main.nf.test.snap | 88 +++---------------- 2 files changed, 16 insertions(+), 80 deletions(-) diff --git a/modules/nf-core/msisensorpro/msisomatic/main.nf b/modules/nf-core/msisensorpro/msisomatic/main.nf index 796833c3d40..849179e631e 100644 --- a/modules/nf-core/msisensorpro/msisomatic/main.nf +++ b/modules/nf-core/msisensorpro/msisomatic/main.nf @@ -4,8 +4,8 @@ process MSISENSORPRO_MSISOMATIC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : - 'biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" + 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': + 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" input: tuple val(meta), path(normal), path(normal_index), path(tumor), path(tumor_index), path(intervals) @@ -15,8 +15,8 @@ process MSISENSORPRO_MSISOMATIC { output: tuple val(meta), path("${prefix}") , emit: output_report tuple val(meta), path("${prefix}_dis") , emit: output_dis - tuple val(meta), path("${prefix}_germline"), emit: output_germline - tuple val(meta), path("${prefix}_somatic") , emit: output_somatic + // tuple val(meta), path("${prefix}_germline"), emit: output_germline + // tuple val(meta), path("${prefix}_somatic") , emit: output_somatic path "versions.yml" , emit: versions when: diff --git a/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap index d809493cd3e..46c6d6c124f 100644 --- a/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap +++ b/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap @@ -7,7 +7,7 @@ { "id": "test" }, - "test:md5,db7f2cc99ea79f79b0ba011c4bcbb43d" + "test:md5,e72be74fca391a706f0dd77b8e35be71" ] ], "1": [ @@ -15,42 +15,18 @@ { "id": "test" }, - "test_dis:md5,fc3e205b7ca50c9ecf3f70c87781e96f" + "test_dis:md5,cbfcf8b5ce834ec2228c8f20fd6b424c" ] ], "2": [ - [ - { - "id": "test" - }, - "test_germline:md5,ba585b355c08877b8bca4901f49d9311" - ] - ], - "3": [ - [ - { - "id": "test" - }, - "test_somatic:md5,836e617ddded07ec1e39089fd595c3d8" - ] - ], - "4": [ - "versions.yml:md5,aa0b21daa2d1b75f211227f125236987" + "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ], "output_dis": [ [ { "id": "test" }, - "test_dis:md5,fc3e205b7ca50c9ecf3f70c87781e96f" - ] - ], - "output_germline": [ - [ - { - "id": "test" - }, - "test_germline:md5,ba585b355c08877b8bca4901f49d9311" + "test_dis:md5,cbfcf8b5ce834ec2228c8f20fd6b424c" ] ], "output_report": [ @@ -58,19 +34,11 @@ { "id": "test" }, - "test:md5,db7f2cc99ea79f79b0ba011c4bcbb43d" - ] - ], - "output_somatic": [ - [ - { - "id": "test" - }, - "test_somatic:md5,836e617ddded07ec1e39089fd595c3d8" + "test:md5,e72be74fca391a706f0dd77b8e35be71" ] ], "versions": [ - "versions.yml:md5,aa0b21daa2d1b75f211227f125236987" + "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ] } ], @@ -78,7 +46,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-14T22:11:35.572210341" + "timestamp": "2025-05-22T09:54:19.756315486" }, "homo_sapiens - cram - fasta - list -- stub": { "content": [ @@ -100,23 +68,7 @@ ] ], "2": [ - [ - { - "id": "test" - }, - "test_germline:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "3": [ - [ - { - "id": "test" - }, - "test_somatic:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "4": [ - "versions.yml:md5,aa0b21daa2d1b75f211227f125236987" + "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ], "output_dis": [ [ @@ -126,14 +78,6 @@ "test_dis:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "output_germline": [ - [ - { - "id": "test" - }, - "test_germline:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], "output_report": [ [ { @@ -142,21 +86,13 @@ "test:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "output_somatic": [ - [ - { - "id": "test" - }, - "test_somatic:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], "versions": [ - "versions.yml:md5,aa0b21daa2d1b75f211227f125236987" + "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ] }, { "MSISENSORPRO_MSISOMATIC": { - "msisensor-pro": "1.2.0" + "msisensor-pro": "1.3.0" } } ], @@ -164,6 +100,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-14T22:11:57.478582513" + "timestamp": "2025-05-22T09:54:30.972436147" } -} +} \ No newline at end of file From 6a1b94eebca847a634dbe38042a9eebb207140b2 Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Thu, 22 May 2025 10:07:41 +0200 Subject: [PATCH 8/9] Updated conda to v1.3.0, fixed linting --- modules/nf-core/msisensorpro/msisomatic/environment.yml | 2 +- modules/nf-core/msisensorpro/msisomatic/main.nf | 2 +- modules/nf-core/msisensorpro/scan/environment.yml | 2 +- modules/nf-core/msisensorpro/scan/main.nf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/msisensorpro/msisomatic/environment.yml b/modules/nf-core/msisensorpro/msisomatic/environment.yml index f17216d6c5f..3b66afc67ed 100644 --- a/modules/nf-core/msisensorpro/msisomatic/environment.yml +++ b/modules/nf-core/msisensorpro/msisomatic/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::msisensor-pro=1.2.0 + - bioconda::msisensor-pro=1.3.0 diff --git a/modules/nf-core/msisensorpro/msisomatic/main.nf b/modules/nf-core/msisensorpro/msisomatic/main.nf index 849179e631e..6291a5046ef 100644 --- a/modules/nf-core/msisensorpro/msisomatic/main.nf +++ b/modules/nf-core/msisensorpro/msisomatic/main.nf @@ -5,7 +5,7 @@ process MSISENSORPRO_MSISOMATIC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': - 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" + 'biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" input: tuple val(meta), path(normal), path(normal_index), path(tumor), path(tumor_index), path(intervals) diff --git a/modules/nf-core/msisensorpro/scan/environment.yml b/modules/nf-core/msisensorpro/scan/environment.yml index f17216d6c5f..3b66afc67ed 100644 --- a/modules/nf-core/msisensorpro/scan/environment.yml +++ b/modules/nf-core/msisensorpro/scan/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::msisensor-pro=1.2.0 + - bioconda::msisensor-pro=1.3.0 diff --git a/modules/nf-core/msisensorpro/scan/main.nf b/modules/nf-core/msisensorpro/scan/main.nf index edd27e83cb3..7ef4ae172c6 100644 --- a/modules/nf-core/msisensorpro/scan/main.nf +++ b/modules/nf-core/msisensorpro/scan/main.nf @@ -5,7 +5,7 @@ process MSISENSORPRO_SCAN { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/msisensor-pro%3A1.3.0--hfef96ef_0': - 'quay.io/biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" + 'biocontainers/msisensor-pro:1.3.0--hfef96ef_0' }" input: tuple val(meta), path(fasta) From ad44eef398a3a599159cbc39018869d8972ea1e9 Mon Sep 17 00:00:00 2001 From: Tuur-ds Date: Thu, 22 May 2025 11:12:50 +0200 Subject: [PATCH 9/9] Added optional flag to germline and somatic output --- .../nf-core/msisensorpro/msisomatic/main.nf | 4 +- .../msisomatic/tests/main.nf.test.snap | 48 ++++++++++++++++++- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/modules/nf-core/msisensorpro/msisomatic/main.nf b/modules/nf-core/msisensorpro/msisomatic/main.nf index 6291a5046ef..41e8a04cfb4 100644 --- a/modules/nf-core/msisensorpro/msisomatic/main.nf +++ b/modules/nf-core/msisensorpro/msisomatic/main.nf @@ -15,8 +15,8 @@ process MSISENSORPRO_MSISOMATIC { output: tuple val(meta), path("${prefix}") , emit: output_report tuple val(meta), path("${prefix}_dis") , emit: output_dis - // tuple val(meta), path("${prefix}_germline"), emit: output_germline - // tuple val(meta), path("${prefix}_somatic") , emit: output_somatic + tuple val(meta), path("${prefix}_germline"), emit: output_germline, optional: true + tuple val(meta), path("${prefix}_somatic") , emit: output_somatic, optional: true path "versions.yml" , emit: versions when: diff --git a/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap b/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap index 46c6d6c124f..9b65a6aa11d 100644 --- a/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap +++ b/modules/nf-core/msisensorpro/msisomatic/tests/main.nf.test.snap @@ -19,6 +19,12 @@ ] ], "2": [ + + ], + "3": [ + + ], + "4": [ "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ], "output_dis": [ @@ -28,6 +34,9 @@ }, "test_dis:md5,cbfcf8b5ce834ec2228c8f20fd6b424c" ] + ], + "output_germline": [ + ], "output_report": [ [ @@ -36,6 +45,9 @@ }, "test:md5,e72be74fca391a706f0dd77b8e35be71" ] + ], + "output_somatic": [ + ], "versions": [ "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" @@ -46,7 +58,7 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-22T09:54:19.756315486" + "timestamp": "2025-05-22T11:04:58.705574319" }, "homo_sapiens - cram - fasta - list -- stub": { "content": [ @@ -68,6 +80,22 @@ ] ], "2": [ + [ + { + "id": "test" + }, + "test_germline:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test_somatic:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ], "output_dis": [ @@ -78,6 +106,14 @@ "test_dis:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "output_germline": [ + [ + { + "id": "test" + }, + "test_germline:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "output_report": [ [ { @@ -86,6 +122,14 @@ "test:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], + "output_somatic": [ + [ + { + "id": "test" + }, + "test_somatic:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], "versions": [ "versions.yml:md5,dcaf46d0c6a5501f318bc2b2797e4ba1" ] @@ -100,6 +144,6 @@ "nf-test": "0.9.2", "nextflow": "24.10.4" }, - "timestamp": "2025-05-22T09:54:30.972436147" + "timestamp": "2025-05-22T11:05:12.519069988" } } \ No newline at end of file