diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e0605fe..e9f88b2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ Hotfix to tackle some bugs ### `Added` - Template update for nf-core/tools version 4.0.3 +- Adding new conf/tests folder +- Adding new test for coordinate mode to check the bugfixes ### `Fixed` diff --git a/conf/test_coordinate_mode.config b/conf/tests/test_coordinate_mode.config similarity index 100% rename from conf/test_coordinate_mode.config rename to conf/tests/test_coordinate_mode.config diff --git a/conf/test_image_mode.config b/conf/tests/test_image_mode.config similarity index 100% rename from conf/test_image_mode.config rename to conf/tests/test_image_mode.config diff --git a/conf/test_preview_mode.config b/conf/tests/test_preview_mode.config similarity index 100% rename from conf/test_preview_mode.config rename to conf/tests/test_preview_mode.config diff --git a/conf/test_segfree_mode.config b/conf/tests/test_segfree_mode.config similarity index 100% rename from conf/test_segfree_mode.config rename to conf/tests/test_segfree_mode.config diff --git a/subworkflows/local/baysor_run_prior_segmentation_mask/main.nf b/subworkflows/local/baysor_run_prior_segmentation_mask/main.nf index 48236e8c..df9a6680 100644 --- a/subworkflows/local/baysor_run_prior_segmentation_mask/main.nf +++ b/subworkflows/local/baysor_run_prior_segmentation_mask/main.nf @@ -4,7 +4,7 @@ include { BAYSOR_PREPROCESS_TRANSCRIPTS } from '../../../modules/local/baysor/preprocess/main' include { BAYSOR_RUN } from '../../../modules/local/baysor/run/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow BAYSOR_RUN_PRIOR_SEGMENTATION_MASK { diff --git a/subworkflows/local/baysor_run_transcripts_parquet/main.nf b/subworkflows/local/baysor_run_transcripts_parquet/main.nf index c64bf71a..eeaa6835 100644 --- a/subworkflows/local/baysor_run_transcripts_parquet/main.nf +++ b/subworkflows/local/baysor_run_transcripts_parquet/main.nf @@ -15,7 +15,7 @@ include { BAYSOR_RUN } from '../../../modules/local/baysor include { BAYSOR_PREPROCESS_TRANSCRIPTS } from '../../../modules/local/baysor/preprocess/main' include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main' include { RECONSTRUCT_PATCHES } from '../../../modules/local/utility/reconstruct_patches/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow BAYSOR_RUN_TRANSCRIPTS_PARQUET { diff --git a/subworkflows/local/baysor_run_transcripts_parquet_tiled/main.nf b/subworkflows/local/baysor_run_transcripts_parquet_tiled/main.nf index db290209..5e69d2d9 100644 --- a/subworkflows/local/baysor_run_transcripts_parquet_tiled/main.nf +++ b/subworkflows/local/baysor_run_transcripts_parquet_tiled/main.nf @@ -6,7 +6,7 @@ include { XENIUM_PATCH_DIVIDE } from '../../../modules/local/xenium include { BAYSOR_PREPROCESS_TRANSCRIPTS } from '../../../modules/local/baysor/preprocess/main' include { BAYSOR_RUN } from '../../../modules/local/baysor/run/main' include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow BAYSOR_RUN_TRANSCRIPTS_PARQUET_TILED { diff --git a/subworkflows/local/cellpose_baysor_import_segmentation/main.nf b/subworkflows/local/cellpose_baysor_import_segmentation/main.nf index 06a15a41..4f90ba49 100644 --- a/subworkflows/local/cellpose_baysor_import_segmentation/main.nf +++ b/subworkflows/local/cellpose_baysor_import_segmentation/main.nf @@ -11,7 +11,7 @@ include { CONVERT_MASK_UINT32 } from '../../../modules/local/utilit include { BAYSOR_PREPROCESS_TRANSCRIPTS } from '../../../modules/local/baysor/preprocess/main' include { RESIZE_TIF } from '../../../modules/local/utility/resize_tif/main' include { GET_TRANSCRIPTS_COORDINATES } from '../../../modules/local/utility/get_coordinates/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow CELLPOSE_BAYSOR_IMPORT_SEGMENTATION { take: diff --git a/subworkflows/local/cellpose_resolift_morphology_ome_tif/main.nf b/subworkflows/local/cellpose_resolift_morphology_ome_tif/main.nf index 9b95f912..59a0d703 100644 --- a/subworkflows/local/cellpose_resolift_morphology_ome_tif/main.nf +++ b/subworkflows/local/cellpose_resolift_morphology_ome_tif/main.nf @@ -9,7 +9,7 @@ include { CELLPOSE as CELLPOSE_CELLS } from '../../../modules/nf-core/cell include { EXTRACT_DAPI } from '../../../modules/local/utility/extract_dapi/main' include { STARDIST as STARDIST_NUCLEI } from '../../../modules/nf-core/stardist/main' include { CONVERT_MASK_UINT32 } from '../../../modules/local/utility/convert_mask_uint32/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow CELLPOSE_RESOLIFT_MORPHOLOGY_OME_TIF { take: diff --git a/subworkflows/local/proseg_preset_proseg2baysor/main.nf b/subworkflows/local/proseg_preset_proseg2baysor/main.nf index 000167c5..47b38013 100644 --- a/subworkflows/local/proseg_preset_proseg2baysor/main.nf +++ b/subworkflows/local/proseg_preset_proseg2baysor/main.nf @@ -4,7 +4,7 @@ include { PROSEG } from '../../../modules/local/proseg/preset/main' include { PROSEG2BAYSOR } from '../../../modules/local/proseg/proseg2baysor/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow PROSEG_PRESET_PROSEG2BAYSOR { take: diff --git a/subworkflows/local/proseg_preset_proseg2baysor_tiled/main.nf b/subworkflows/local/proseg_preset_proseg2baysor_tiled/main.nf index 5fe72560..a39242c5 100644 --- a/subworkflows/local/proseg_preset_proseg2baysor_tiled/main.nf +++ b/subworkflows/local/proseg_preset_proseg2baysor_tiled/main.nf @@ -6,7 +6,7 @@ include { XENIUM_PATCH_DIVIDE } from '../../../modules/local/xenium include { PROSEG } from '../../../modules/local/proseg/preset/main' include { PROSEG2BAYSOR } from '../../../modules/local/proseg/proseg2baysor/main' include { XENIUM_PATCH_STITCH } from '../../../modules/local/xenium_patch/stitch/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow PROSEG_PRESET_PROSEG2BAYSOR_TILED { diff --git a/subworkflows/local/segger_create_train_predict/main.nf b/subworkflows/local/segger_create_train_predict/main.nf index 152e0342..ab9ae090 100644 --- a/subworkflows/local/segger_create_train_predict/main.nf +++ b/subworkflows/local/segger_create_train_predict/main.nf @@ -6,7 +6,7 @@ include { SEGGER2XR } from '../../../modules/local/utilit include { SEGGER_TRAIN } from '../../../modules/local/segger/train/main' include { SEGGER_PREDICT } from '../../../modules/local/segger/predict/main' include { SEGGER_CREATE_DATASET } from '../../../modules/local/segger/create_dataset/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow SEGGER_CREATE_TRAIN_PREDICT { take: diff --git a/subworkflows/local/stardist_resolift_morphology_ome_tif/main.nf b/subworkflows/local/stardist_resolift_morphology_ome_tif/main.nf index d002d291..54e11f24 100644 --- a/subworkflows/local/stardist_resolift_morphology_ome_tif/main.nf +++ b/subworkflows/local/stardist_resolift_morphology_ome_tif/main.nf @@ -6,7 +6,7 @@ include { RESOLIFT } from '../../../modules/local/resoli include { EXTRACT_DAPI } from '../../../modules/local/utility/extract_dapi/main' include { STARDIST as STARDIST_NUCLEI } from '../../../modules/nf-core/stardist/main' include { CONVERT_MASK_UINT32 } from '../../../modules/local/utility/convert_mask_uint32/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow STARDIST_RESOLIFT_MORPHOLOGY_OME_TIF { take: diff --git a/subworkflows/local/xeniumranger_resegment_morphology_ome_tif/main.nf b/subworkflows/local/xeniumranger_resegment_morphology_ome_tif/main.nf index 0a5c81ee..7999b647 100644 --- a/subworkflows/local/xeniumranger_resegment_morphology_ome_tif/main.nf +++ b/subworkflows/local/xeniumranger_resegment_morphology_ome_tif/main.nf @@ -3,7 +3,7 @@ // include { XENIUMRANGER_RESEGMENT } from '../../../modules/nf-core/xeniumranger/resegment/main' -include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' +include { XENIUMRANGER_IMPORTSEGMENTATION } from '../../../modules/nf-core/xeniumranger/importsegmentation/main' workflow XENIUMRANGER_RESEGMENT_MORPHOLOGY_OME_TIF { take: diff --git a/tests/.nftignore b/tests/.nftignore index 2e57a91e..0d1a17b8 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -10,3 +10,43 @@ multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html pipeline_info/*.{html,json,txt,yml} **/proseg/preset/** + +# proseg2baysor re-serializes proseg's segmentation non-deterministically (geojson/csv); +# this propagates into every spatialdata bundle built from it +coordinate/proseg/proseg2baysor/test_run/cell-polygons.geojson +coordinate/proseg/proseg2baysor/test_run/transcript-metadata.csv +coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/** +coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes/** +coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/tables/** +coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/** +coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes/** +coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/tables/** +coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/** +coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes/** +coordinate/spatialdata/meta/spatialdata/test_run/metadata/tables/** + +# xeniumranger's internal secondary analysis (clustering/PCA/UMAP/diffexp) and +# resegmentation are not run-to-run reproducible; only existence is checked +xeniumranger/test_run/** +coordinate/untar/test_run/** +coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/** +coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes/** +coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/tables/** + +# MultiQC pre/post-Xeniumranger reports embed non-deterministic run data +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report.html +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report_data/llms-full.txt +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.log +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.parquet +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_data.json +coordinate/multiqc/*/MultiQC-*-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_sources.txt + +# OME-Zarr group metadata (member/channel ordering) is not written in a stable +# order across runs, both for the images subgroup and for each bundle's root +# store (which declares its images/points/shapes/tables members); the +# underlying pixel/array chunk data itself is unaffected +**/images/zarr.json +coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/zarr.json +coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/zarr.json +coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/zarr.json +coordinate/spatialdata/meta/spatialdata/test_run/metadata/zarr.json diff --git a/tests/coordinate_mode.nf.test b/tests/coordinate_mode.nf.test index e0ff2ac4..0e866407 100644 --- a/tests/coordinate_mode.nf.test +++ b/tests/coordinate_mode.nf.test @@ -3,7 +3,55 @@ nextflow_pipeline { name "Test pipeline for the `coordinate` mode, test run the proseg subworkflow" script "../main.nf" tag "pipeline" - config "../conf/test_coordinate_mode.config" + config "../conf/tests/test_coordinate_mode.config" + + + test("-profile test") { + + when { + params { + outdir = "$outputDir" + } + } + + then { + // Stable_name: All files + folders in ${params.outdir}/ with a stable name. + // Zarr tables store one chunk file per obs/var column, leading to incoherent output files. + // Only the tables' existence is checked below instead. + // Xeniumranger's secondary analysis is skipped entirely on some runs (writing + // a single note.txt instead of the clustering/diffexp/pca/umap tree). + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: [ + 'pipeline_info/*.{html,json,txt}', + '**/proseg/preset/**', + 'coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/tables/**', + 'coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/tables/**', + 'coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/tables/**', + 'coordinate/spatialdata/meta/spatialdata/test_run/metadata/tables/**', + 'xeniumranger/test_run/**', + 'coordinate/untar/test_run/**', + ]) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // pipeline versions.yml file for multiqc from which Nextflow version is removed because we test pipelines on multiple Nextflow versions + removeNextflowVersion("$outputDir/pipeline_info/nf_core_spatialaxe_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() }, + { assert file("$outputDir/coordinate/proseg/preset/test_run/proseg-output.zarr").exists() }, + { assert file("$outputDir/coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/tables/table").exists() }, + { assert file("$outputDir/coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/tables/table").exists() }, + { assert file("$outputDir/coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/tables/raw_table").exists() }, + { assert file("$outputDir/coordinate/spatialdata/meta/spatialdata/test_run/metadata/tables/raw_table").exists() }, + { assert file("$outputDir/xeniumranger/test_run").exists() }, + { assert file("$outputDir/coordinate/untar/test_run").exists() }, + ) + } + } test("-profile test stub") { diff --git a/tests/coordinate_mode.nf.test.snap b/tests/coordinate_mode.nf.test.snap index 96d5cb15..22434439 100644 --- a/tests/coordinate_mode.nf.test.snap +++ b/tests/coordinate_mode.nf.test.snap @@ -1,4 +1,354 @@ { + "-profile test": { + "content": [ + { + "PROSEG2BAYSOR": { + "proseg": "3.1.0" + }, + "PROSEG": { + "proseg": "3.1.0" + }, + "SPATIALDATA_MERGE_RAW_REDEFINED": { + "spatialdata": "0.7.2" + }, + "SPATIALDATA_META": { + "spatialdata": "0.7.2" + }, + "SPATIALDATA_WRITE_RAW_BUNDLE": { + "spatialdata": "0.7.2" + }, + "SPATIALDATA_WRITE_REDEFINED_BUNDLE": { + "spatialdata": "0.7.2" + }, + "UNTAR": { + "untar": 1.34 + }, + "Workflow": { + "nf-core/spatialaxe": "v1.0.1" + }, + "XENIUMRANGER_IMPORTSEGMENTATION": { + "xeniumranger": "4.0.1.1" + } + }, + [ + "coordinate", + "coordinate/multiqc", + "coordinate/multiqc/raw_bundle", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report.html", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/llms-full.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.log", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.parquet", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_citations.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_data.json", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_general_stats.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_software_versions.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_sources.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_xenium.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/xenium_fov_quality_ranges.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/xenium_segmentation.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/xenium_transcript_quality_per_sample_table.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_data/xenium_transcripts_per_gene.txt", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_plots", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_plots/pdf", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_plots/png", + "coordinate/multiqc/raw_bundle/MultiQC-Pre-Xeniumranger-import-segmentation-Run_multiqc_report_plots/svg", + "coordinate/multiqc/redefined_bundle", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report.html", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/llms-full.txt", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.log", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc.parquet", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_citations.txt", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_data.json", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_software_versions.txt", + "coordinate/multiqc/redefined_bundle/MultiQC-Post-Xeniumranger-import-segmentation-Run_multiqc_report_data/multiqc_sources.txt", + "coordinate/proseg", + "coordinate/proseg/preset", + "coordinate/proseg/proseg2baysor", + "coordinate/proseg/proseg2baysor/test_run", + "coordinate/proseg/proseg2baysor/test_run/cell-polygons.geojson", + "coordinate/proseg/proseg2baysor/test_run/transcript-metadata.csv", + "coordinate/spatialdata", + "coordinate/spatialdata/merge", + "coordinate/spatialdata/merge/spatialdata", + "coordinate/spatialdata/merge/spatialdata/test_run", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/c", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/c/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/c/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/c/0/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/c/0/0/1", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/0/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1/c", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1/c/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1/c/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1/c/0/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/1/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2/c", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2/c/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2/c/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2/c/0/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/2/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3/c", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3/c/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3/c/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3/c/0/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/3/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4/c", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4/c/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4/c/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4/c/0/0/0", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/4/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/morphology_focus/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/images/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/raw_transcripts", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/raw_transcripts/points.parquet", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/raw_transcripts/points.parquet/part.0.parquet", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/raw_transcripts/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/points/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes/raw_cell_boundaries", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes/raw_cell_boundaries/shapes.parquet", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes/raw_cell_boundaries/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/shapes/zarr.json", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/tables", + "coordinate/spatialdata/merge/spatialdata/test_run/merged_bundle/zarr.json", + "coordinate/spatialdata/meta", + "coordinate/spatialdata/meta/spatialdata", + "coordinate/spatialdata/meta/spatialdata/test_run", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/c", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/c/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/c/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/c/0/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/c/0/0/1", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/0/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1/c", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1/c/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1/c/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1/c/0/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/1/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2/c", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2/c/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2/c/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2/c/0/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/2/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3/c", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3/c/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3/c/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3/c/0/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/3/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4/c", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4/c/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4/c/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4/c/0/0/0", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/4/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/morphology_focus/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/images/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/raw_transcripts", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/raw_transcripts/points.parquet", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/raw_transcripts/points.parquet/part.0.parquet", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/raw_transcripts/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/points/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes/raw_cell_boundaries", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes/raw_cell_boundaries/shapes.parquet", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes/raw_cell_boundaries/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/shapes/zarr.json", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/tables", + "coordinate/spatialdata/meta/spatialdata/test_run/metadata/zarr.json", + "coordinate/spatialdata/write", + "coordinate/spatialdata/write/spatialdata", + "coordinate/spatialdata/write/spatialdata/test_run", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/c", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/c/0/0/1", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/0/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1/c", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/1/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2/c", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/2/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3/c", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/3/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4/c", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/4/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/morphology_focus/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/images/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/transcripts", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/transcripts/points.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/transcripts/points.parquet/part.0.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/transcripts/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/points/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes/cell_boundaries", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes/cell_boundaries/shapes.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes/cell_boundaries/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/shapes/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/tables", + "coordinate/spatialdata/write/spatialdata/test_run/raw_bundle/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/c", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/c/0/0/1", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/0/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1/c", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/1/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2/c", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/2/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3/c", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/3/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4/c", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4/c/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4/c/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4/c/0/0/0", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/4/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/morphology_focus/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/images/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/transcripts", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/transcripts/points.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/transcripts/points.parquet/part.0.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/transcripts/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/points/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes/cell_boundaries", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes/cell_boundaries/shapes.parquet", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes/cell_boundaries/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/shapes/zarr.json", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/tables", + "coordinate/spatialdata/write/spatialdata/test_run/redefined_bundle/zarr.json", + "coordinate/untar", + "coordinate/untar/test_run", + "pipeline_info", + "pipeline_info/nf_core_spatialaxe_software_mqc_versions.yml", + "xeniumranger", + "xeniumranger/test_run" + ], + [ + "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", + "multiqc_general_stats.txt:md5,e38eaaa52226a0d985578208b3261585", + "multiqc_software_versions.txt:md5,4c66c24e7c7ec9133e99bf68a3ab05f9", + "multiqc_xenium.txt:md5,f52e6ac3376565f7975e4e9fc23ed52a", + "xenium_fov_quality_ranges.txt:md5,153e0a905781d0b1b2f01b5ea6e384a8", + "xenium_segmentation.txt:md5,abd99ee57c53568a7f915bd10d2ee5af", + "xenium_transcript_quality_per_sample_table.txt:md5,d0135a0006f4ad3631b9f3906cc7ee0b", + "xenium_transcripts_per_gene.txt:md5,b46b3c414bc660e03e3df0345dd5e3e2", + "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", + "multiqc_software_versions.txt:md5,4c66c24e7c7ec9133e99bf68a3ab05f9", + "0:md5,397dc21e479c58fd2ffcbe6c3e627683", + "1:md5,f1a6b9238c3095bad7867b22f293e5e6", + "zarr.json:md5,893b4d8873fc997d364288c63ef0871f", + "0:md5,519d79fe18256d530a2070e31925fac6", + "zarr.json:md5,9e0748b559911795c141000a77ab7e59", + "0:md5,f349fb7934242be4cf4ac28e1a7e18f4", + "zarr.json:md5,32b707be767bd056085d0f349d3ab68c", + "0:md5,000e609e16f4975474a7d57eed232daa", + "zarr.json:md5,4690fb68f05cbca9148144c85bd9687f", + "0:md5,4890e52e8f0efc8f560bc51199d5071c", + "zarr.json:md5,1f4482a1e3b6e9ab30623b0ad12f5213", + "zarr.json:md5,b98263d3964a5236145ccf6c808f8919", + "0:md5,397dc21e479c58fd2ffcbe6c3e627683", + "1:md5,f1a6b9238c3095bad7867b22f293e5e6", + "zarr.json:md5,893b4d8873fc997d364288c63ef0871f", + "0:md5,519d79fe18256d530a2070e31925fac6", + "zarr.json:md5,9e0748b559911795c141000a77ab7e59", + "0:md5,f349fb7934242be4cf4ac28e1a7e18f4", + "zarr.json:md5,32b707be767bd056085d0f349d3ab68c", + "0:md5,000e609e16f4975474a7d57eed232daa", + "zarr.json:md5,4690fb68f05cbca9148144c85bd9687f", + "0:md5,4890e52e8f0efc8f560bc51199d5071c", + "zarr.json:md5,1f4482a1e3b6e9ab30623b0ad12f5213", + "zarr.json:md5,b98263d3964a5236145ccf6c808f8919", + "0:md5,397dc21e479c58fd2ffcbe6c3e627683", + "1:md5,f1a6b9238c3095bad7867b22f293e5e6", + "zarr.json:md5,893b4d8873fc997d364288c63ef0871f", + "0:md5,519d79fe18256d530a2070e31925fac6", + "zarr.json:md5,9e0748b559911795c141000a77ab7e59", + "0:md5,f349fb7934242be4cf4ac28e1a7e18f4", + "zarr.json:md5,32b707be767bd056085d0f349d3ab68c", + "0:md5,000e609e16f4975474a7d57eed232daa", + "zarr.json:md5,4690fb68f05cbca9148144c85bd9687f", + "0:md5,4890e52e8f0efc8f560bc51199d5071c", + "zarr.json:md5,1f4482a1e3b6e9ab30623b0ad12f5213", + "zarr.json:md5,b98263d3964a5236145ccf6c808f8919", + "0:md5,397dc21e479c58fd2ffcbe6c3e627683", + "1:md5,f1a6b9238c3095bad7867b22f293e5e6", + "zarr.json:md5,893b4d8873fc997d364288c63ef0871f", + "0:md5,519d79fe18256d530a2070e31925fac6", + "zarr.json:md5,9e0748b559911795c141000a77ab7e59", + "0:md5,f349fb7934242be4cf4ac28e1a7e18f4", + "zarr.json:md5,32b707be767bd056085d0f349d3ab68c", + "0:md5,000e609e16f4975474a7d57eed232daa", + "zarr.json:md5,4690fb68f05cbca9148144c85bd9687f", + "0:md5,4890e52e8f0efc8f560bc51199d5071c", + "zarr.json:md5,1f4482a1e3b6e9ab30623b0ad12f5213", + "zarr.json:md5,b98263d3964a5236145ccf6c808f8919" + ] + ], + "timestamp": "2026-08-04T14:29:47.103357166", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.6" + } + }, "-profile test stub": { "content": [ { @@ -111,38 +461,13 @@ ".stub:md5,d41d8cd98f00b204e9800998ecf8427e", ".stub:md5,d41d8cd98f00b204e9800998ecf8427e", "multiqc_report.html:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell-polygons.geojson:md5,d41d8cd98f00b204e9800998ecf8427e", - "transcript-metadata.csv:md5,d41d8cd98f00b204e9800998ecf8427e", - "fake_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e", "fake_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e", "fake_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e", "fake_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e", - ".end-of-run:md5,d41d8cd98f00b204e9800998ecf8427e", - "analysis.tar.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "analysis.zarr.zip:md5,d41d8cd98f00b204e9800998ecf8427e", - "analysis_summary.html:md5,d41d8cd98f00b204e9800998ecf8427e", - "aux_outputs.tar.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell_boundaries.csv.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell_boundaries.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell_feature_matrix.h5:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell_feature_matrix.tar.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "cell_feature_matrix.zarr.zip:md5,d41d8cd98f00b204e9800998ecf8427e", - "cells.csv.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "cells.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", - "cells.zarr.zip:md5,d41d8cd98f00b204e9800998ecf8427e", - "experiment.xenium:md5,d41d8cd98f00b204e9800998ecf8427e", - "gene_panel.json:md5,d41d8cd98f00b204e9800998ecf8427e", - "metrics_summary.csv:md5,d41d8cd98f00b204e9800998ecf8427e", - "morphology.ome.tif:md5,d41d8cd98f00b204e9800998ecf8427e", - "morphology_focus_0000.ome.tif:md5,d41d8cd98f00b204e9800998ecf8427e", - "nucleus_boundaries.csv.gz:md5,d41d8cd98f00b204e9800998ecf8427e", - "nucleus_boundaries.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", - "transcripts.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", - "transcripts.zarr.zip:md5,d41d8cd98f00b204e9800998ecf8427e", - "experiment.xenium:md5,d41d8cd98f00b204e9800998ecf8427e" + "fake_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "timestamp": "2026-07-28T12:22:02.690566285", + "timestamp": "2026-08-04T14:30:03.467198601", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.6" diff --git a/tests/image_mode.nf.test b/tests/image_mode.nf.test index 4a594afa..667ac1e2 100644 --- a/tests/image_mode.nf.test +++ b/tests/image_mode.nf.test @@ -3,7 +3,7 @@ nextflow_pipeline { name "Test pipeline for the `image` mode, test run the cellpose->baysor subworkflow" script "../main.nf" tag "pipeline" - config "../conf/test_image_mode.config" + config "../conf/tests/test_image_mode.config" test("-profile test stub") { diff --git a/tests/image_mode.nf.test.snap b/tests/image_mode.nf.test.snap index d70b912f..129ba64b 100644 --- a/tests/image_mode.nf.test.snap +++ b/tests/image_mode.nf.test.snap @@ -152,11 +152,10 @@ "nucleus_boundaries.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", "transcripts.parquet:md5,d41d8cd98f00b204e9800998ecf8427e", "transcripts.zarr.zip:md5,d41d8cd98f00b204e9800998ecf8427e", - "resized_morphology_focus_0000.ome_cp_masks.tif.tif:md5,d41d8cd98f00b204e9800998ecf8427e", - "experiment.xenium:md5,d41d8cd98f00b204e9800998ecf8427e" + "resized_morphology_focus_0000.ome_cp_masks.tif.tif:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], - "timestamp": "2026-07-28T12:22:39.999118613", + "timestamp": "2026-08-04T14:37:29.360791601", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.6" diff --git a/tests/preview_mode.nf.test b/tests/preview_mode.nf.test index 5a423490..2b615814 100644 --- a/tests/preview_mode.nf.test +++ b/tests/preview_mode.nf.test @@ -3,7 +3,7 @@ nextflow_pipeline { name "Test pipeline for the `preview` mode, test run the basyor-preview subworkflow" script "../main.nf" tag "pipeline" - config "../conf/test_preview_mode.config" + config "../conf/tests/test_preview_mode.config" test("-profile test stub") { diff --git a/tests/segfree_mode.nf.test b/tests/segfree_mode.nf.test index 854b17d5..6d048bc1 100644 --- a/tests/segfree_mode.nf.test +++ b/tests/segfree_mode.nf.test @@ -3,7 +3,7 @@ nextflow_pipeline { name "Test pipeline" script "../main.nf" tag "pipeline" - config "../conf/test_segfree_mode.config" + config "../conf/tests/test_segfree_mode.config" test("-profile test stub") {