diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d0fe518..1fe0b96e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## dev - xxxx-xx-xx +### Enhancements & fixes + +- Improve test suite by @Aratz [#163](https://github.com/nf-core/pixelator/pull/163) + ## [[2.2.0](https://github.com/nf-core/pixelator/releases/tag/2.2.0)] - 2025-11-02 This new minor version of nf-core/pixelator introduces new panel files with clearer names. These new diff --git a/modules/local/experiment_summary/main.nf b/modules/local/experiment_summary/main.nf index af6f39a5..20759495 100644 --- a/modules/local/experiment_summary/main.nf +++ b/modules/local/experiment_summary/main.nf @@ -24,13 +24,14 @@ process EXPERIMENT_SUMMARY { path("versions.yml") , emit: versions script: - + def args = task.ext.args ?: '' """ # Copy the full quarto dir from the read-only image into the workdir cp -r /workspace/inst/quarto/ ./quarto/ quarto render ./quarto/pixelatorES.qmd \\ -P sample_sheet="\$PWD/${samplesheet_path}" \\ - -P data_folder="\$PWD/results/" + -P data_folder="\$PWD/results/" \\ + $args \\ mv ./quarto/pixelatorES.html experiment-summary.html diff --git a/modules/local/experiment_summary/tests/main.nf.test b/modules/local/experiment_summary/tests/main.nf.test index 93dfea28..1af231dc 100644 --- a/modules/local/experiment_summary/tests/main.nf.test +++ b/modules/local/experiment_summary/tests/main.nf.test @@ -8,11 +8,16 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/experiment_summary" - test("PNA experiment summary - small") { + + + test("PNA experiment summary - stub") { + + options "-stub" + when { process { """ - input[0] = [ file(params.pipelines_testdata_base_path + 'samplesheet/pna/samplesheet_pna_es.csv', checkIfExists: true) ] + input[0] = [ file(params.pipelines_testdata_base_path + 'samplesheet/pna/samplesheet_pna.csv', checkIfExists: true) ] input[1] = [ [id:'all', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], // amplicon @@ -80,18 +85,19 @@ nextflow_process { assert path(get(0).get(1)).exists() } }, - { assert snapshot(process.out.versions).match("versions") }, + { assert snapshot(process.out.versions).match() }, ) } } - - - test("PNA experiment summary - stub") { + test("PNA experiment summary - small") { when { + params { + outdir = "$outputDir" + } process { """ - input[0] = [ file(params.pipelines_testdata_base_path + 'samplesheet/pna/samplesheet_pna_es.csv', checkIfExists: true) ] + input[0] = [ file(params.pipelines_testdata_base_path + 'samplesheet/pna/samplesheet_pna.csv', checkIfExists: true) ] input[1] = [ [id:'all', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], // amplicon @@ -151,15 +157,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, - { - with(process.out.html) { - assert path(get(0).get(1)).endsWith("experiment-summary.html") - assert path(get(0).get(1)).exists() - } - }, - { assert snapshot(process.out.versions).match("stub-versions") }, + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/experiment_summary/tests/main.nf.test.snap b/modules/local/experiment_summary/tests/main.nf.test.snap index 0f6b5c0e..74c60c41 100644 --- a/modules/local/experiment_summary/tests/main.nf.test.snap +++ b/modules/local/experiment_summary/tests/main.nf.test.snap @@ -1,26 +1,31 @@ { - "versions": { + "PNA experiment summary - small": { "content": [ + 1, + [ + "pixelator", + "pixelator/experiment-summary.html" + ], [ "versions.yml:md5,1c35ddcd59548b42fc730937c4263809" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-08-27T07:10:33.460197901" + "timestamp": "2025-11-07T15:10:18.392267622" }, - "stub-versions": { + "PNA experiment summary - stub": { "content": [ [ "versions.yml:md5,1c35ddcd59548b42fc730937c4263809" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-08-27T07:13:26.253720282" + "timestamp": "2025-11-07T15:09:02.619765414" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test index 4355695d..407b1d67 100644 --- a/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test @@ -33,8 +33,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out).match() }, - + { assert snapshot(process.out).match() } ) } } @@ -43,6 +42,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -58,19 +58,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.merged, - process.out.report_json, - process.out.metadata - ).match() - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator amplicon") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test.snap index 8e0cdc2f..dd52241f 100644 --- a/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/amplicon/tests/main.nf.test.snap @@ -1,45 +1,26 @@ { "Test MPX amplicon - SCSP v1 | Immunology-I": { "content": [ + 1, [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.merged.fastq.gz:md5,b66b4946d695f8e2202e2018dcfd6a15" - ] - ], - [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,5c15027e9dd0e441f8695a166817c9a5" - ] + "pixelator", + "pixelator/amplicon", + "pixelator/amplicon/sample01_1k_pbmcs_scsp_v1_immunology1.merged.fastq.gz", + "pixelator/amplicon/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/amplicon/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-amplicon.log" ], [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,40db76b696434ea585851070cabe8baa" - ] + "versions.yml:md5,60a7a0bbc070d248db9f89ab0972c46e" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-07-28T11:06:59.496585652" + "timestamp": "2025-11-07T08:29:01.551421256" }, "Test MPX amplicon - stub": { "content": [ diff --git a/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test index 11e6d695..8446e1e7 100644 --- a/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test @@ -35,7 +35,8 @@ nextflow_process { test("Test MPX analysis - SCSP v1 | Immunology-I") { when { params { - save_all + save_all = true + outdir = "$outputDir" } process { """ @@ -48,17 +49,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, - {assert path(process.out.report_json.get(0).get(1)).exists()}, - {assert path(process.out.metadata.get(0).get(1)).exists()}, - {assert path(process.out.dataset.get(0).get(1)).exists()}, - {assert process.out.dataset.get(0).get(1).endsWith(".pxl")}, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator analysis") - } - }, + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test.snap index aca84d4c..3949dd8a 100644 --- a/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/analysis/tests/main.nf.test.snap @@ -1,4 +1,27 @@ { + "Test MPX analysis - SCSP v1 | Immunology-I": { + "content": [ + 1, + [ + "pixelator", + "pixelator/analysis", + "pixelator/analysis/sample01_1k_pbmcs_scsp_v1_immunology1.analysis.dataset.pxl", + "pixelator/analysis/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/analysis/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-analysis.log" + ], + [ + "versions.yml:md5,294239a503f1320c924038c6554443a2" + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T10:12:24.48353731" + }, "Test MPX analysis - stub": { "content": [ { diff --git a/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test index 72b07014..cf95ad53 100644 --- a/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test @@ -41,6 +41,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -55,24 +56,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, - {assert path(process.out.report_json.get(0).get(1)).exists()}, - {assert path(process.out.metadata.get(0).get(1)).exists()}, - { - with (process.out.dataset.get(0)) { - assert path(get(1)).zip.extract("adata.h5ad").exists() - assert path(get(1)).zip.extract("edgelist.parquet").exists() - assert snapshot( - path(get(1)).zip.extract("metadata.json") - ).match("pxl") - } - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator annotate") - } - }, + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test.snap index 1a0e777e..69431c21 100644 --- a/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/annotate/tests/main.nf.test.snap @@ -1,13 +1,26 @@ { - "pxl": { + "Test MPX annotate - SCSP v1 | Immunology-I": { "content": [ - "metadata.json:md5,82b35492f5e5067481c04c8612f466ee" + 1, + [ + "pixelator", + "pixelator/annotate", + "pixelator/annotate/sample01_1k_pbmcs_scsp_v1_immunology1.annotate.dataset.pxl", + "pixelator/annotate/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/annotate/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-annotate.log" + ], + [ + "versions.yml:md5,f96c065a146a6d0667467f30beb8092b" + ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:30:45.331289297" + "timestamp": "2025-11-07T10:13:35.389069003" }, "Test MPX annotate - stub": { "content": [ diff --git a/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test index 89a5cc94..a7565b95 100644 --- a/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test @@ -45,6 +45,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -67,19 +68,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.collapsed, - process.out.report_json, - process.out.metadata - ).match() - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator collapse") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test.snap index 6f6687fe..fb3c8233 100644 --- a/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/collapse/tests/main.nf.test.snap @@ -1,45 +1,26 @@ { "Test MPX collapse - - SCSP v1 | Immunology-I": { "content": [ + 1, [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.collapsed.parquet:md5,309a0b8c40bfb3e7cc6f05bd9a94b9e9" - ] - ], - [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,dd843f96bca3802fa558afefabf1864f" - ] + "pixelator", + "pixelator/collapse", + "pixelator/collapse/sample01_1k_pbmcs_scsp_v1_immunology1.collapsed.parquet", + "pixelator/collapse/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/collapse/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-collapse.log" ], [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,69a3436261bc4e09d841b7be641aafbd" - ] + "versions.yml:md5,29fb76a9bb02ad5d3c0fac614e6a6b58" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-06T15:11:44.266641701" + "timestamp": "2025-11-07T10:14:23.568911654" }, "Test MPX collapse - stub": { "content": [ diff --git a/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test index 39b4bafa..021faf44 100644 --- a/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test @@ -38,6 +38,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -52,27 +53,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.processed, - process.out.failed, - process.out.metadata, - process.out.versions - ).match() - }, - { - with (process.out.report_json) { - def data = path(get(0).get(1)).json - data.remove("command_line_arguments") - assert snapshot(data).match("report_json") - } - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator demux") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test.snap index b084482a..8314bda9 100644 --- a/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/demux/tests/main.nf.test.snap @@ -128,119 +128,96 @@ }, "Test MPX demux - SCSP v1 | Immunology-I": { "content": [ + 1, [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - [ - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAAGCAAC.fastq.gz:md5,2be11ce9cafb75568f78085801253509", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACAAGAC.fastq.gz:md5,f9ff0b5eadf6e7bbd4c3d52fc5444d2b", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACCTTCC.fastq.gz:md5,1a652d8a86edee3ffc3e15051d74c29d", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACGGCTA.fastq.gz:md5,19d85529d3c3c9af112596d4594d8a0c", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGCATAG.fastq.gz:md5,bfdc67d2dbc23f6919fbc3f838f44b75", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGTAGCT.fastq.gz:md5,60adc5de820ca5683f318bb74e8f675b", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGTCGTG.fastq.gz:md5,5d5df1c1dfec5f5105d2487f1c28a3b6", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACATTGAC.fastq.gz:md5,cb79e9b0810d1dd057feb4efe7083a39", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACCAGTAC.fastq.gz:md5,9e621a32529c72644949ae40baffda93", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACCTTGTG.fastq.gz:md5,345dc1bfd7c082bb108f3de96391aa85", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTCGGAA.fastq.gz:md5,28ef340136eeda1ef9f4d50f90d61a6c", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTCTCAC.fastq.gz:md5,8bd69299f5733228daa7a34c2c1a9746", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTGTGTC.fastq.gz:md5,c9062dfb823417c51807e8bcaab5df83", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGAGGCTC.fastq.gz:md5,6f13d07767f5b5c40bba2860ecedf0df", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGCCCGAA.fastq.gz:md5,0fc734fe06b7463386768219235acdac", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGCTACTA.fastq.gz:md5,051e03ddcb55009c143f2618b9898b99", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGGATGTT.fastq.gz:md5,61b78cfbe10941d026949a903c901018", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGGGCAGT.fastq.gz:md5,b669fb56c5feb7ad8a1ad6921bd2fc93", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGTTATCG.fastq.gz:md5,dc52cc495bda419f1484f15d5a88512a", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATAGGGGA.fastq.gz:md5,e81bb2551be608cf28201e7e867299f0", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATGACTGC.fastq.gz:md5,f7331624948d7a4d80d9ec8ccbd9feae", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTCGCCT.fastq.gz:md5,0d3549c1111a907f68019e72ac1a3c6e", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTGGCAC.fastq.gz:md5,ef51ae01e3f4a0a40471f161a1d3ec72", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTTCGAG.fastq.gz:md5,a5e8c0c4f1a94269721ea1403793be34", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAATCGGC.fastq.gz:md5,87c72a995833444114bec2540d02a0c0", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CACACGGT.fastq.gz:md5,2e9412f0b2417f7bc9444a0df5bafa1d", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CACGTTTC.fastq.gz:md5,154ed56123e6f97b1b47afe0234f323f", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAGATCCG.fastq.gz:md5,fb2f438c0d71b1758e26ab00978ff832", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAGTCAGT.fastq.gz:md5,384093871acb5cadfbb685e5dca3e29f", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CATGGGCA.fastq.gz:md5,1c1c21f3e1bf5ae4dcc7b75e0b75aa82", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCAGACAC.fastq.gz:md5,28043a27df2c133186deec31bc3b9921", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCAGCATG.fastq.gz:md5,4937857331b3b26dcc82229b71b90553", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCGATATC.fastq.gz:md5,007bfe6aaf6426bf9c4627492d21bf51", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCTAAGAA.fastq.gz:md5,cc2260d540b98a984ee4d01188d72469", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTACGACG.fastq.gz:md5,31972b1a0979e6f814e1075c80494b90", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTACTCGC.fastq.gz:md5,5edd5bba357e95c6531008a4d21d9f09", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTCAAGAG.fastq.gz:md5,7a442714b77ada1dbaca91663e1cc22a", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTCAGATG.fastq.gz:md5,5818dd8b5061ab8efd166a9cf015525a", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTGACCAT.fastq.gz:md5,d20fd12fc9eba7f7a4e4d249a35c7837", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTGTAGGA.fastq.gz:md5,d11f9ec5e2510f3d839b4db9e71ea907", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTTCTTGA.fastq.gz:md5,0d84ccdd28c879e0983838305db14f52", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTTGCACC.fastq.gz:md5,007a6e7eb4c1c3608bf8a3dddc5f75dc", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAAAGTCA.fastq.gz:md5,ab497850624c21670bc7317dbd9865f4", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAATCCCG.fastq.gz:md5,966f6167f29cec8cf2e728dd388dc0be", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GACCACTC.fastq.gz:md5,012ca430a152a70dc45b7659edfe7ef3", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GACTGGGA.fastq.gz:md5,35b1e7c1a78601222499e76f17e404ee", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAGGTTAG.fastq.gz:md5,97ad07e025ecc4d5f08dd5b0d43c48bc", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GATAGGGT.fastq.gz:md5,edaebfd326ce12572125310d5b9922fa", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GATTGTGC.fastq.gz:md5,b9dab9f9ab1d927bbf5c05e55bba7d7b", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCACTTAG.fastq.gz:md5,904c9d6755c56786cc4eb4643c9df32f", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCATTCTG.fastq.gz:md5,5a801b02054823152a9770a766466c25", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCCGGACG.fastq.gz:md5,442a9e2637a3baf80127036898ea9954", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCGCAACT.fastq.gz:md5,7bf6d28e6c85086285a5e2d66fbd6501", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCTATTGA.fastq.gz:md5,0a5bda017d3cbe48ccd676eff98b06f2", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCTGAACC.fastq.gz:md5,4f558e3130feb29a20c49a8d22266e16", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GGAGCCAA.fastq.gz:md5,03dbfa1a69abf49f5e999e914451dc3c", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GGTTTACC.fastq.gz:md5,58e57f104c7ae0682520bf5c27f213e2", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTAGGACC.fastq.gz:md5,bd09f8d96a13eb2fcc24e5d63ca2310c", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTATCGGT.fastq.gz:md5,df197a9089593e7b11674d0455041323", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTCTTTGT.fastq.gz:md5,787b3878efb07dcd491b4281aae789dd", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTGAGTAG.fastq.gz:md5,4e326f4d7480808e47062d3e9be4afc7", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTGCATTC.fastq.gz:md5,ad4e6c6f4b680740848cf28fe009a859", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTTCAGAC.fastq.gz:md5,2c96d4d25bd7bf510666bd6cd54259a7", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTTGTCCG.fastq.gz:md5,4ef8830e94e4d081ec5b41684eda1f62", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TACTCTTG.fastq.gz:md5,0cff4ebf5b50e561bed196d2bdd9bfd3", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TATCCCTT.fastq.gz:md5,f86d88350696646d60dc2fb09c4c80a3", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCAACGCT.fastq.gz:md5,13b947369a05597fc0a0c0dc2bc8ea7a", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCAGGGTG.fastq.gz:md5,7a4a755b755cb27187739a133158388d", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCCAGTG.fastq.gz:md5,55f1975421e7b88439b6072f7c618ed1", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCCTTGC.fastq.gz:md5,a36866035e811f2256a421fc0a25996b", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCGTAAC.fastq.gz:md5,4370f3aa108b5e784038fb1674c56984", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCGTAACG.fastq.gz:md5,319a9f3f45c486d8e6b7271038b8b28d", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCTGCTCC.fastq.gz:md5,887869e93a80f350d242fe58585583e3", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGATAGAA.fastq.gz:md5,892622cf98833b2e75c244735a66e4cf", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGCATGTC.fastq.gz:md5,b0aa3857be96a576ff96b5a597fdb6ce", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGGGGCTT.fastq.gz:md5,0e445cadab10b55e9a5e757b012dfc61", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTCTGGGT.fastq.gz:md5,eddafbb008b1f85c9159b27f13da7165", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTGTCCAA.fastq.gz:md5,5f5b97e5d6009da8e006031d00d48d9a", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTTCTGGT.fastq.gz:md5,c8c9c588a76f247f69acdb0438fe8593", - "sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTTGGAAG.fastq.gz:md5,7cd6c6c247032cdb063f69cb0bbcc2ad" - ] - ] - ], - [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.failed.fastq.gz:md5,62b151206fd8ec15dd788e5a22474d1d" - ] - ], - [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,1d2c212818a2970b9ee9b3665f2baeba" - ] + "pixelator", + "pixelator/demux", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.failed.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAAGCAAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACAAGAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACCTTCC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AACGGCTA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGCATAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGTAGCT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AAGTCGTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACATTGAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACCAGTAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACCTTGTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTCGGAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTCTCAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ACTGTGTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGAGGCTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGCCCGAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGCTACTA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGGATGTT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGGGCAGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-AGTTATCG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATAGGGGA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATGACTGC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTCGCCT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTGGCAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-ATTTCGAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAATCGGC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CACACGGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CACGTTTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAGATCCG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CAGTCAGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CATGGGCA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCAGACAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCAGCATG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCGATATC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CCTAAGAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTACGACG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTACTCGC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTCAAGAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTCAGATG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTGACCAT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTGTAGGA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTTCTTGA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-CTTGCACC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAAAGTCA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAATCCCG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GACCACTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GACTGGGA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GAGGTTAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GATAGGGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GATTGTGC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCACTTAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCATTCTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCCGGACG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCGCAACT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCTATTGA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GCTGAACC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GGAGCCAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GGTTTACC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTAGGACC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTATCGGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTCTTTGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTGAGTAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTGCATTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTTCAGAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-GTTGTCCG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TACTCTTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TATCCCTT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCAACGCT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCAGGGTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCCAGTG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCCTTGC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCCGTAAC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCGTAACG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TCTGCTCC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGATAGAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGCATGTC.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TGGGGCTT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTCTGGGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTGTCCAA.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTTCTGGT.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.processed-TTTGGAAG.fastq.gz", + "pixelator/demux/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-demux.log" ], [ "versions.yml:md5,e046bd710e4ef6dc9a7fffa8edd9d26e" @@ -250,2626 +227,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:31:36.148658933" - }, - "report_json": { - "content": [ - { - "tag": "Cutadapt report", - "schema_version": [ - 0, - 3 - ], - "cutadapt_version": "5.2", - "python_version": "3.12.12", - "cores": 2, - "input": { - "path1": "sample01_1k_pbmcs_scsp_v1_immunology1.processed.fastq.gz", - "path2": null, - "paired": false - }, - "read_counts": { - "input": 99898, - "filtered": { - "too_short": null, - "too_long": null, - "too_many_n": null, - "too_many_expected_errors": null, - "casava_filtered": null, - "discard_trimmed": null, - "discard_untrimmed": 0 - }, - "output": 99898, - "reverse_complemented": null, - "read1_with_adapter": 99612, - "read2_with_adapter": null - }, - "basepair_counts": { - "input": 13186536, - "input_read1": 13186536, - "input_read2": null, - "quality_trimmed": null, - "quality_trimmed_read1": null, - "quality_trimmed_read2": null, - "poly_a_trimmed": null, - "poly_a_trimmed_read1": null, - "poly_a_trimmed_read2": null, - "output": 13186536, - "output_read1": 13186536, - "output_read2": null - }, - "adapters_read1": [ - { - "name": "B2M", - "total_matches": 10089, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTGTAGGA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 10089, - "adjacent_bases": { - "A": 1530, - "C": 2674, - "G": 2778, - "T": 3107, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 10089 - ] - } - ] - } - }, - { - "name": "CD102", - "total_matches": 175, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TTTCTGGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 175, - "adjacent_bases": { - "A": 51, - "C": 41, - "G": 55, - "T": 28, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 175 - ] - } - ] - } - }, - { - "name": "CD11a", - "total_matches": 4647, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACATTGAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 4647, - "adjacent_bases": { - "A": 862, - "C": 863, - "G": 1130, - "T": 1792, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 4647 - ] - } - ] - } - }, - { - "name": "CD11b", - "total_matches": 7, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACTGTGTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 7, - "adjacent_bases": { - "A": 0, - "C": 0, - "G": 4, - "T": 3, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 7 - ] - } - ] - } - }, - { - "name": "CD11c", - "total_matches": 47, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AAGTCGTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 47, - "adjacent_bases": { - "A": 19, - "C": 7, - "G": 14, - "T": 7, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 47 - ] - } - ] - } - }, - { - "name": "CD127", - "total_matches": 396, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TGATAGAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 396, - "adjacent_bases": { - "A": 67, - "C": 99, - "G": 120, - "T": 110, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 396 - ] - } - ] - } - }, - { - "name": "CD137", - "total_matches": 4, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CCTAAGAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 4, - "adjacent_bases": { - "A": 2, - "C": 0, - "G": 2, - "T": 0, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 4 - ] - } - ] - } - }, - { - "name": "CD14", - "total_matches": 70, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGAGGCTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 70, - "adjacent_bases": { - "A": 20, - "C": 9, - "G": 32, - "T": 9, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 70 - ] - } - ] - } - }, - { - "name": "CD150", - "total_matches": 25, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTTGCACC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 25, - "adjacent_bases": { - "A": 8, - "C": 0, - "G": 5, - "T": 12, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 25 - ] - } - ] - } - }, - { - "name": "CD152", - "total_matches": 39, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AACGGCTA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 39, - "adjacent_bases": { - "A": 18, - "C": 2, - "G": 7, - "T": 12, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 39 - ] - } - ] - } - }, - { - "name": "CD154", - "total_matches": 4, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TGGGGCTT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 4, - "adjacent_bases": { - "A": 0, - "C": 1, - "G": 3, - "T": 0, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 4 - ] - } - ] - } - }, - { - "name": "CD158", - "total_matches": 12, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACTCGGAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 12, - "adjacent_bases": { - "A": 1, - "C": 0, - "G": 10, - "T": 1, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 12 - ] - } - ] - } - }, - { - "name": "CD16", - "total_matches": 86, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTGCATTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 86, - "adjacent_bases": { - "A": 40, - "C": 8, - "G": 25, - "T": 13, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 86 - ] - } - ] - } - }, - { - "name": "CD161", - "total_matches": 26, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTGAGTAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 26, - "adjacent_bases": { - "A": 15, - "C": 5, - "G": 3, - "T": 3, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 26 - ] - } - ] - } - }, - { - "name": "CD162", - "total_matches": 77, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCTATTGA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 77, - "adjacent_bases": { - "A": 32, - "C": 19, - "G": 12, - "T": 14, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 77 - ] - } - ] - } - }, - { - "name": "CD163", - "total_matches": 18, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CATGGGCA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 18, - "adjacent_bases": { - "A": 0, - "C": 11, - "G": 6, - "T": 1, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 18 - ] - } - ] - } - }, - { - "name": "CD18", - "total_matches": 959, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CACACGGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 959, - "adjacent_bases": { - "A": 253, - "C": 209, - "G": 294, - "T": 203, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 959 - ] - } - ] - } - }, - { - "name": "CD19", - "total_matches": 173, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTACGACG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 173, - "adjacent_bases": { - "A": 38, - "C": 49, - "G": 48, - "T": 38, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 173 - ] - } - ] - } - }, - { - "name": "CD197", - "total_matches": 543, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGGATGTT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 543, - "adjacent_bases": { - "A": 180, - "C": 97, - "G": 130, - "T": 136, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 543 - ] - } - ] - } - }, - { - "name": "CD1d", - "total_matches": 64, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TACTCTTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 64, - "adjacent_bases": { - "A": 23, - "C": 13, - "G": 14, - "T": 14, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 64 - ] - } - ] - } - }, - { - "name": "CD2", - "total_matches": 1229, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CCGATATC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1229, - "adjacent_bases": { - "A": 290, - "C": 283, - "G": 361, - "T": 295, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1229 - ] - } - ] - } - }, - { - "name": "CD20", - "total_matches": 570, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GAATCCCG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 570, - "adjacent_bases": { - "A": 146, - "C": 116, - "G": 213, - "T": 95, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 570 - ] - } - ] - } - }, - { - "name": "CD200", - "total_matches": 35, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGGGCAGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 35, - "adjacent_bases": { - "A": 21, - "C": 8, - "G": 4, - "T": 2, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 35 - ] - } - ] - } - }, - { - "name": "CD22", - "total_matches": 1505, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTCAAGAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1505, - "adjacent_bases": { - "A": 381, - "C": 337, - "G": 482, - "T": 305, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1505 - ] - } - ] - } - }, - { - "name": "CD229", - "total_matches": 156, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTTCAGAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 156, - "adjacent_bases": { - "A": 47, - "C": 44, - "G": 38, - "T": 27, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 156 - ] - } - ] - } - }, - { - "name": "CD244", - "total_matches": 37, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGCCCGAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 37, - "adjacent_bases": { - "A": 0, - "C": 15, - "G": 12, - "T": 10, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 37 - ] - } - ] - } - }, - { - "name": "CD25", - "total_matches": 39, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCCGGACG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 39, - "adjacent_bases": { - "A": 13, - "C": 1, - "G": 12, - "T": 13, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 39 - ] - } - ] - } - }, - { - "name": "CD26", - "total_matches": 943, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTCTTTGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 943, - "adjacent_bases": { - "A": 238, - "C": 183, - "G": 311, - "T": 211, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 943 - ] - } - ] - } - }, - { - "name": "CD268", - "total_matches": 164, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CACGTTTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 164, - "adjacent_bases": { - "A": 52, - "C": 54, - "G": 46, - "T": 12, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 164 - ] - } - ] - } - }, - { - "name": "CD27", - "total_matches": 612, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTTGTCCG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 612, - "adjacent_bases": { - "A": 152, - "C": 142, - "G": 121, - "T": 197, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 612 - ] - } - ] - } - }, - { - "name": "CD274", - "total_matches": 187, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCCCTTGC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 187, - "adjacent_bases": { - "A": 52, - "C": 55, - "G": 39, - "T": 41, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 187 - ] - } - ] - } - }, - { - "name": "CD278", - "total_matches": 11, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AAAGCAAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 11, - "adjacent_bases": { - "A": 3, - "C": 5, - "G": 1, - "T": 2, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 11 - ] - } - ] - } - }, - { - "name": "CD279", - "total_matches": 18, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TTCTGGGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 18, - "adjacent_bases": { - "A": 0, - "C": 8, - "G": 8, - "T": 2, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 18 - ] - } - ] - } - }, - { - "name": "CD29", - "total_matches": 580, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ATTCGCCT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 580, - "adjacent_bases": { - "A": 109, - "C": 99, - "G": 182, - "T": 190, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 580 - ] - } - ] - } - }, - { - "name": "CD314", - "total_matches": 20, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTTCTTGA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 20, - "adjacent_bases": { - "A": 7, - "C": 1, - "G": 11, - "T": 1, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 20 - ] - } - ] - } - }, - { - "name": "CD32", - "total_matches": 1547, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CAATCGGC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1547, - "adjacent_bases": { - "A": 470, - "C": 284, - "G": 401, - "T": 392, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1547 - ] - } - ] - } - }, - { - "name": "CD33", - "total_matches": 18, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCCGTAAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 18, - "adjacent_bases": { - "A": 8, - "C": 2, - "G": 8, - "T": 0, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 18 - ] - } - ] - } - }, - { - "name": "CD337", - "total_matches": 9, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCCCAGTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 9, - "adjacent_bases": { - "A": 1, - "C": 2, - "G": 6, - "T": 0, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 9 - ] - } - ] - } - }, - { - "name": "CD35", - "total_matches": 1455, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CCAGACAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1455, - "adjacent_bases": { - "A": 388, - "C": 285, - "G": 527, - "T": 255, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1455 - ] - } - ] - } - }, - { - "name": "CD36", - "total_matches": 1483, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ATTTCGAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1483, - "adjacent_bases": { - "A": 365, - "C": 385, - "G": 375, - "T": 358, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1483 - ] - } - ] - } - }, - { - "name": "CD37", - "total_matches": 2492, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TTGTCCAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 2492, - "adjacent_bases": { - "A": 1094, - "C": 304, - "G": 613, - "T": 481, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 2492 - ] - } - ] - } - }, - { - "name": "CD38", - "total_matches": 549, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCAACGCT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 549, - "adjacent_bases": { - "A": 182, - "C": 133, - "G": 143, - "T": 91, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 549 - ] - } - ] - } - }, - { - "name": "CD3E", - "total_matches": 517, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGCTACTA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 517, - "adjacent_bases": { - "A": 134, - "C": 90, - "G": 151, - "T": 142, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 517 - ] - } - ] - } - }, - { - "name": "CD4", - "total_matches": 648, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTGACCAT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 648, - "adjacent_bases": { - "A": 183, - "C": 126, - "G": 177, - "T": 162, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 648 - ] - } - ] - } - }, - { - "name": "CD40", - "total_matches": 441, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCAGGGTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 441, - "adjacent_bases": { - "A": 123, - "C": 76, - "G": 99, - "T": 143, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 441 - ] - } - ] - } - }, - { - "name": "CD41", - "total_matches": 2530, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AACAAGAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 2530, - "adjacent_bases": { - "A": 582, - "C": 522, - "G": 594, - "T": 832, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 2530 - ] - } - ] - } - }, - { - "name": "CD43", - "total_matches": 177, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTAGGACC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 177, - "adjacent_bases": { - "A": 54, - "C": 36, - "G": 50, - "T": 37, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 177 - ] - } - ] - } - }, - { - "name": "CD44", - "total_matches": 1655, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TATCCCTT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1655, - "adjacent_bases": { - "A": 393, - "C": 303, - "G": 475, - "T": 484, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1655 - ] - } - ] - } - }, - { - "name": "CD45", - "total_matches": 11108, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ATAGGGGA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 11108, - "adjacent_bases": { - "A": 3348, - "C": 2450, - "G": 2868, - "T": 2442, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 11108 - ] - } - ] - } - }, - { - "name": "CD45RA", - "total_matches": 1285, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GGAGCCAA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1285, - "adjacent_bases": { - "A": 363, - "C": 232, - "G": 418, - "T": 272, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1285 - ] - } - ] - } - }, - { - "name": "CD45RB", - "total_matches": 559, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCATTCTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 559, - "adjacent_bases": { - "A": 142, - "C": 99, - "G": 177, - "T": 141, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 559 - ] - } - ] - } - }, - { - "name": "CD47", - "total_matches": 1206, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GATAGGGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1206, - "adjacent_bases": { - "A": 419, - "C": 251, - "G": 313, - "T": 223, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1206 - ] - } - ] - } - }, - { - "name": "CD48", - "total_matches": 263, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GACCACTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 263, - "adjacent_bases": { - "A": 79, - "C": 59, - "G": 68, - "T": 57, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 263 - ] - } - ] - } - }, - { - "name": "CD49D", - "total_matches": 186, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACCTTGTG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 186, - "adjacent_bases": { - "A": 54, - "C": 36, - "G": 61, - "T": 35, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 186 - ] - } - ] - } - }, - { - "name": "CD5", - "total_matches": 509, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CAGATCCG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 509, - "adjacent_bases": { - "A": 115, - "C": 165, - "G": 138, - "T": 91, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 509 - ] - } - ] - } - }, - { - "name": "CD50", - "total_matches": 162, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACTCTCAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 162, - "adjacent_bases": { - "A": 50, - "C": 37, - "G": 42, - "T": 33, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 162 - ] - } - ] - } - }, - { - "name": "CD52", - "total_matches": 321, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GACTGGGA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 321, - "adjacent_bases": { - "A": 84, - "C": 50, - "G": 80, - "T": 107, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 321 - ] - } - ] - } - }, - { - "name": "CD53", - "total_matches": 149, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TGCATGTC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 149, - "adjacent_bases": { - "A": 36, - "C": 37, - "G": 32, - "T": 44, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 149 - ] - } - ] - } - }, - { - "name": "CD54", - "total_matches": 1306, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GAAAGTCA", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1306, - "adjacent_bases": { - "A": 388, - "C": 284, - "G": 357, - "T": 277, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1306 - ] - } - ] - } - }, - { - "name": "CD55", - "total_matches": 362, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CAGTCAGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 362, - "adjacent_bases": { - "A": 142, - "C": 58, - "G": 78, - "T": 84, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 362 - ] - } - ] - } - }, - { - "name": "CD59", - "total_matches": 1091, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GAGGTTAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1091, - "adjacent_bases": { - "A": 341, - "C": 207, - "G": 253, - "T": 290, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1091 - ] - } - ] - } - }, - { - "name": "CD62P", - "total_matches": 22, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ATGACTGC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 22, - "adjacent_bases": { - "A": 3, - "C": 11, - "G": 8, - "T": 0, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 22 - ] - } - ] - } - }, - { - "name": "CD64", - "total_matches": 31, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCTGAACC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 31, - "adjacent_bases": { - "A": 10, - "C": 9, - "G": 9, - "T": 3, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 31 - ] - } - ] - } - }, - { - "name": "CD69", - "total_matches": 138, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AAGCATAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 138, - "adjacent_bases": { - "A": 42, - "C": 29, - "G": 39, - "T": 28, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 138 - ] - } - ] - } - }, - { - "name": "CD7", - "total_matches": 1071, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GATTGTGC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1071, - "adjacent_bases": { - "A": 317, - "C": 235, - "G": 281, - "T": 238, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1071 - ] - } - ] - } - }, - { - "name": "CD71", - "total_matches": 29, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCACTTAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 29, - "adjacent_bases": { - "A": 9, - "C": 4, - "G": 8, - "T": 8, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 29 - ] - } - ] - } - }, - { - "name": "CD72", - "total_matches": 1351, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GGTTTACC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 1351, - "adjacent_bases": { - "A": 394, - "C": 304, - "G": 359, - "T": 294, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 1351 - ] - } - ] - } - }, - { - "name": "CD8", - "total_matches": 3632, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTCAGATG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 3632, - "adjacent_bases": { - "A": 1021, - "C": 664, - "G": 957, - "T": 990, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 3632 - ] - } - ] - } - }, - { - "name": "CD82", - "total_matches": 749, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AACCTTCC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 749, - "adjacent_bases": { - "A": 208, - "C": 115, - "G": 241, - "T": 185, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 749 - ] - } - ] - } - }, - { - "name": "CD84", - "total_matches": 108, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AGTTATCG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 108, - "adjacent_bases": { - "A": 35, - "C": 22, - "G": 21, - "T": 30, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 108 - ] - } - ] - } - }, - { - "name": "CD86", - "total_matches": 269, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCTGCTCC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 269, - "adjacent_bases": { - "A": 75, - "C": 49, - "G": 86, - "T": 59, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 269 - ] - } - ] - } - }, - { - "name": "CD9", - "total_matches": 28, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ACCAGTAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 28, - "adjacent_bases": { - "A": 10, - "C": 7, - "G": 8, - "T": 3, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 28 - ] - } - ] - } - }, - { - "name": "HLA-ABC", - "total_matches": 31124, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "ATTGGCAC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 31124, - "adjacent_bases": { - "A": 6847, - "C": 7665, - "G": 6833, - "T": 9779, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 31124 - ] - } - ] - } - }, - { - "name": "HLA-DR", - "total_matches": 5119, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CCAGCATG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 5119, - "adjacent_bases": { - "A": 1562, - "C": 894, - "G": 1738, - "T": 925, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 5119 - ] - } - ] - } - }, - { - "name": "CD328", - "total_matches": 43, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "AAGTAGCT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 43, - "adjacent_bases": { - "A": 14, - "C": 12, - "G": 8, - "T": 9, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 43 - ] - } - ] - } - }, - { - "name": "TCRVb5", - "total_matches": 114, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GCGCAACT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 114, - "adjacent_bases": { - "A": 28, - "C": 15, - "G": 28, - "T": 43, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 114 - ] - } - ] - } - }, - { - "name": "ACTB", - "total_matches": 15, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TCGTAACG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 15, - "adjacent_bases": { - "A": 1, - "C": 7, - "G": 3, - "T": 4, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 15 - ] - } - ] - } - }, - { - "name": "mIgG1", - "total_matches": 20, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "TTTGGAAG", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 20, - "adjacent_bases": { - "A": 6, - "C": 1, - "G": 3, - "T": 10, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 20 - ] - } - ] - } - }, - { - "name": "mIgG2a", - "total_matches": 134, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "CTACTCGC", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 134, - "adjacent_bases": { - "A": 38, - "C": 6, - "G": 57, - "T": 33, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 134 - ] - } - ] - } - }, - { - "name": "mIgG2b", - "total_matches": 20, - "on_reverse_complement": null, - "linked": false, - "five_prime_end": null, - "three_prime_end": { - "type": "anchored_three_prime", - "sequence": "GTATCGGT", - "error_rate": 0.1, - "indels": false, - "error_lengths": null, - "matches": 20, - "adjacent_bases": { - "A": 3, - "C": 4, - "G": 1, - "T": 12, - "": 0 - }, - "dominant_adjacent_base": null, - "trimmed_lengths": [ - { - "len": 8, - "expect": 1.5, - "counts": [ - 20 - ] - } - ] - } - } - ], - "adapters_read2": null, - "poly_a_trimmed_read1": null, - "poly_a_trimmed_read2": null, - "sample_id": "sample01_1k_pbmcs_scsp_v1_immunology1" - } - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T13:31:36.52595872" + "timestamp": "2025-11-07T10:15:16.541522671" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test index 9e066b1e..aee0824d 100644 --- a/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test @@ -38,6 +38,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -50,19 +51,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.edgelist, - process.out.report_json, - process.out.metadata - ).match() - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator graph") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test.snap index 097a8118..e3635b0b 100644 --- a/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/graph/tests/main.nf.test.snap @@ -1,45 +1,27 @@ { "Test MPX graph - SCSP v1 | Immunology-I": { "content": [ + 1, [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.edgelist.parquet:md5,de66e693aef8db80870b227692ed9bee" - ] - ], - [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,42f85a10b4bda24de42f293d485e806e" - ] + "pixelator", + "pixelator/graph", + "pixelator/graph/sample01_1k_pbmcs_scsp_v1_immunology1.discarded_edgelist.parquet", + "pixelator/graph/sample01_1k_pbmcs_scsp_v1_immunology1.edgelist.parquet", + "pixelator/graph/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/graph/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-graph.log" ], [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,19d11c140f3cacde4f9dd68ddd8a7721" - ] + "versions.yml:md5,2ce348f9f12c9cff1a7a9a2e2e0c8fbe" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-06T15:13:15.220381752" + "timestamp": "2025-11-07T10:16:16.446233938" }, "Test MPX graph - stub": { "content": [ diff --git a/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test index 0b09efe0..f391332a 100644 --- a/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test @@ -42,6 +42,7 @@ nextflow_process { save_all = true layout_algorithm = "fruchterman_reingold_3d" skip_layout = false + outdir = "$outputDir" } process { """ @@ -54,27 +55,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.report_json, - process.out.metadata - ).match() - }, - { - with (process.out.dataset.get(0)) { - assert path(get(1)).zip.extract("adata.h5ad").exists() - assert path(get(1)).zip.extract("edgelist.parquet").exists() - assert snapshot( - path(get(1)).zip.extract("metadata.json") - ).match("pxl") - } - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator layout") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test.snap index 76e38cac..8e5363bd 100644 --- a/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/layout/tests/main.nf.test.snap @@ -1,44 +1,26 @@ { - "pxl": { - "content": [ - "metadata.json:md5,f2fb857ccf3ee1b600c6903b7406444d" - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.3" - }, - "timestamp": "2025-01-14T13:53:40.923684802" - }, "Test MPX layout - SCSP v1 | Immunology-I": { "content": [ + 1, [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,479afd25dcacc45540d81d1d8b7b5346" - ] + "pixelator", + "pixelator/layout", + "pixelator/layout/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/layout/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-layout.log", + "pixelator/sample01_1k_pbmcs_scsp_v1_immunology1.layout.dataset.pxl" ], [ - [ - { - "id": "sample01_1k_pbmcs_scsp_v1_immunology1", - "design": "D21", - "panel": "human-sc-immunology-spatial-proteomics-1", - "technology": "mpx" - }, - "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,39056acdce8c39c1a3f4c91b642d7b9a" - ] + "versions.yml:md5,9aaf581b41217ea43db5731b1ab5ecf2" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-06T15:14:12.951779201" + "timestamp": "2025-11-07T10:17:23.257807724" }, "Test MPX layout - stub": { "content": [ diff --git a/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test index b1b2964c..23791afb 100644 --- a/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test @@ -36,8 +36,9 @@ nextflow_process { test("Test MPX qc - SCSP v1 | Immunology-I") { when { - params { + params { save_all = true + outdir = "$outputDir" } process { """ @@ -52,35 +53,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.adapterqc_processed, - process.out.preqc_processed, - process.out.adapterqc_failed, - process.out.preqc_failed, - process.out.adapterqc_report_json, - process.out.preqc_report_json, - process.out.adapterqc_metadata, - process.out.preqc_metadata, - process.out.versions - ) - }, - { - with(process.out.preqc_report_html) { - assert path(get(0).get(1)).exists() - } - }, - { - with (process.out.preqc_log) { - assert path(get(0).get(1)).readLines().any { it.contains("Finished pixelator preqc") } - } - }, - { - with (process.out.adapterqc_log) { - assert path(get(0).get(1)).readLines().any { it.contains("Finished pixelator adapterqc") } - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test.snap index 655722e6..4b605c47 100644 --- a/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/qc/tests/main.nf.test.snap @@ -1,4 +1,35 @@ { + "Test MPX qc - SCSP v1 | Immunology-I": { + "content": [ + 1, + [ + "pixelator", + "pixelator/adapterqc", + "pixelator/adapterqc/sample01_1k_pbmcs_scsp_v1_immunology1.failed.fastq.gz", + "pixelator/adapterqc/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/adapterqc/sample01_1k_pbmcs_scsp_v1_immunology1.processed.fastq.gz", + "pixelator/adapterqc/sample01_1k_pbmcs_scsp_v1_immunology1.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-adapterqc.log", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-preqc.log", + "pixelator/preqc", + "pixelator/preqc/sample01_1k_pbmcs_scsp_v1_immunology1.failed.fastq.gz", + "pixelator/preqc/sample01_1k_pbmcs_scsp_v1_immunology1.meta.json", + "pixelator/preqc/sample01_1k_pbmcs_scsp_v1_immunology1.processed.fastq.gz", + "pixelator/preqc/sample01_1k_pbmcs_scsp_v1_immunology1.qc-report.html", + "pixelator/preqc/sample01_1k_pbmcs_scsp_v1_immunology1.report.json" + ], + [ + "versions.yml:md5,2c93dd7d724759bc9c3e339548090edb" + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T10:18:14.071438596" + }, "Test MPX qc - stub": { "content": [ { diff --git a/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test b/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test index ccd8fab0..3c5687ec 100644 --- a/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test @@ -80,6 +80,7 @@ nextflow_process { when { params { save_all = true + outdir = "$outputDir" } process { """ @@ -137,18 +138,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, + { assert workflow.success }, { assert snapshot( - process.out.report, - process.out.versions - ).match() - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().any { it.contains("Finished pixelator report") } - } - } + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test.snap index 5c409e92..1d7536cf 100644 --- a/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-mpx/report/tests/main.nf.test.snap @@ -62,7 +62,14 @@ }, "Test MPX report - SCSP v1 | Immunology-I": { "content": [ - null, + 1, + [ + "pixelator", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-report.log", + "pixelator/sample01_1k_pbmcs_scsp_v1_immunology1.qc-report.html" + ], [ "versions.yml:md5,2a9fd8a87a02fbd4b9c0d087aee3643b" ] @@ -71,6 +78,6 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:33:24.598297308" + "timestamp": "2025-11-07T10:18:52.832542041" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test index 6e23f95d..836428c1 100644 --- a/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_amplicon" - test("PNA amplicon - small test") { + test("PNA amplicon - stub") { + + options "-stub" + when { process { """ @@ -26,14 +29,40 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.amplicon).match("amplicon") }, - { assert snapshot(process.out.report_json).match("report_json") }, - { assert snapshot(process.out.metadata_json).match("metadata_json") }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator amplicon") - } - }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA amplicon - small test") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/fastq/PNA055_Sample07_filtered_S7_R1_001.fastq.gz', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/fastq/PNA055_Sample07_filtered_S7_R2_001.fastq.gz', checkIfExists: true) + ] + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test.snap index b2ea2bef..bb3613a7 100644 --- a/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/amplicon/tests/main.nf.test.snap @@ -1,62 +1,129 @@ { - "amplicon": { + "PNA amplicon - stub": { "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.amplicon.fq.zst:md5,719f000b22bd9af91ffce0ec3439be83" + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.amplicon.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-amplicon.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,d23073ad77ce0bb0cc49b84778413705" + ], + "amplicon": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.amplicon.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-amplicon.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,d23073ad77ce0bb0cc49b84778413705" ] - ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:33:46.990532595" + "timestamp": "2025-11-07T10:10:41.063592186" }, - "report_json": { + "PNA amplicon - small test": { "content": [ + 1, [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.report.json:md5,57884d3982d6b3b9827ea89001bfcfb0" - ] + "pixelator", + "pixelator/amplicon", + "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log" + ], + [ + "versions.yml:md5,d23073ad77ce0bb0cc49b84778413705" ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:33:47.054676031" - }, - "metadata_json": { - "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.meta.json:md5,59094765101eb355c10938eff88a24e1" - ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" - }, - "timestamp": "2025-05-22T17:25:27.236295681" + "timestamp": "2025-11-07T10:11:18.149809654" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test index 97a17121..b388ac5f 100644 --- a/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_analysis" - test("PNA analysis - small test") { + test("PNA analysis - stub") { + + options "-stub" + when { process { """ @@ -23,18 +26,39 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.metadata_json).match("metadata_json") }, - { - with (process.out.report_json) { - assert snapshot(path(get(0).get(1)).readLines()[0..5]).match("report_json") } - }, - { assert snapshot(process.out.versions).match("versions") }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator analysis") - } - }, + { assert snapshot(process.out).match() } ) } } + + test("PNA analysis - small test") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/graph/PNA055_Sample07_filtered_S7.graph.pxl', checkIfExists: true), + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } + ) + + } + } } diff --git a/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test.snap index cbea45e7..2a8cefb6 100644 --- a/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/analysis/tests/main.nf.test.snap @@ -1,6 +1,16 @@ { - "versions": { + "PNA analysis - small test": { "content": [ + 1, + [ + "pixelator", + "pixelator/analysis", + "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log" + ], [ "versions.yml:md5,ca60633f194ab0e5f36e097c4b1e0569" ] @@ -9,43 +19,141 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:34:59.516988966" - }, - "report_json": { - "content": [ - [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\",", - " \"report_type\": \"analysis\",", - " \"proximity\": {},", - " \"k_cores\": {" - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" - }, - "timestamp": "2025-05-22T17:31:47.907028898" + "timestamp": "2025-11-07T10:14:41.365017056" }, - "metadata_json": { + "PNA analysis - stub": { "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.meta.json:md5,2a6eaa66228775591525f74416f0b87f" + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "4": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-analysis.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,ca60633f194ab0e5f36e097c4b1e0569" + ], + "all_results": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-analysis.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pixelfile": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ca60633f194ab0e5f36e097c4b1e0569" ] - ] + } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-22T17:31:47.884573212" + "timestamp": "2025-11-07T10:11:35.227708512" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test index 91d17afc..a1a627ac 100644 --- a/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_collapse" - test("PNA collapse - small test - single file") { + test("PNA collapse - stub") { + + options "-stub" + when { process { """ @@ -28,29 +31,51 @@ nextflow_process { then { assertAll( { assert process.success }, - { - with(process.out.collapsed) { - assert get(0).get(1).every { file(it).exists() } - } - }, - { assert snapshot(process.out.metadata_json).match("metadata") }, - { assert snapshot(process.out.versions).match("versions") }, - { - with(process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator collapse") - } - }, - { - with(process.out.report_json) { - assert snapshot(path(get(0).get(1).get(0)).readLines()[0..2]).match("header") - } - } + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA collapse - small test - single file") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/demux/PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet', checkIfExists: true) + ], + [], // panel_file + 'proxiome-immuno-155', // panel + 'pna-2' // design + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } test("PNA collapse - small test - multiple files") { when { + params { + outdir = "$outputDir" + } process { """ input[0] = [ @@ -68,25 +93,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, - { - with(process.out.collapsed) { - assert get(0).get(1).every { file(it).exists() } - } - }, - { assert snapshot(process.out.metadata_json).match("multi_metadata") }, - { assert snapshot(process.out.versions).match("multi_versions") }, - { - with(process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator collapse") - } - }, - { - with(process.out.report_json) { - assert snapshot(path(get(0).get(1).get(0)).readLines()[0..2]).match("multi_header") - } - } + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test.snap index ed660f0f..21a956e1 100644 --- a/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/collapse/tests/main.nf.test.snap @@ -1,63 +1,16 @@ { - "multi_metadata": { + "PNA collapse - small test - single file": { "content": [ + 1, [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - [ - "PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json:md5,ef6d3db8cfb46d551bc6fb160f93d44a", - "PNA055_Sample07_filtered_S7.collapse.m1.part_001.meta.json:md5,ef6d3db8cfb46d551bc6fb160f93d44a" - ] - ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.5" - }, - "timestamp": "2025-03-20T11:11:51.603558511" - }, - "metadata": { - "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json:md5,ef6d3db8cfb46d551bc6fb160f93d44a" - ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.5" - }, - "timestamp": "2025-03-20T09:39:49.273740685" - }, - "multi_header": { - "content": [ - [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\"," - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.5" - }, - "timestamp": "2025-03-19T15:58:03.194867001" - }, - "versions": { - "content": [ + "pixelator", + "pixelator/collapse", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-collapse.log" + ], [ "versions.yml:md5,462d418a2ce35a965e966e432ae04ba1" ] @@ -66,32 +19,143 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:35:15.724385618" + "timestamp": "2025-11-07T10:15:36.444308344" }, - "multi_versions": { + "PNA collapse - stub": { "content": [ - [ - "versions.yml:md5,462d418a2ce35a965e966e432ae04ba1" - ] + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.m1.part_000.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.m1.part_000.pixelator-collapse.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,462d418a2ce35a965e966e432ae04ba1" + ], + "collapsed": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.m1.part_000.pixelator-collapse.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.m1.part_000.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,462d418a2ce35a965e966e432ae04ba1" + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:35:33.889709909" + "timestamp": "2025-11-07T10:15:03.206390933" }, - "header": { + "PNA collapse - small test - multiple files": { "content": [ + 1, + [ + "pixelator", + "pixelator/collapse", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-collapse.log" + ], [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\"," + "versions.yml:md5,462d418a2ce35a965e966e432ae04ba1" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-03-20T09:39:49.312268752" + "timestamp": "2025-11-07T10:25:13.540232073" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test index be2098c9..a41eee85 100644 --- a/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test @@ -10,7 +10,10 @@ nextflow_process { tag "pixelator/single_cell_pna_combine_collapse" - test("PNA combine collapse - multiple files") { + test("PNA combine collapse - stub") { + + options "-stub" + when { process { """ @@ -37,29 +40,49 @@ nextflow_process { then { assertAll( { assert process.success }, - { - with(process.out.parquet) { - assert path(get(0).get(1)).exists() - } - }, - { - // Filter out execution env related options from cli.options map - with (process.out.metadata_json) { - def metaContent = path(get(0).get(1)).json - metaContent["cli"]["options"].removeAll { it.key in ["--threads", "--memory"] } - assert snapshot(metaContent.toString()).match("meta_json") - } - }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA combine collapse - multiple files") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.parquet', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.parquet', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.parquet', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_001.parquet', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.report.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_001.report.json', checkIfExists: true) + ] + ] + """ + } + } + + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, { assert snapshot( - process.out.report_json, - process.out.versions - ).match() - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator combine-collapse") - } - }, + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test.snap index 9871ba15..2ef4cdcc 100644 --- a/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/combine_collapse/tests/main.nf.test.snap @@ -1,16 +1,15 @@ { "PNA combine collapse - multiple files": { "content": [ + 1, [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.report.json:md5,f072efda6e9a17670d903151390b4c40" - ] + "pixelator", + "pixelator/collapse", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", + "pixelator/collapse/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log" ], [ "versions.yml:md5,fdd993fc8aaed7c5185c5d6ab77e479f" @@ -20,16 +19,111 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T14:31:30.520706186" + "timestamp": "2025-11-07T10:17:15.250923864" }, - "meta_json": { + "PNA combine collapse - stub": { "content": [ - "{cli={command=pixelator single-cell-pna combine-collapse, options={--parquet=[parquet/PNA055_Sample07_filtered_S7.collapse.m1.part_000.parquet, parquet/PNA055_Sample07_filtered_S7.collapse.m1.part_001.parquet, parquet/PNA055_Sample07_filtered_S7.collapse.m2.part_000.parquet, parquet/PNA055_Sample07_filtered_S7.collapse.m2.part_001.parquet], --report=[reports/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json, reports/PNA055_Sample07_filtered_S7.collapse.m1.part_001.report.json, reports/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json, reports/PNA055_Sample07_filtered_S7.collapse.m2.part_001.report.json], --parquet-pattern=null, --report-pattern=null, --output=.}}}" + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.collapse.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.collapse.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,fdd993fc8aaed7c5185c5d6ab77e479f" + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.collapse.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "parquet": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.collapse.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,fdd993fc8aaed7c5185c5d6ab77e479f" + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T14:31:30.509966414" + "timestamp": "2025-11-07T10:16:45.792999377" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test index 6613d385..d1b15310 100644 --- a/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_demux" - test("PNA demux - small test") { + test("PNA demux - stub") { + + options "-stub" + when { params { skip_experiment_summary = true @@ -28,31 +31,40 @@ nextflow_process { then { assertAll( { assert process.success }, - { - with(process.out.demuxed) { - assert get(0).get(1).each { file(it).exists() } - } - }, - { assert snapshot(process.out.passed).match("passed") }, - { assert snapshot(process.out.failed).match("failed") }, - { - with (process.out.report_json) { - assert snapshot(path(get(0).get(1)).readLines()[0..3]).match("report_json") - } - }, - { - // Filter out execution env related options from cli.options map - with (process.out.metadata_json) { - def metaContent = path(get(0).get(1)).json - metaContent["cli"]["options"].removeAll { it.key in ["--threads", "--memory"] } - assert snapshot(metaContent.toString()).match("meta_json") - } - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator demux") - } - }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA demux - small test") { + when { + params { + skip_experiment_summary = true + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/amplicon/PNA055_Sample07_filtered_S7.amplicon.fq.zst', checkIfExists: true), + [], + 'proxiome-immuno-155', + 'pna-2' + ] + """ + } + } + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } @@ -63,6 +75,7 @@ nextflow_process { when { params { skip_experiment_summary = true + outdir = "$outputDir" } process { """ @@ -78,33 +91,16 @@ nextflow_process { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert process.success }, - { - with(process.out.demuxed) { - assert get(0).get(1).each { file(it).exists() } - } - }, - { assert snapshot(process.out.passed).match("multi_passed") }, - { assert snapshot(process.out.failed).match("multi_failed") }, - { - with (process.out.report_json) { - assert snapshot(path(get(0).get(1)).readLines()[0..3]).match("multi_report_json") - } - }, - { - // Filter out execution env related options from cli.options map - with (process.out.metadata_json) { - def metaContent = path(get(0).get(1)).json - metaContent["cli"]["options"].removeAll { it.key in ["--threads", "--memory"] } - assert snapshot(metaContent.toString()).match("multi_meta_json") - } - }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator demux") - } - }, + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test.snap index 3b5668b9..02713c21 100644 --- a/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/demux/tests/main.nf.test.snap @@ -1,132 +1,201 @@ { - "multi_meta_json": { - "content": [ - "{cli={command=pixelator single-cell-pna demux, options={--mismatches=1, --output-chunk-reads=40000, --output-max-chunks=8, --strategy=independent, --design=pna-2, --panel=proxiome-immuno-155, --output=.}}}" - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T14:32:56.130489586" - }, - "multi_passed": { - "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.demux.passed.fq.zst:md5,d6519e42f6bdea8b443e4d9ab20e85bd" - ] - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T14:32:55.848329932" - }, - "report_json": { + "PNA demux - small test": { "content": [ + 1, [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\",", - " \"report_type\": \"demux\"," - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T14:32:12.020890319" - }, - "multi_failed": { - "content": [ + "pixelator", + "pixelator/demux", + "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log" + ], [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.demux.failed.fq.zst:md5,c5dbf4ee3c3ace5c3af6cff3eda2d9da" - ] + "versions.yml:md5,889a3c669eb77bb713c3a6a617041e29" ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T14:32:55.914745339" + "timestamp": "2025-11-07T10:18:44.675088184" }, - "passed": { + "PNA demux - stub": { "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.demux.passed.fq.zst:md5,d6519e42f6bdea8b443e4d9ab20e85bd" + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.demux.m2.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.passed.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.failed.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-demux.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + "versions.yml:md5,889a3c669eb77bb713c3a6a617041e29" + ], + "demuxed": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.demux.m2.part_000.parquet:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "failed": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.failed.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-demux.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "passed": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.demux.passed.fq.zst:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,889a3c669eb77bb713c3a6a617041e29" ] - ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T14:32:11.940422055" + "timestamp": "2025-11-07T10:17:33.8591764" }, - "failed": { + "PNA demux - multiple chunks": { "content": [ + 1, [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.demux.failed.fq.zst:md5,c5dbf4ee3c3ace5c3af6cff3eda2d9da" - ] - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T14:32:11.944615428" - }, - "multi_report_json": { - "content": [ + "pixelator", + "pixelator/demux", + "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log" + ], [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\",", - " \"report_type\": \"demux\"," + "versions.yml:md5,889a3c669eb77bb713c3a6a617041e29" ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T14:32:56.031891664" - }, - "meta_json": { - "content": [ - "{cli={command=pixelator single-cell-pna demux, options={--mismatches=1, --output-chunk-reads=50000000, --output-max-chunks=8, --strategy=independent, --design=pna-2, --panel=proxiome-immuno-155, --output=.}}}" - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-10-31T14:32:12.08634667" + "timestamp": "2025-11-07T10:19:31.607103546" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test index 152571a1..1f859d19 100644 --- a/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test @@ -8,7 +8,9 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_denoise" - test("PNA denoise - small test") { + test("PNA denoise - stub") { + + options "-stub" when { process { """ @@ -23,17 +25,37 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.metadata_json).match("metadata_json") }, - { - with (process.out.report_json) { - assert snapshot(path(get(0).get(1)).readLines()[0..5]).match("report_json") } - }, - { assert snapshot(process.out.versions).match("versions") }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator denoise") - } - }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA denoise - small test") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/graph/PNA055_Sample07_filtered_S7.graph.pxl', checkIfExists: true), + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test.snap index 1c786630..e1ecccac 100644 --- a/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/denoise/tests/main.nf.test.snap @@ -1,6 +1,16 @@ { - "versions": { + "PNA denoise - small test": { "content": [ + 1, + [ + "pixelator", + "pixelator/denoise", + "pixelator/denoise/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/denoise/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log" + ], [ "versions.yml:md5,29155ee86d4024081bbb00a745aee4c7" ] @@ -9,43 +19,141 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:37:34.487295571" - }, - "report_json": { - "content": [ - [ - "{", - " \"sample_id\": \"PNA055_Sample07_filtered_S7\",", - " \"product_id\": \"single-cell-pna\",", - " \"report_type\": \"denoise\",", - " \"number_of_umis_removed\": 599,", - " \"ratio_of_umis_removed\": 0.019271604143877484," - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" - }, - "timestamp": "2025-06-27T14:53:31.61894306" + "timestamp": "2025-11-07T10:20:03.242447423" }, - "metadata_json": { + "PNA denoise - stub": { "content": [ - [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.meta.json:md5,d0728a1efc25964039497c7bc22cdc35" + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "4": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-denoise.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,29155ee86d4024081bbb00a745aee4c7" + ], + "all_results": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-denoise.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pixelfile": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,29155ee86d4024081bbb00a745aee4c7" ] - ] + } ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-06-27T14:53:31.58914569" + "timestamp": "2025-11-07T10:19:41.976401336" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test index d6824f66..69c65630 100644 --- a/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_graph" - test("PNA graph - small test") { + test("PNA graph - stub") { + + options "-stub" + when { params { pna_graph_component_size_min_threshold = 100 @@ -29,14 +32,41 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.metadata_json).match("metadata_json") }, - { assert snapshot(process.out.report_json).match("report_json") }, - { assert snapshot(process.out.versions).match("versions") }, - { - with (process.out.log) { - assert path(get(0).get(1)).readLines().last().contains("Finished pixelator graph") - } - }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA graph - small test") { + when { + params { + pna_graph_component_size_min_threshold = 100 + outdir = "$outputDir" + } + + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.collapse.parquet', checkIfExists: true), + [], + 'proxiome-immuno-155', + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test.snap index ba7772eb..c2104456 100644 --- a/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/graph/tests/main.nf.test.snap @@ -1,54 +1,159 @@ { - "versions": { + "PNA graph - stub": { "content": [ - [ - "versions.yml:md5,9eb7bc97c868543db572401d7f6212fa" - ] + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-graph.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,9eb7bc97c868543db572401d7f6212fa" + ], + "all_results": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + [ + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-graph.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pixelfile": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,9eb7bc97c868543db572401d7f6212fa" + ] + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:37:48.075295722" + "timestamp": "2025-11-07T10:20:14.550301486" }, - "report_json": { + "PNA graph - small test": { "content": [ + 1, [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.report.json:md5,8c7cfca24198dc8d0dd2fd9551c08b97" - ] - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" - }, - "timestamp": "2025-06-24T17:10:53.237758536" - }, - "metadata_json": { - "content": [ + "pixelator", + "pixelator/graph", + "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log" + ], [ - [ - { - "id": "PNA055_Sample07_filtered_S7", - "design": "pna-2", - "panel": "proxiome-immuno-155", - "technology": "pna" - }, - "PNA055_Sample07_filtered_S7.meta.json:md5,a5fb5308aa82dd9b96d36defdea5e6a8" - ] + "versions.yml:md5,9eb7bc97c868543db572401d7f6212fa" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-05-22T17:35:26.895238955" + "timestamp": "2025-11-07T10:20:33.153336854" } } \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test new file mode 100644 index 00000000..b754b664 --- /dev/null +++ b/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test @@ -0,0 +1,72 @@ +nextflow_process { + + name "Test Process PIXELATOR_PNA_LAYOUT" + script "../main.nf" + process "PIXELATOR_PNA_LAYOUT" + tag "modules" + tag "pixelator" + tag "pixelator/mpx" + tag "pixelator/single_cell_mpx_layout" + + + test("Test PNA layout - stub") { + + options "-stub" + + when { + params { + save_all = true + layout_algorithm = "fruchterman_reingold_3d" + skip_layout = false + } + process { + """ + input[0] = [ + [ id:'sample01_1k_pbmcs_scsp_v1_immunology1', design: 'D21', panel:'human-sc-immunology-spatial-proteomics-1', technology:'mpx' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/analysis/PNA055_Sample07_filtered_S7.analysis.pxl', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Test PNA layout - small test") { + when { + params { + save_all = true + layout_algorithm = "fruchterman_reingold_3d" + skip_layout = false + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'sample01_1k_pbmcs_scsp_v1_immunology1', design: 'D21', panel:'human-sc-immunology-spatial-proteomics-1', technology:'mpx' ], + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/analysis/PNA055_Sample07_filtered_S7.analysis.pxl', checkIfExists: true) + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } + ) + } + } +} diff --git a/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test.snap new file mode 100644 index 00000000..ba68efe3 --- /dev/null +++ b/modules/local/pixelator/single-cell-pna/layout/tests/main.nf.test.snap @@ -0,0 +1,160 @@ +{ + "Test PNA layout - small test": { + "content": [ + 1, + [ + "pixelator", + "pixelator/PNA055_Sample07_filtered_S7.layout.pxl", + "pixelator/layout", + "pixelator/layout/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/layout/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-layout.log" + ], + [ + "versions.yml:md5,e84e8dd4dae447e3ce5f424e81e54fdc" + ] + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T10:21:16.437766273" + }, + "Test PNA layout - stub": { + "content": [ + { + "0": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + [ + "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "sample01_1k_pbmcs_scsp_v1_immunology1.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "4": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-layout.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,e84e8dd4dae447e3ce5f424e81e54fdc" + ], + "all_results": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + [ + "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "sample01_1k_pbmcs_scsp_v1_immunology1.pxl:md5,d41d8cd98f00b204e9800998ecf8427e", + "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "log": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-layout.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "metadata_json": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.meta.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "pixelfile": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.pxl:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report_json": [ + [ + { + "id": "sample01_1k_pbmcs_scsp_v1_immunology1", + "design": "D21", + "panel": "human-sc-immunology-spatial-proteomics-1", + "technology": "mpx" + }, + "sample01_1k_pbmcs_scsp_v1_immunology1.report.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,e84e8dd4dae447e3ce5f424e81e54fdc" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T10:20:46.091141717" + } +} \ No newline at end of file diff --git a/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test b/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test index 078f2094..e7ace1df 100644 --- a/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test +++ b/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test @@ -8,7 +8,10 @@ nextflow_process { tag "pixelator/pna" tag "pixelator/single_cell_pna_report" - test("PNA report - small test") { + test("PNA report - stub") { + + options "-stub" + when { process { """ @@ -53,15 +56,67 @@ nextflow_process { then { assertAll( { assert process.success }, - { - with(process.out.report) { - with(get(0)) { - assert get(1).endsWith("qc-report.html") - assert file(get(1)).exists() - } - } - }, - { assert snapshot(process.out.versions).match("versions") }, + { assert snapshot(process.out).match() } + ) + } + } + + test("PNA report - small test") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'PNA055_Sample07_filtered_S7', design:'pna-2', panel:'proxiome-immuno-155', technology:'pna' ], + [], + 'proxiome-immuno-155', + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/amplicon/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/amplicon/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/demux/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/demux/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/collapse/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/graph/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/graph/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/graph/PNA055_Sample07_filtered_S7.graph.pxl', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/denoise/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/denoise/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/analysis/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/analysis/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ], + [ + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/layout/PNA055_Sample07_filtered_S7.meta.json', checkIfExists: true), + file(params.pipelines_testdata_base_path + 'testdata/pna/modules/layout/PNA055_Sample07_filtered_S7.report.json', checkIfExists: true), + ] + ] + """ + } + } + + then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assertAll( + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + process.out.versions, + ).match() } ) } } diff --git a/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test.snap b/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test.snap index a8f44504..187df0a7 100644 --- a/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test.snap +++ b/modules/local/pixelator/single-cell-pna/report/tests/main.nf.test.snap @@ -1,6 +1,14 @@ { - "versions": { + "PNA report - small test": { "content": [ + 1, + [ + "pixelator", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", + "pixelator/report", + "pixelator/report/PNA055_Sample07_filtered_S7.qc-report.html" + ], [ "versions.yml:md5,c3116fd7efdf36b9bb772996a6abfbdd" ] @@ -9,6 +17,67 @@ "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:38:13.165882875" + "timestamp": "2025-11-07T10:21:53.636893036" + }, + "PNA report - stub": { + "content": [ + { + "0": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-report.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,c3116fd7efdf36b9bb772996a6abfbdd" + ], + "log": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.pixelator-report.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "report": [ + [ + { + "id": "PNA055_Sample07_filtered_S7", + "design": "pna-2", + "panel": "proxiome-immuno-155", + "technology": "pna" + }, + "PNA055_Sample07_filtered_S7.report.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c3116fd7efdf36b9bb772996a6abfbdd" + ] + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T10:21:28.554593323" } } \ No newline at end of file diff --git a/subworkflows/local/generate_reports/tests/main.nf.test b/subworkflows/local/generate_reports/tests/main.nf.test index e41ae29c..cccd8dd8 100644 --- a/subworkflows/local/generate_reports/tests/main.nf.test +++ b/subworkflows/local/generate_reports/tests/main.nf.test @@ -102,6 +102,7 @@ nextflow_workflow { when { params { save_all = true + outdir = "$outputDir" } workflow { """ @@ -186,14 +187,16 @@ nextflow_workflow { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( - { assert workflow.success}, - { assert snapshot(workflow.out.versions).match() }, - { - with (workflow.out.pixelator_reports) { - assert path(get(0).get(1)).exists() - } - } + { assert workflow.success }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), + ).match() } ) } } diff --git a/subworkflows/local/generate_reports/tests/main.nf.test.snap b/subworkflows/local/generate_reports/tests/main.nf.test.snap index 6dd784a9..6dde5693 100644 --- a/subworkflows/local/generate_reports/tests/main.nf.test.snap +++ b/subworkflows/local/generate_reports/tests/main.nf.test.snap @@ -1,15 +1,21 @@ { "Test MPX Generate reports - SCSP v1 | Immunology-I": { "content": [ + 1, [ - "versions.yml:md5,a7151b6c0424376e5821c074ad03bdf4" - ] + "pixelator", + "pixelator/logs", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1", + "pixelator/logs/sample01_1k_pbmcs_scsp_v1_immunology1/sample01_1k_pbmcs_scsp_v1_immunology1.pixelator-report.log", + "pixelator/sample01_1k_pbmcs_scsp_v1_immunology1.qc-report.html" + ], + null ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:38:44.106466875" + "timestamp": "2025-11-07T10:11:08.957283626" }, "Test MPX Generate reports - stub": { "content": [ diff --git a/subworkflows/local/pna/tests/main.nf.test b/subworkflows/local/pna/tests/main.nf.test index 838d27e9..dc082145 100644 --- a/subworkflows/local/pna/tests/main.nf.test +++ b/subworkflows/local/pna/tests/main.nf.test @@ -15,6 +15,7 @@ nextflow_workflow { params { pna_graph_component_size_min_threshold = 100 skip_experiment_summary = true + outdir = "$outputDir" } workflow { @@ -33,9 +34,16 @@ nextflow_workflow { } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) assertAll( { assert workflow.success }, - { assert snapshot(workflow.out.versions).match("versions") }, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name, + removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), + ).match() } ) } } diff --git a/subworkflows/local/pna/tests/main.nf.test.snap b/subworkflows/local/pna/tests/main.nf.test.snap index fdb5c581..41693def 100644 --- a/subworkflows/local/pna/tests/main.nf.test.snap +++ b/subworkflows/local/pna/tests/main.nf.test.snap @@ -1,22 +1,80 @@ { - "versions": { + "Default parameters [design: pna-2, panel: proxiome-immuno-155]": { "content": [ + 22, [ - "versions.yml:md5,07827affe5e02f3bf5876bc6a143322b", - "versions.yml:md5,0eddaffb752d61e6f84fd9389503db06", - "versions.yml:md5,2a235d854b0de2c001022e3a0b75db36", - "versions.yml:md5,5979e7443d33df2bc1d5535048d69fe4", - "versions.yml:md5,5c82cefeb09e4e26929dc38721e5ce05", - "versions.yml:md5,6b2ef1c32dd32cd7793037872d8226bf", - "versions.yml:md5,90bb5dfe9c82b2e36ed0559d73de90bd", - "versions.yml:md5,ba050a673a094bc584a79090768b336b", - "versions.yml:md5,d885a07d6905ff5cf5fb2fd7c19a6cc1" - ] + "pixelator", + "pixelator/PNA055_Sample07_filtered_S7.layout.pxl", + "pixelator/amplicon", + "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", + "pixelator/analysis", + "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", + "pixelator/collapse", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_001.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_002.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_002.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_003.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_003.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_004.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_004.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_005.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_005.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_006.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_006.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_001.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_001.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_002.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_002.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_003.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_003.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_004.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_004.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_005.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_005.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_006.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_006.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", + "pixelator/collapse/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", + "pixelator/demux", + "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", + "pixelator/denoise", + "pixelator/denoise/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/denoise/PNA055_Sample07_filtered_S7.report.json", + "pixelator/graph", + "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", + "pixelator/layout", + "pixelator/layout/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/layout/PNA055_Sample07_filtered_S7.report.json", + "pixelator/logs", + "pixelator/logs/PNA055_Sample07_filtered_S7", + "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log", + "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-collapse.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-layout.log", + "pixelator/report", + "pixelator/report/PNA055_Sample07_filtered_S7.qc-report.html" + ], + null ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-10-31T13:42:12.626709109" + "timestamp": "2025-11-07T10:18:28.479699055" } } \ No newline at end of file diff --git a/tests/default_mpx.nf.test.snap b/tests/default_mpx.nf.test.snap deleted file mode 100644 index 387e507c..00000000 --- a/tests/default_mpx.nf.test.snap +++ /dev/null @@ -1,152 +0,0 @@ -{ - "Params: default - stub": { - "content": [ - 10, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/adapterqc", - "pixelator/adapterqc/sample01.meta.json", - "pixelator/adapterqc/sample01.report.json", - "pixelator/amplicon", - "pixelator/amplicon/sample01.meta.json", - "pixelator/amplicon/sample01.report.json", - "pixelator/analysis", - "pixelator/analysis/sample01.meta.json", - "pixelator/analysis/sample01.report.json", - "pixelator/annotate", - "pixelator/annotate/sample01.meta.json", - "pixelator/annotate/sample01.report.json", - "pixelator/collapse", - "pixelator/collapse/sample01.meta.json", - "pixelator/collapse/sample01.report.json", - "pixelator/demux", - "pixelator/demux/sample01.meta.json", - "pixelator/demux/sample01.report.json", - "pixelator/graph", - "pixelator/graph/sample01.meta.json", - "pixelator/graph/sample01.report.json", - "pixelator/layout", - "pixelator/layout/sample01.meta.json", - "pixelator/layout/sample01.report.json", - "pixelator/logs", - "pixelator/logs/sample01", - "pixelator/logs/sample01/sample01.pixelator-adapterqc.log", - "pixelator/logs/sample01/sample01.pixelator-amplicon.log", - "pixelator/logs/sample01/sample01.pixelator-analysis.log", - "pixelator/logs/sample01/sample01.pixelator-annotate.log", - "pixelator/logs/sample01/sample01.pixelator-collapse.log", - "pixelator/logs/sample01/sample01.pixelator-demux.log", - "pixelator/logs/sample01/sample01.pixelator-graph.log", - "pixelator/logs/sample01/sample01.pixelator-layout.log", - "pixelator/logs/sample01/sample01.pixelator-preqc.log", - "pixelator/logs/sample01/sample01.pixelator-report.log", - "pixelator/preqc", - "pixelator/preqc/sample01.meta.json", - "pixelator/preqc/sample01.report.json", - "pixelator/sample01.html", - "pixelator/sample01.layout.dataset.pxl" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-03T13:31:15.196891073" - }, - "Params: default": { - "content": [ - 10, - { - "PIXELATOR_AMPLICON": { - "pixelator": "0.22.1" - }, - "PIXELATOR_ANALYSIS": { - "pixelator": "0.22.1" - }, - "PIXELATOR_ANNOTATE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_COLLAPSE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_DEMUX": { - "pixelator": "0.22.1" - }, - "PIXELATOR_GRAPH": { - "pixelator": "0.22.1" - }, - "PIXELATOR_LAYOUT": { - "pixelator": "0.22.1" - }, - "PIXELATOR_QC": { - "pixelator": "0.22.1" - }, - "PIXELATOR_REPORT": { - "pixelator": "0.22.1" - }, - "Workflow": { - "nf-core/pixelator": "v2.3.0dev" - } - }, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/adapterqc", - "pixelator/adapterqc/sample01.meta.json", - "pixelator/adapterqc/sample01.report.json", - "pixelator/amplicon", - "pixelator/amplicon/sample01.meta.json", - "pixelator/amplicon/sample01.report.json", - "pixelator/analysis", - "pixelator/analysis/sample01.meta.json", - "pixelator/analysis/sample01.report.json", - "pixelator/annotate", - "pixelator/annotate/sample01.meta.json", - "pixelator/annotate/sample01.report.json", - "pixelator/collapse", - "pixelator/collapse/sample01.meta.json", - "pixelator/collapse/sample01.report.json", - "pixelator/demux", - "pixelator/demux/sample01.meta.json", - "pixelator/demux/sample01.report.json", - "pixelator/graph", - "pixelator/graph/sample01.meta.json", - "pixelator/graph/sample01.report.json", - "pixelator/layout", - "pixelator/layout/sample01.meta.json", - "pixelator/layout/sample01.report.json", - "pixelator/logs", - "pixelator/logs/sample01", - "pixelator/logs/sample01/sample01.pixelator-adapterqc.log", - "pixelator/logs/sample01/sample01.pixelator-amplicon.log", - "pixelator/logs/sample01/sample01.pixelator-analysis.log", - "pixelator/logs/sample01/sample01.pixelator-annotate.log", - "pixelator/logs/sample01/sample01.pixelator-collapse.log", - "pixelator/logs/sample01/sample01.pixelator-demux.log", - "pixelator/logs/sample01/sample01.pixelator-graph.log", - "pixelator/logs/sample01/sample01.pixelator-layout.log", - "pixelator/logs/sample01/sample01.pixelator-preqc.log", - "pixelator/logs/sample01/sample01.pixelator-report.log", - "pixelator/preqc", - "pixelator/preqc/sample01.meta.json", - "pixelator/preqc/sample01.report.json", - "pixelator/sample01.layout.dataset.pxl", - "pixelator/sample01.qc-report.html" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-05T09:24:25.33285339" - } -} \ No newline at end of file diff --git a/tests/default_pna.nf.test.snap b/tests/default_pna.nf.test.snap deleted file mode 100644 index ee4aca39..00000000 --- a/tests/default_pna.nf.test.snap +++ /dev/null @@ -1,151 +0,0 @@ -{ - "Params: default - stub": { - "content": [ - 11, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/PNA055_Sample07_filtered_S7.pxl", - "pixelator/amplicon", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", - "pixelator/analysis", - "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", - "pixelator/collapse", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", - "pixelator/demux", - "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", - "pixelator/denoise", - "pixelator/denoise/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/denoise/PNA055_Sample07_filtered_S7.report.json", - "pixelator/graph", - "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", - "pixelator/layout", - "pixelator/layout/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/layout/PNA055_Sample07_filtered_S7.report.json", - "pixelator/logs", - "pixelator/logs/PNA055_Sample07_filtered_S7", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m1.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m2.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-layout.log", - "pixelator/report", - "pixelator/report/PNA055_Sample07_filtered_S7.report.html" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-03T13:42:18.242437579" - }, - "Params: default": { - "content": [ - 11, - { - "PIXELATOR_PNA_AMPLICON": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_ANALYSIS": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_COLLAPSE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_COMBINE_COLLAPSE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_DEMUX": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_DENOISE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_GRAPH": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_LAYOUT": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_REPORT": { - "pixelator": "0.22.1" - }, - "Workflow": { - "nf-core/pixelator": "v2.3.0dev" - } - }, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/PNA055_Sample07_filtered_S7.layout.pxl", - "pixelator/amplicon", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", - "pixelator/analysis", - "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", - "pixelator/collapse", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", - "pixelator/demux", - "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", - "pixelator/denoise", - "pixelator/denoise/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/denoise/PNA055_Sample07_filtered_S7.report.json", - "pixelator/graph", - "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", - "pixelator/layout", - "pixelator/layout/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/layout/PNA055_Sample07_filtered_S7.report.json", - "pixelator/logs", - "pixelator/logs/PNA055_Sample07_filtered_S7", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-layout.log", - "pixelator/report", - "pixelator/report/PNA055_Sample07_filtered_S7.qc-report.html" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-05T09:28:52.43513999" - } -} \ No newline at end of file diff --git a/tests/default_mpx.nf.test b/tests/mpx.nf.test similarity index 84% rename from tests/default_mpx.nf.test rename to tests/mpx.nf.test index ff28b45d..9307c080 100644 --- a/tests/default_mpx.nf.test +++ b/tests/mpx.nf.test @@ -1,6 +1,6 @@ nextflow_pipeline { - name "Test MPX pipeline with default settings" + name "Test MPX pipeline" script "../main.nf" test("Params: default") { @@ -11,14 +11,13 @@ nextflow_pipeline { input = "$pipelines_testdata_base_path/samplesheet/mpx/samplesheet_mpx_scsp_v1_immunology1.csv" input_basedir = "$pipelines_testdata_base_path/testdata/mpx/" outdir = "$outputDir" + save_all = true } } then { // stable_name: All files + folders in ${params.outdir}/ with a stable name def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] assertAll( { assert workflow.success}, @@ -28,9 +27,7 @@ nextflow_pipeline { // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path + stable_name ).match() } ) } @@ -52,8 +49,6 @@ nextflow_pipeline { then { // stable_name: All files + folders in ${params.outdir}/ with a stable name def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] assertAll( { assert workflow.success}, { assert snapshot( @@ -61,8 +56,7 @@ nextflow_pipeline { workflow.trace.succeeded().size(), // All stable path name, with a relative path stable_name, - // All files with stable contents - stable_path + removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), ).match() } ) } diff --git a/tests/save_all.nf.test.snap b/tests/mpx.nf.test.snap similarity index 91% rename from tests/save_all.nf.test.snap rename to tests/mpx.nf.test.snap index e9672cf3..765be77b 100644 --- a/tests/save_all.nf.test.snap +++ b/tests/mpx.nf.test.snap @@ -1,5 +1,91 @@ { - "Params: --save_all": { + "Params: default - stub": { + "content": [ + 10, + [ + "pipeline_info", + "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", + "pixelator", + "pixelator/adapterqc", + "pixelator/adapterqc/sample01.meta.json", + "pixelator/adapterqc/sample01.report.json", + "pixelator/amplicon", + "pixelator/amplicon/sample01.meta.json", + "pixelator/amplicon/sample01.report.json", + "pixelator/analysis", + "pixelator/analysis/sample01.meta.json", + "pixelator/analysis/sample01.report.json", + "pixelator/annotate", + "pixelator/annotate/sample01.meta.json", + "pixelator/annotate/sample01.report.json", + "pixelator/collapse", + "pixelator/collapse/sample01.meta.json", + "pixelator/collapse/sample01.report.json", + "pixelator/demux", + "pixelator/demux/sample01.meta.json", + "pixelator/demux/sample01.report.json", + "pixelator/graph", + "pixelator/graph/sample01.meta.json", + "pixelator/graph/sample01.report.json", + "pixelator/layout", + "pixelator/layout/sample01.meta.json", + "pixelator/layout/sample01.report.json", + "pixelator/logs", + "pixelator/logs/sample01", + "pixelator/logs/sample01/sample01.pixelator-adapterqc.log", + "pixelator/logs/sample01/sample01.pixelator-amplicon.log", + "pixelator/logs/sample01/sample01.pixelator-analysis.log", + "pixelator/logs/sample01/sample01.pixelator-annotate.log", + "pixelator/logs/sample01/sample01.pixelator-collapse.log", + "pixelator/logs/sample01/sample01.pixelator-demux.log", + "pixelator/logs/sample01/sample01.pixelator-graph.log", + "pixelator/logs/sample01/sample01.pixelator-layout.log", + "pixelator/logs/sample01/sample01.pixelator-preqc.log", + "pixelator/logs/sample01/sample01.pixelator-report.log", + "pixelator/preqc", + "pixelator/preqc/sample01.meta.json", + "pixelator/preqc/sample01.report.json", + "pixelator/sample01.html", + "pixelator/sample01.layout.dataset.pxl" + ], + { + "PIXELATOR_AMPLICON": { + "pixelator": "0.22.1" + }, + "PIXELATOR_ANALYSIS": { + "pixelator": "0.22.1" + }, + "PIXELATOR_ANNOTATE": { + "pixelator": "0.22.1" + }, + "PIXELATOR_COLLAPSE": { + "pixelator": "0.22.1" + }, + "PIXELATOR_DEMUX": { + "pixelator": "0.22.1" + }, + "PIXELATOR_GRAPH": { + "pixelator": "0.22.1" + }, + "PIXELATOR_QC": { + "pixelator": "0.22.1" + }, + "PIXELATOR_REPORT": { + "pixelator": "0.22.1" + }, + "Workflow": { + "nf-core/pixelator": "v2.3.0dev" + }, + "pixelator": "0.22.1" + } + ], + "meta": { + "nf-test": "0.9.3", + "nextflow": "25.10.0" + }, + "timestamp": "2025-11-07T13:59:04.912661216" + }, + "Params: default": { "content": [ 10, { @@ -171,74 +257,12 @@ "pixelator/preqc/sample01.report.json", "pixelator/sample01.layout.dataset.pxl", "pixelator/sample01.qc-report.html" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-05T09:47:38.148268941" - }, - "Params: --save_all - stub": { - "content": [ - 10, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/adapterqc", - "pixelator/adapterqc/sample01.meta.json", - "pixelator/adapterqc/sample01.report.json", - "pixelator/amplicon", - "pixelator/amplicon/sample01.meta.json", - "pixelator/amplicon/sample01.report.json", - "pixelator/analysis", - "pixelator/analysis/sample01.meta.json", - "pixelator/analysis/sample01.report.json", - "pixelator/annotate", - "pixelator/annotate/sample01.meta.json", - "pixelator/annotate/sample01.report.json", - "pixelator/collapse", - "pixelator/collapse/sample01.meta.json", - "pixelator/collapse/sample01.report.json", - "pixelator/demux", - "pixelator/demux/sample01.meta.json", - "pixelator/demux/sample01.report.json", - "pixelator/graph", - "pixelator/graph/sample01.meta.json", - "pixelator/graph/sample01.report.json", - "pixelator/layout", - "pixelator/layout/sample01.meta.json", - "pixelator/layout/sample01.report.json", - "pixelator/logs", - "pixelator/logs/sample01", - "pixelator/logs/sample01/sample01.pixelator-adapterqc.log", - "pixelator/logs/sample01/sample01.pixelator-amplicon.log", - "pixelator/logs/sample01/sample01.pixelator-analysis.log", - "pixelator/logs/sample01/sample01.pixelator-annotate.log", - "pixelator/logs/sample01/sample01.pixelator-collapse.log", - "pixelator/logs/sample01/sample01.pixelator-demux.log", - "pixelator/logs/sample01/sample01.pixelator-graph.log", - "pixelator/logs/sample01/sample01.pixelator-layout.log", - "pixelator/logs/sample01/sample01.pixelator-preqc.log", - "pixelator/logs/sample01/sample01.pixelator-report.log", - "pixelator/preqc", - "pixelator/preqc/sample01.meta.json", - "pixelator/preqc/sample01.report.json", - "pixelator/sample01.html", - "pixelator/sample01.layout.dataset.pxl" - ], - [ - ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-11-03T13:32:37.793183209" + "timestamp": "2025-11-07T10:15:16.036689873" } } \ No newline at end of file diff --git a/tests/nextflow.config b/tests/nextflow.config index 79cd7ca6..db57284a 100644 --- a/tests/nextflow.config +++ b/tests/nextflow.config @@ -26,6 +26,10 @@ process { memory = 3.GB time = 2.h } + + withName: "EXPERIMENT_SUMMARY" { + ext.args = "-P test_mode=\"TRUE\"" + } } // Impose same minimum Nextflow version as the pipeline for testing diff --git a/tests/default_pna.nf.test b/tests/pna.nf.test similarity index 79% rename from tests/default_pna.nf.test rename to tests/pna.nf.test index 899757f0..c1af17cb 100644 --- a/tests/default_pna.nf.test +++ b/tests/pna.nf.test @@ -1,12 +1,13 @@ nextflow_pipeline { - name "Test PNA pipeline with default settings" + name "Test PNA pipeline" script "../main.nf" tag "pixelator" tag "pixelator/pna" + tag "smoke_test" - test("Params: default") { + test("Params: all") { when { params { @@ -16,7 +17,8 @@ nextflow_pipeline { outdir = "$outputDir" pna_graph_component_size_min_threshold = 100 - skip_experiment_summary = true + skip_experiment_summary = false + save_all = true } } @@ -24,8 +26,6 @@ nextflow_pipeline { then { // stable_name: All files + folders in ${params.outdir}/ with a stable name def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] assertAll( { assert workflow.success}, @@ -36,8 +36,6 @@ nextflow_pipeline { removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), // All stable path name, with a relative path stable_name, - // All files with stable contents - stable_path ).match() } ) } @@ -54,15 +52,12 @@ nextflow_pipeline { input_basedir = "$pipelines_testdata_base_path/testdata/pna/" outdir = "$outputDir" - skip_experiment_summary = true + skip_experiment_summary = false } } then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] assertAll( { assert workflow.success }, { assert snapshot( @@ -70,8 +65,7 @@ nextflow_pipeline { workflow.trace.succeeded().size(), // All stable path name, with a relative path stable_name, - // All files with stable contents - stable_path + removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), ).match() } ) } diff --git a/tests/pna_es.nf.test.snap b/tests/pna.nf.test.snap similarity index 71% rename from tests/pna_es.nf.test.snap rename to tests/pna.nf.test.snap index 7b04ecb8..cca181f8 100644 --- a/tests/pna_es.nf.test.snap +++ b/tests/pna.nf.test.snap @@ -1,48 +1,13 @@ { - "small": { + "Params: default - stub": { "content": [ 22, - { - "EXPERIMENT_SUMMARY": { - "experiment-summary": "0.4.3" - }, - "PIXELATOR_PNA_AMPLICON": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_ANALYSIS": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_COLLAPSE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_COMBINE_COLLAPSE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_DEMUX": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_DENOISE": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_GRAPH": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_LAYOUT": { - "pixelator": "0.22.1" - }, - "PIXELATOR_PNA_REPORT": { - "pixelator": "0.22.1" - }, - "Workflow": { - "nf-core/pixelator": "v2.3.0dev" - } - }, [ "pipeline_info", "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", "pixelator", - "pixelator/PNA055_Sample07_filtered_S7.layout.pxl", - "pixelator/PNA055_Sample07_unfiltered_S7.layout.pxl", + "pixelator/PNA055_Sample07_filtered_S7.pxl", + "pixelator/PNA055_Sample07_unfiltered_S7.pxl", "pixelator/amplicon", "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", @@ -54,19 +19,19 @@ "pixelator/analysis/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/analysis/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/collapse", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.meta.json", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_filtered_S7.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.report.json", "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m2.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.meta.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.meta.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.report.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.report.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/demux", "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", @@ -93,9 +58,10 @@ "pixelator/logs/PNA055_Sample07_filtered_S7", "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log", "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m1.part_000.pixelator-collapse.log", + "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m2.part_000.pixelator-collapse.log", "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log", "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-collapse.log", "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log", "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log", "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log", @@ -103,28 +69,61 @@ "pixelator/logs/PNA055_Sample07_unfiltered_S7", "pixelator/logs/PNA055_Sample07_unfiltered_S7.pixelator-combine-collapse.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7.pixelator-report.log", + "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.pixelator-collapse.log", + "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.pixelator-collapse.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-amplicon.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-collapse.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-demux.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-denoise.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-graph.log", "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-layout.log", "pixelator/report", - "pixelator/report/PNA055_Sample07_filtered_S7.qc-report.html", - "pixelator/report/PNA055_Sample07_unfiltered_S7.qc-report.html" + "pixelator/report/PNA055_Sample07_filtered_S7.report.html", + "pixelator/report/PNA055_Sample07_unfiltered_S7.report.html" ], - [ - - ] + { + "EXPERIMENT_SUMMARY": { + "experiment-summary": "0.4.3" + }, + "PIXELATOR_PNA_AMPLICON": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_ANALYSIS": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_COLLAPSE": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_COMBINE_COLLAPSE": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_DEMUX": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_DENOISE": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_GRAPH": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_LAYOUT": { + "pixelator": "0.22.1" + }, + "PIXELATOR_PNA_REPORT": { + "pixelator": "0.22.1" + }, + "Workflow": { + "nf-core/pixelator": "v2.3.0dev" + } + } ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-11-05T09:37:16.642223572" + "timestamp": "2025-11-07T10:20:51.001644946" }, - "custom panel": { + "Params: all": { "content": [ 22, { @@ -169,33 +168,49 @@ "pixelator/PNA055_Sample07_filtered_S7.layout.pxl", "pixelator/PNA055_Sample07_unfiltered_S7.layout.pxl", "pixelator/amplicon", + "pixelator/amplicon/PNA055_Sample07_filtered_S7.amplicon.fq.zst", "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", + "pixelator/amplicon/PNA055_Sample07_unfiltered_S7.amplicon.fq.zst", "pixelator/amplicon/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/amplicon/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/analysis", + "pixelator/analysis/PNA055_Sample07_filtered_S7.analysis.pxl", "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", + "pixelator/analysis/PNA055_Sample07_unfiltered_S7.analysis.pxl", "pixelator/analysis/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/analysis/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/collapse", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.parquet", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m1.part_000.report.json", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.parquet", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.m2.part_000.report.json", "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", "pixelator/collapse/PNA055_Sample07_filtered_S7.meta.json", "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m1.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m1.part_000.parquet", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m1.part_000.report.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m2.part_000.meta.json", + "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m2.part_000.parquet", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.m2.part_000.report.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.parquet", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/collapse/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/demux", + "pixelator/demux/PNA055_Sample07_filtered_S7.demux.failed.fq.zst", + "pixelator/demux/PNA055_Sample07_filtered_S7.demux.m1.part_000.parquet", + "pixelator/demux/PNA055_Sample07_filtered_S7.demux.m2.part_000.parquet", + "pixelator/demux/PNA055_Sample07_filtered_S7.demux.passed.fq.zst", "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", + "pixelator/demux/PNA055_Sample07_unfiltered_S7.demux.failed.fq.zst", + "pixelator/demux/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.parquet", + "pixelator/demux/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.parquet", + "pixelator/demux/PNA055_Sample07_unfiltered_S7.demux.passed.fq.zst", "pixelator/demux/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/demux/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/denoise", @@ -205,8 +220,10 @@ "pixelator/denoise/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/experiment-summary.html", "pixelator/graph", + "pixelator/graph/PNA055_Sample07_filtered_S7.graph.pxl", "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", + "pixelator/graph/PNA055_Sample07_unfiltered_S7.graph.pxl", "pixelator/graph/PNA055_Sample07_unfiltered_S7.meta.json", "pixelator/graph/PNA055_Sample07_unfiltered_S7.report.json", "pixelator/layout", @@ -238,107 +255,12 @@ "pixelator/report", "pixelator/report/PNA055_Sample07_filtered_S7.qc-report.html", "pixelator/report/PNA055_Sample07_unfiltered_S7.qc-report.html" - ], - [ - - ] - ], - "meta": { - "nf-test": "0.9.3", - "nextflow": "25.10.0" - }, - "timestamp": "2025-11-05T09:44:18.347251961" - }, - "small - stub": { - "content": [ - 22, - [ - "pipeline_info", - "pipeline_info/nf_core_pixelator_software_mqc_versions.yml", - "pixelator", - "pixelator/PNA055_Sample07_filtered_S7.pxl", - "pixelator/PNA055_Sample07_unfiltered_S7.pxl", - "pixelator/amplicon", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/amplicon/PNA055_Sample07_filtered_S7.report.json", - "pixelator/amplicon/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/amplicon/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/analysis", - "pixelator/analysis/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/analysis/PNA055_Sample07_filtered_S7.report.json", - "pixelator/analysis/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/analysis/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/collapse", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.demux.m2.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_filtered_S7.report.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.meta.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.collapse.parquet", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.meta.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.report.json", - "pixelator/collapse/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/demux", - "pixelator/demux/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/demux/PNA055_Sample07_filtered_S7.report.json", - "pixelator/demux/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/demux/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/denoise", - "pixelator/denoise/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/denoise/PNA055_Sample07_filtered_S7.report.json", - "pixelator/denoise/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/denoise/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/experiment-summary.html", - "pixelator/graph", - "pixelator/graph/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/graph/PNA055_Sample07_filtered_S7.report.json", - "pixelator/graph/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/graph/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/layout", - "pixelator/layout/PNA055_Sample07_filtered_S7.meta.json", - "pixelator/layout/PNA055_Sample07_filtered_S7.report.json", - "pixelator/layout/PNA055_Sample07_unfiltered_S7.meta.json", - "pixelator/layout/PNA055_Sample07_unfiltered_S7.report.json", - "pixelator/logs", - "pixelator/logs/PNA055_Sample07_filtered_S7", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-combine-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7.pixelator-report.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m1.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.demux.m2.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-amplicon.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-demux.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-denoise.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-graph.log", - "pixelator/logs/PNA055_Sample07_filtered_S7/PNA055_Sample07_filtered_S7.pixelator-layout.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7", - "pixelator/logs/PNA055_Sample07_unfiltered_S7.pixelator-combine-collapse.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7.pixelator-report.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.demux.m1.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.demux.m2.part_000.pixelator-collapse.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-amplicon.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-analysis.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-demux.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-denoise.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-graph.log", - "pixelator/logs/PNA055_Sample07_unfiltered_S7/PNA055_Sample07_unfiltered_S7.pixelator-layout.log", - "pixelator/report", - "pixelator/report/PNA055_Sample07_filtered_S7.report.html", - "pixelator/report/PNA055_Sample07_unfiltered_S7.report.html" - ], - [ - ] ], "meta": { "nf-test": "0.9.3", "nextflow": "25.10.0" }, - "timestamp": "2025-11-03T13:32:04.548822836" + "timestamp": "2025-11-07T10:19:44.285870175" } } \ No newline at end of file diff --git a/tests/pna_es.nf.test b/tests/pna_es.nf.test deleted file mode 100644 index fd496732..00000000 --- a/tests/pna_es.nf.test +++ /dev/null @@ -1,116 +0,0 @@ -nextflow_pipeline { - - name "Test PNA pipeline with experiment summary" - script "../main.nf" - - tag "pixelator" - tag "pixelator/pna" - - test("small") { - - when { - params { - - pipelines_testdata_base_path = "https://raw.githubusercontent.com/nf-core/test-datasets/pixelator/" - input = "$pipelines_testdata_base_path/samplesheet/pna/samplesheet_pna_es.csv" - input_basedir = "$pipelines_testdata_base_path/testdata/pna/" - outdir = "$outputDir" - - pna_graph_component_size_min_threshold = 100 - skip_experiment_summary = false - } - } - - then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] - - assertAll( - { assert workflow.success}, - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), - // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path - ).match() } - ) - } - } - - test("custom panel") { - - when { - params { - - pipelines_testdata_base_path = "https://raw.githubusercontent.com/nf-core/test-datasets/pixelator/" - input = "$pipelines_testdata_base_path/samplesheet/pna/samplesheet_pna_es_custom_panel.csv" - input_basedir = "$pipelines_testdata_base_path/testdata/pna/" - outdir = "$outputDir" - - pna_graph_component_size_min_threshold = 100 - skip_experiment_summary = false - } - } - - then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] - - assertAll( - { assert workflow.success}, - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), - // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path - ).match() } - ) - } - } - - test("small - stub") { - - options "-stub" - tag "stub" - - when { - params { - pipelines_testdata_base_path = "https://raw.githubusercontent.com/nf-core/test-datasets/pixelator/" - input = "$pipelines_testdata_base_path/samplesheet/pna/samplesheet_pna_es.csv" - input_basedir = "$pipelines_testdata_base_path/testdata/pna/" - outdir = "$outputDir" - skip_experiment_summary = false - } - } - - then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] - assertAll( - { assert workflow.success }, - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path - ).match() } - ) - } - } -} diff --git a/tests/save_all.nf.test b/tests/save_all.nf.test deleted file mode 100644 index 393b2ea9..00000000 --- a/tests/save_all.nf.test +++ /dev/null @@ -1,71 +0,0 @@ -nextflow_pipeline { - - name "Test pipeline with --save_all" - script "../main.nf" - - test("Params: --save_all") { - - when { - params { - pipelines_testdata_base_path = "https://raw.githubusercontent.com/nf-core/test-datasets/pixelator/" - input = "$pipelines_testdata_base_path/samplesheet/mpx/samplesheet_mpx_scsp_v1_immunology1.csv" - input_basedir = "$pipelines_testdata_base_path/testdata/mpx/" - outdir = "$outputDir" - save_all = true - } - } - - then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] - - assertAll( - { assert workflow.success}, - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_pixelator_software_mqc_versions.yml"), - // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path - ).match() } - ) - } - } - - test("Params: --save_all - stub") { - - options "-stub" - - when { - params { - pipelines_testdata_base_path = "https://raw.githubusercontent.com/nf-core/test-datasets/pixelator/" - input = "$pipelines_testdata_base_path/samplesheet/mpx/samplesheet_mpx_scsp_v1_immunology1.csv" - input_basedir = "$pipelines_testdata_base_path/testdata/mpx/" - outdir = "$outputDir" - } - } - - then { - // stable_name: All files + folders in ${params.outdir}/ with a stable name - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - // stable_path: All files in ${params.outdir}/ with stable content - def stable_path = [] - assertAll( - { assert workflow.success}, - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - // All stable path name, with a relative path - stable_name, - // All files with stable contents - stable_path - ).match() } - ) - } - } -} diff --git a/tests/scripts/run_smoke_tests.sh b/tests/scripts/run_smoke_tests.sh new file mode 100644 index 00000000..8b598603 --- /dev/null +++ b/tests/scripts/run_smoke_tests.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# Run tests suitable for quick and broad diagnostic +# bash tests/run_smoke_tests.sh [args] + +ARGS=$@ + +nf-test test --profile test,docker $ARGS --tag="smoke_test" diff --git a/tests/scripts/run_tests_parallel.sh b/tests/scripts/run_tests_parallel.sh new file mode 100755 index 00000000..3005a671 --- /dev/null +++ b/tests/scripts/run_tests_parallel.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Run all tests in parallel +# bash tests/run_tests_parallel.sh [--update-snapshot,--wipe-snaphot] + +ARGS=$@ + +echo Running tests: experiment summary... +nf-test test --profile test,docker $ARGS \ + modules/local/experiment_summary/ \ + &> /tmp/pixelator_es_tests.txt \ + && echo "Completed tests: experiment summary" & + +echo Running tests: MPX modules... +nf-test test --profile test,docker $ARGS \ + modules/local/pixelator/single-cell-mpx/ \ + &> /tmp/pixelator_mpx_modules_tests.txt \ + && echo "Completed tests: MPX modules" & + +echo Running tests: PNA modules... +nf-test test --profile test,docker $ARGS \ + modules/local/pixelator/single-cell-pna/ \ + &> /tmp/pixelator_pna_modules_tests.txt \ + && echo "Completed tests: PNA modules" & + +echo Running tests: subworkflows... +nf-test test --profile test,docker $ARGS \ + subworkflows/ \ + &> /tmp/pixelator_subworkflow_tests.txt \ + && echo "Completed tests: subworkflows" & + +echo Running tests: PNA pipeline... +nf-test test --profile test,docker $ARGS \ + tests/pna.nf.test \ + &> /tmp/pixelator_pna_pipeline_tests.txt \ + && echo "Completed tests: PNA pipeline" & + +echo Running tests: MPX pipeline... +nf-test test --profile test,docker $ARGS \ + tests/mpx.nf.test \ + &> /tmp/pixelator_mpx_pipeline_tests.txt \ + && echo "Completed tests: MPX pipeline" & + +wait + +cat /tmp/pixelator_es_tests.txt \ + /tmp/pixelator_mpx_modules_tests.txt \ + /tmp/pixelator_pna_modules_tests.txt \ + /tmp/pixelator_subworkflow_tests.txt \ + /tmp/pixelator_pna_pipeline_tests.txt \ + /tmp/pixelator_mpx_pipeline_tests.txt