From 94e0e36c28c18b956b8f51b6d7d23aa9f13564c3 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Wed, 27 Aug 2025 12:47:41 +0200 Subject: [PATCH 01/27] update pipeline level test --- nf-test.config | 2 +- tests/default.nf.test | 4 +- tests/default.nf.test.snap | 576 +++++++++++++++++++++++++++++++++++++ tests/preprocess.nf.test | 3 +- 4 files changed, 582 insertions(+), 3 deletions(-) create mode 100644 tests/default.nf.test.snap diff --git a/nf-test.config b/nf-test.config index 604f3b6..2285cf7 100644 --- a/nf-test.config +++ b/nf-test.config @@ -12,7 +12,7 @@ config { ignore 'modules/nf-core/**/tests/*', 'subworkflows/nf-core/**/tests/*' // run all test with defined profile(s) from the main nextflow.config - profile "test, docker" + profile "docker" // list of filenames or patterns that should be trigger a full test run triggers 'nextflow.config', 'nf-test.config', 'conf/test.config', 'tests/nextflow.config', 'tests/.nftignore' diff --git a/tests/default.nf.test b/tests/default.nf.test index e24f22d..13668ea 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -3,8 +3,10 @@ nextflow_pipeline { name "Test pipeline" script "../main.nf" tag "pipeline" + tag "gpu" + profile "docker,test_gpu" - test("-profile test") { + test("-profile test_gpu") { when { params { diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap new file mode 100644 index 0000000..cc440cd --- /dev/null +++ b/tests/default.nf.test.snap @@ -0,0 +1,576 @@ +{ + "-profile test_gpu": { + "content": [ + 8, + { + "MAT2JSON_INT": { + "mat2json": 1.0 + }, + "NUMORPH3DUNET": { + "numorph3dunet": 1.0 + }, + "NUMORPHALIGN": { + "numorphalign": 1.0 + }, + "NUMORPHINTENSITY": { + "numorphintensity": 1.0 + }, + "NUMORPHSTITCH": { + "numorphstitch": 1.0 + }, + "UNZIP": { + "7za": 16.02 + }, + "Workflow": { + "nf-core/lsmquant": "v1.0dev" + } + }, + [ + "TEST1", + "TEST1/alignment", + "TEST1/alignment/results", + "TEST1/alignment/results/NM_variables.mat", + "TEST1/alignment/results/samples", + "TEST1/alignment/results/samples/alignment", + "TEST1/alignment/results/samples/alignment/TEST1_ctip2_full.tif", + "TEST1/alignment/results/samples/alignment/TEST1_topro_full.tif", + "TEST1/alignment/results/variables", + "TEST1/alignment/results/variables/alignment_table.mat", + "TEST1/alignment/results/variables/path_table.mat", + "TEST1/alignment/results/variables/z_displacement_align.mat", + "TEST1/intensity", + "TEST1/intensity/results", + "TEST1/intensity/results/NM_variables.mat", + "TEST1/intensity/results/samples", + "TEST1/intensity/results/samples/intensity_adjustment", + "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", + "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", + "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", + "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", + "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", + "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", + "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", + "TEST1/intensity/results/variables", + "TEST1/intensity/results/variables/adj_params.mat", + "TEST1/intensity/results/variables/path_table.mat", + "TEST1/intensity/results/variables/thresholds.mat", + "TEST1/mat2json", + "TEST1/mat2json/align", + "TEST1/mat2json/align/NM_variables.json", + "TEST1/mat2json/align/alignment_table.json", + "TEST1/mat2json/align/path_table.json", + "TEST1/mat2json/align/z_displacement_align.json", + "TEST1/mat2json/intensity", + "TEST1/mat2json/intensity/NM_variables.json", + "TEST1/mat2json/intensity/adj_params.json", + "TEST1/mat2json/intensity/path_table.json", + "TEST1/mat2json/intensity/thresholds.json", + "TEST1/mat2json/stitch", + "TEST1/mat2json/stitch/adj_params.json", + "TEST1/mat2json/stitch/adjusted_z.csv", + "TEST1/mat2json/stitch/alignment_table.json", + "TEST1/mat2json/stitch/path_table.json", + "TEST1/mat2json/stitch/stitch_tforms.json", + "TEST1/mat2json/stitch/thresholds.json", + "TEST1/mat2json/stitch/z_disp_matrix.json", + "TEST1/mat2json/stitch/z_displacement_align.json", + "TEST1/mat2json/versions.yml", + "TEST1/segmentation", + "TEST1/segmentation/TEST1.csv", + "TEST1/segmentation/TEST1_counts.csv", + "TEST1/stitching", + "TEST1/stitching/results", + "TEST1/stitching/results/NM_variables.mat", + "TEST1/stitching/results/stitched", + "TEST1/stitching/results/stitched/TEST1_0001_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0001_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0002_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0002_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0003_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0003_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0004_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0004_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0005_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0005_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0006_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0006_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0007_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0007_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0008_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0008_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0009_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0009_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0010_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0010_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0011_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0011_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0012_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0012_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0013_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0013_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0014_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0014_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0015_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0015_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0016_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0016_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0017_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0017_C2_ctip2_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0018_C1_topro_stitched.tif", + "TEST1/stitching/results/stitched/TEST1_0018_C2_ctip2_stitched.tif", + "TEST1/stitching/results/variables", + "TEST1/stitching/results/variables/adj_params.mat", + "TEST1/stitching/results/variables/adjusted_z.mat", + "TEST1/stitching/results/variables/alignment_table.mat", + "TEST1/stitching/results/variables/path_table.mat", + "TEST1/stitching/results/variables/stitch_tforms.mat", + "TEST1/stitching/results/variables/thresholds.mat", + "TEST1/stitching/results/variables/z_disp_matrix.mat", + "TEST1/stitching/results/variables/z_displacement_align.mat", + "pipeline_info", + "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", + "unzip", + "unzip/TEST1", + "unzip/TEST1/ctip2_topro", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" + ], + [ + "NM_variables.mat:md5,d4fd21cb383f0d0df184e465a32dc371", + "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", + "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", + "alignment_table.mat:md5,dc6aa795b35001c33f6ff0d452fa0140", + "path_table.mat:md5,f5f0e887c50b838e69efda046047609c", + "z_displacement_align.mat:md5,514f304bf6633cc2eeba8849f15fa9c6", + "NM_variables.mat:md5,25ed9a52821de96068683ba5d4454967", + "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", + "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", + "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", + "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", + "flatfield_1.png:md5,f67ff3bff41158505ac1132e542d8bd6", + "flatfield_2.png:md5,5c915f810b286aa1853898618319ee3a", + "tile_adj_1.png:md5,3f84630dbfe72af950516239a5838f87", + "tile_adj_2.png:md5,0c96ca9bbafdfd47ab413d7fc17d3bb9", + "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", + "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", + "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", + "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", + "y_adj_1.png:md5,3a85c52f8668f056a442eaa713b85a8a", + "y_adj_2.png:md5,89e23f87bd9e0a05b5730bb566cd134f", + "adj_params.mat:md5,90c091ead6ba2cba4e48f24587b45f70", + "path_table.mat:md5,9564bdf930d56079e3991e2b6fb57a99", + "thresholds.mat:md5,5882bf41afd5ffa7060070dd247d8979", + "NM_variables.json:md5,5cd546cfb4f252cfdba288c58bda09e7", + "alignment_table.json:md5,d8aa800041cb30a175141e7bae84e450", + "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "NM_variables.json:md5,5cd546cfb4f252cfdba288c58bda09e7", + "adj_params.json:md5,b3951bdfa4d7f6539633c636ee2d06f0", + "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", + "thresholds.json:md5,39f24ba432b56e133aa9ff75fd35e79f", + "adj_params.json:md5,b3951bdfa4d7f6539633c636ee2d06f0", + "adjusted_z.csv:md5,363f2ef6c65a276bddd84b3939e240bd", + "alignment_table.json:md5,d8aa800041cb30a175141e7bae84e450", + "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", + "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", + "thresholds.json:md5,39f24ba432b56e133aa9ff75fd35e79f", + "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "versions.yml:md5,2525ed35a50c7d43e50daf45c81e2502", + "TEST1.csv:md5,03ade2aa5a38d978f6b1dd34d741844a", + "TEST1_counts.csv:md5,466295dc5cb794e773520be014ee38ee", + "NM_variables.mat:md5,0fe75932ca748a69c8f1dc1457ffd172", + "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", + "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", + "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", + "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", + "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", + "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", + "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", + "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", + "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", + "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", + "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", + "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", + "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", + "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", + "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", + "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", + "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", + "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", + "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", + "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", + "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", + "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", + "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", + "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", + "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", + "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", + "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", + "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", + "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", + "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", + "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", + "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", + "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", + "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", + "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", + "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", + "adj_params.mat:md5,90c091ead6ba2cba4e48f24587b45f70", + "adjusted_z.mat:md5,a419aa5fc27b146391acc57ce17abd09", + "alignment_table.mat:md5,dc6aa795b35001c33f6ff0d452fa0140", + "path_table.mat:md5,f5f0e887c50b838e69efda046047609c", + "stitch_tforms.mat:md5,3375a5903faa1c43d475368b7514f7fb", + "thresholds.mat:md5,5882bf41afd5ffa7060070dd247d8979", + "z_disp_matrix.mat:md5,bd0e6b256650d504d95b00083cfdc459", + "z_displacement_align.mat:md5,514f304bf6633cc2eeba8849f15fa9c6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif:md5,4696a351aae54e5743c727a241bd8054", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif:md5,3ea6ccdb7621ce38b6dce54ec427fc68", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif:md5,659f6770b9fbbc2e25444e45afbbdca9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif:md5,4a0753196ec13d94197cc1cd664118e9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif:md5,8ac1c9dcb3b4a8c524b3a50710822b22", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif:md5,cc90e9010e8af068def04bfa05447bcb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif:md5,9496e9c2f2fab7dc7bf1cd8c426fec2a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif:md5,58b3380cb607b2386054dd0150d5bfe6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif:md5,4bd92251df0a09f284998da07ed9a28a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif:md5,fb687c3253ad67292854396eccadf93f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif:md5,b91d11baeb2f4d4b6facf3c42baf5559", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif:md5,9048571bb58c1d53e9f5e78d0aace06f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif:md5,f9bdba923be7efbbfa579078fe482077", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif:md5,4300e7df0b119a24cf97759dd60d8d1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif:md5,f0b8b26c957f54bb5753fb05c5543cce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif:md5,c0acc44a4fb7a3319697c50940866c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif:md5,6f4f070c8b4f6b7c6d3f250490204344", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif:md5,75f49c36b2f68389b74e099f1a511aab", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif:md5,877ebc92d32c2627479cb8de90479df3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif:md5,aadb50e79b121c9409233ec9d974c93e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif:md5,8ffa145b84becb2e393ea392b61221e2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif:md5,5485a677ee6120c4335da191b7c71775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif:md5,ac8f0b7af5818f5d847022acdaed148e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif:md5,0d933b1e15250d9f7941a401854597f6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif:md5,fee96a7fcf33a2109a56c9340700468c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif:md5,4c0919d495b2a46361ac9c388ddc4171", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif:md5,94d6f32f40d1a4a651878b6d3efa6442", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif:md5,c5e47a7f36cf3939a69fe941b265a63e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif:md5,6e0ac8cb6ce0f3ecab8ec32c92d64c75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif:md5,5bbe6e0313b545c92a80fdc449c7eef5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif:md5,b75397c891e3227f6924b7c4e4e07227", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif:md5,87c0da116039d2504e6cee762531fc3a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif:md5,34190fa382ba86c19c266267cae274cf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif:md5,a073cedbd1623037337a3bf66a0d2509", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif:md5,d14d01971e1067f9c69e8fd3d40658f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif:md5,be4e0ea00e04d4961a28d9b56ec0ef6a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif:md5,f23178bfeaee7c335e3712a727f7a8f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif:md5,abdf257747a4a7f221598beed75fcfeb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif:md5,544b6b4cbcbc41282c2a673ce6e5d8f0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif:md5,3f4430ff9848f2e416593b525d6dee55", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif:md5,d909260b4a17c58e263b430e8dfdfb75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif:md5,382f40799d7953bea50e93027db11ccd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif:md5,33986578219177e6d193b34b15f7c9b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif:md5,5579dcfac911e69aa303ec4861b996d2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif:md5,2348dcbc31e2bdfb6c70f3252af90c0b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif:md5,0510c1c30a5a3a2cf4585ea750bb4688", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif:md5,13ff8029541013f7edb6f466efe1208b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif:md5,b19fa191e907c0adb0a7617f06aeea4c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif:md5,7853ebadfbde3f8b922ef8ca2caad068", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif:md5,5744ea7c8832aca72b42708fea9b1be8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif:md5,5e4dbfe159aacc266237af1d516b34e6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif:md5,caa9d77a6246090cf0c16baa9752cfd1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif:md5,ae832832dec48fdec3d70e4e1ad24d75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif:md5,8b5378a0ff0f6895efa3bc9f0fc0f367", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif:md5,786aae2a7e318e753fd35668209d88b4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif:md5,9f7707efd5621381ad1d7105345fea24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif:md5,2fedb7ab7851fe7b645f65697edb63f7", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif:md5,7b001437f260d01c84bae46355cfc175", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif:md5,3ffe776d5d28d322db1f434cfbd5ae45", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif:md5,e749583273099631b0d0353d5e4511e1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif:md5,aaf788f0b67ac02247d33d06311878bd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif:md5,7608e074b61771a2567e9287e4b61cf2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif:md5,bfcd74014e58851cdd1b10f6c002ab67", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif:md5,9f5e41ed9be226075660ac14b0c50e86", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif:md5,6be760083a55a9484ae27d10dbff1715", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif:md5,399b55ada07c5fb15509140df0e08ab0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif:md5,1b0adcd349239c1b9d231d7abe9d209e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif:md5,127e0542db979a61d6179500da7a8686", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif:md5,d08fba09b3924f54892016208ac3b3e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif:md5,2c2af0e64d084ba01dd8def74ebdf8ac", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif:md5,9a06fcbd0277220356384ae53b07fe2f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif:md5,c9ad0485e27f394d86e2313f791eb5a8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif:md5,4b143f64580e6ac687dc422b3d2b62fe", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif:md5,3b04b738e6081eda29c25840ecc56424", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif:md5,7073637f421bf589895d8278b6b76396", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif:md5,7c53da56931e1ebca641cf89408cea35", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif:md5,70d922572b191bba87db884a6a78de1e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif:md5,0731e9d863155ed413d2304cd39b4c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif:md5,72a600b34ab829bcdb349de1666b6bbb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif:md5,0d75d4438e4dd40a11aea21576e0db0c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif:md5,dfdcc9e6bb10afcd117a4228e160368f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif:md5,470a01158003f74da5487468df0b2636", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif:md5,d1db4fea718b9fd83919a5ccb64ace9c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif:md5,6c94577471e6a2815e0794a5bbe49e74", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif:md5,6ade6266d67a56a58e3048e2a41be71a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif:md5,257b58f4f237270955636afa5e7c158d", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif:md5,17712054bba72efe4b3f8b4d9df2a5a0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif:md5,f7f3ae40f70ec469eab77342eaa57bf3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif:md5,f1e4b447bc37ce937eb2e3023fdae094", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif:md5,146321d14232cb1de14d8e044f11e4ce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif:md5,d929b4c176abf03e4851dcfbc8a1ed16", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif:md5,27551d9576ed4440e918a2ec60f94931", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif:md5,9d6cfafc558e5b66d18add3dfeec4244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif:md5,a82162ce680f1928cd5416ac153d36df", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif:md5,978119009ed5da3eb9a631b2a5021064", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif:md5,47b2b4621a171697d1218b3e10a858ae", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif:md5,fa1c2d7b56aa0525230d0f56af1ee75b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif:md5,e8d10bb1281b05cb1975b78551c598d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif:md5,23fc1d734e784d7402adf73cd4ee1021", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif:md5,eed98be51b025745b4de480655e60d05", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif:md5,323f21c8bba1649c278d83de9d3d1f25", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif:md5,3cd96aa2914b28a9dc7c6b8bc7dcc8ec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif:md5,7074583255da8071c6233a6064087bfb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif:md5,e8930f83802ca0b442284d60d4b2d211", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif:md5,93af177e91edb8cafe21edb7958f58e4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif:md5,ba56a8717423e049f26b4bfa21f9b7c9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif:md5,4272e5a94329724beaec8b3332dc59be", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif:md5,952779032aa0d5ddd9d937a7dc0ee4b0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif:md5,98ef1216a3cf6b1c85e69cf493dfa19b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif:md5,1a485230e224f4084f9f59024f4aa065", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif:md5,902cdfb1da488a8c19dfbf0778de4087", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif:md5,aea06540f31dd74e7691121a17093a5b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif:md5,635f536ceb784170799fc91000cbaa6b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif:md5,cf4a370b59b260c6af3a48fc8c84ced2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif:md5,3e4ae7181947ab3757ec5a2f67e3b472", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif:md5,708e4e1a9fb160de9d0c65af62180846", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif:md5,81df70b026bbfe96f4258d0e416e427c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif:md5,8ce34f974d150ce382b0eecb3dbb5898", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif:md5,95012622f95a3cfd0bc1327dcc34e0b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif:md5,ad1983f5f6003d0f661c17f6e0b60bec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif:md5,51d6ebe4eb88704d8ca67561d47c95b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif:md5,6900929ad8dfd3f0c8b0dce5f59dd4a5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif:md5,b3009a2a6736171b8f28c0630b85a606", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif:md5,57c619f503078739317641848f6eb69a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif:md5,3d9baf2a67581d72194f0354154b120f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif:md5,6674132080cfabfc639be9c80ec9090f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif:md5,419080c6ec0578bcde19a9f4360535b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif:md5,9314465994d55011eba9e1239c5b855c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif:md5,dd044d2d61d337935b1c66b4286bc8bf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif:md5,f44e51b79aeca18e62e5284a4e74e244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif:md5,ea5e1bace16ea20be45fdb4562a5ad64", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif:md5,f3cf28bf23ca3d2fb8611a80d2fcfe10", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif:md5,cdb745f3ccfac5b309d22c08570deb24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif:md5,3dc41f65c22c81e6f5b12277c6b827fa", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif:md5,28c4b3e6a9c93957da94fce9c4b949d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif:md5,0070c463e9928492053bd1b88b617bdf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif:md5,a21b3c78191aaa5d78f51c6627041f72", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif:md5,0a5f43af602e48341eb621a7dfc5c4f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif:md5,d6f4ee9ef8a93cc6b977f3231840d8e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif:md5,913744509efac629fbd14c648b30b2c1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif:md5,70db6c8f0dfb7607d8aada3ff813edc2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif:md5,38ab5e5448b69d7808e6fe1c888fdde5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif:md5,21f540d85c3395b11d2146a858088b1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif:md5,4bb6c7de160539b3db5485fa6944109a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif:md5,152931c5d09894e74e3216b62e6d1446", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif:md5,c9af3b9a2044760bd5ad2ff912ad9076", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif:md5,9afd8c433a4c12e9ffb2e7ef72d665f3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif:md5,0390cf7ce133f1b04946341973eeb29c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif:md5,114aa0fff83db1e693a73ac9a9e795c0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif:md5,d801111f07bedfbb9508bfed1e5f8d0a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif:md5,c4dcf031c9f33da4a1261324f212103a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif:md5,467f11413dbd56cd2e781003b3973e87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif:md5,89f163ab69b8a66bbc4bc9c17880cba0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif:md5,8d329fb7ca37b261bf419c114bcc3775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif:md5,486dad8db46e853eee60dccfc716b543", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif:md5,3a4caf7fab942a5eb0a8666a86c4552e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif:md5,7781ff916dfae4f9b8093d04d2e5ddd6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif:md5,93269be5f9ba1e07b2ee253f9f9574d9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif:md5,013f6d3ea185745eb2e02c05f3418eaf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif:md5,c59a5b5dd08bf4acfa0f954e25c5419f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif:md5,9b122cba54fb3d8f2f3f7a9df7b9821b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif:md5,fa8f8bef57029e14c0eb6daf7bab2886", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif:md5,d316f89e3752621cb93bf8de1f694000", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif:md5,43d0386b21d9f6a36c209dc3ab60d1cc", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif:md5,b4f4be8e38b3b84dcd1a34a2b1968abc" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-27T12:44:17.082585224" + } +} \ No newline at end of file diff --git a/tests/preprocess.nf.test b/tests/preprocess.nf.test index f0fab75..533fada 100644 --- a/tests/preprocess.nf.test +++ b/tests/preprocess.nf.test @@ -4,8 +4,9 @@ nextflow_pipeline { script "../main.nf" tag "cpu" tag "pipeline_lsmquant" + profile "test" - test("-profile test") { + test("-profile test preprocess") { when { params { From ab0542df6f9edcfded2532e569d2da4e582e5e5e Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Wed, 27 Aug 2025 13:55:51 +0200 Subject: [PATCH 02/27] update subworkflows + modules, update meta.yml of numorph subworkflows --- modules.json | 12 ++-- modules/nf-core/basicpy/environment.yml | 3 - modules/nf-core/basicpy/main.nf | 15 +++-- modules/nf-core/basicpy/meta.yml | 27 +++++--- modules/nf-core/basicpy/tests/main.nf.test | 64 +++++++++++++++++++ .../nf-core/basicpy/tests/main.nf.test.snap | 53 +++++++++++++++ modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +- modules/nf-core/multiqc/meta.yml | 0 modules/nf-core/multiqc/tests/main.nf.test | 0 .../nf-core/multiqc/tests/main.nf.test.snap | 20 +++--- modules/nf-core/multiqc/tests/tags.yml | 2 - modules/nf-core/unzip/meta.yml | 18 ++++-- modules/nf-core/unzip/tests/tags.yml | 2 - subworkflows/local/araregistration/meta.yml | 59 +++++++++-------- .../local/numorph_preprocessing/main.nf | 2 +- .../local/numorph_preprocessing/meta.yml | 57 ++++++++--------- .../nf-core/utils_nextflow_pipeline/main.nf | 0 .../nf-core/utils_nextflow_pipeline/meta.yml | 0 .../tests/main.function.nf.test | 0 .../tests/main.function.nf.test.snap | 0 .../tests/main.workflow.nf.test | 0 .../tests/nextflow.config | 0 .../utils_nextflow_pipeline/tests/tags.yml | 2 - .../nf-core/utils_nfcore_pipeline/main.nf | 0 .../nf-core/utils_nfcore_pipeline/meta.yml | 0 .../tests/main.function.nf.test | 0 .../tests/main.function.nf.test.snap | 0 .../tests/main.workflow.nf.test | 0 .../tests/main.workflow.nf.test.snap | 0 .../tests/nextflow.config | 0 .../utils_nfcore_pipeline/tests/tags.yml | 2 - .../tests/nextflow.config | 2 +- .../tests/nextflow_schema.json | 0 34 files changed, 234 insertions(+), 112 deletions(-) delete mode 100644 modules/nf-core/basicpy/environment.yml create mode 100644 modules/nf-core/basicpy/tests/main.nf.test create mode 100644 modules/nf-core/basicpy/tests/main.nf.test.snap mode change 100755 => 100644 modules/nf-core/multiqc/environment.yml mode change 100755 => 100644 modules/nf-core/multiqc/main.nf mode change 100755 => 100644 modules/nf-core/multiqc/meta.yml mode change 100755 => 100644 modules/nf-core/multiqc/tests/main.nf.test mode change 100755 => 100644 modules/nf-core/multiqc/tests/main.nf.test.snap delete mode 100755 modules/nf-core/multiqc/tests/tags.yml delete mode 100644 modules/nf-core/unzip/tests/tags.yml mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/main.nf mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/meta.yml mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test mode change 100755 => 100644 subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config delete mode 100755 subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/main.nf mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/meta.yml mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap mode change 100755 => 100644 subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config delete mode 100755 subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml mode change 100755 => 100644 subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/modules.json b/modules.json index e780646..6c05a02 100755 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "basicpy": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"] }, "fastqc": { @@ -17,12 +17,12 @@ }, "multiqc": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "a4488d3d09244f29fb4606ba4eef85d59dcc6ad8", "installed_by": ["modules"] }, "unzip": { "branch": "master", - "git_sha": "81880787133db07d9b4c1febd152c090eb8325dc", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"] }, "unzipfiles": { @@ -36,17 +36,17 @@ "nf-core": { "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "c2b22d85f30a706a3073387f30380704fcae013b", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "51ae5406a030d4da1e49e4dab49756844fdd6c7a", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", - "git_sha": "2fd2cd6d0e7b273747f32e465fdc6bcc3ae0814e", + "git_sha": "dcd088f483cede0c3df4034d405126f05a764cc7", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/basicpy/environment.yml b/modules/nf-core/basicpy/environment.yml deleted file mode 100644 index 3cebeff..0000000 --- a/modules/nf-core/basicpy/environment.yml +++ /dev/null @@ -1,3 +0,0 @@ -channels: - - conda-forge - - bioconda diff --git a/modules/nf-core/basicpy/main.nf b/modules/nf-core/basicpy/main.nf index da87a0b..7cf650f 100644 --- a/modules/nf-core/basicpy/main.nf +++ b/modules/nf-core/basicpy/main.nf @@ -8,8 +8,8 @@ process BASICPY { tuple val(meta), path(image) output: - tuple val(meta), path("*.tiff"), emit: fields - path "versions.yml" , emit: versions + tuple val(meta), path("*-dfp.tiff"), path("*-ffp.tiff"), emit: profiles + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -19,15 +19,14 @@ process BASICPY { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "Basicpy module does not support Conda. Please use Docker / Singularity instead." } - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' def VERSION = "1.2.0-patch1" // WARN: Version information not provided by tool on CLI. Please update this string when bumping """ /opt/main.py -i $image -o . $args cat <<-END_VERSIONS > versions.yml "${task.process}": - basicpy:: $VERSION + basicpy: $VERSION END_VERSIONS """ @@ -36,13 +35,15 @@ process BASICPY { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "Basicpy module does not support Conda. Please use Docker / Singularity instead." } + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = "1.2.0-patch1" // WARN: Version information not provided by tool on CLI. Please update this string when bumping """ touch ${prefix}.-dfp.tiff - touch ${prefix}.-dfp.tiff + touch ${prefix}.-ffp.tiff cat <<-END_VERSIONS > versions.yml "${task.process}": - basicpy:: $VERSION + basicpy: $VERSION END_VERSIONS """ } diff --git a/modules/nf-core/basicpy/meta.yml b/modules/nf-core/basicpy/meta.yml index b143f5d..2cdd992 100644 --- a/modules/nf-core/basicpy/meta.yml +++ b/modules/nf-core/basicpy/meta.yml @@ -28,22 +28,31 @@ input: type: file description: Tiff file to be used for dark and flat field illumination correction pattern: "*.{tiff,tif}" + ontologies: [] output: - - fields: - - meta: + profiles: + - - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test' ] - - "*.tiff": + - "*-dfp.tiff": type: file - description: Tiff fields for dark and flat field illumination correction - pattern: "*.{tiff,tif}" - - versions: - - versions.yml: + description: Tiff fields for dark field illumination correction + pattern: "*.{tiff}" + ontologies: [] + - "*-ffp.tiff": type: file - description: File containing software versions - pattern: "versions.yml" + description: Tiff fields for flat field illumination correction + pattern: "*.{tiff}" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@FloWuenne" maintainers: diff --git a/modules/nf-core/basicpy/tests/main.nf.test b/modules/nf-core/basicpy/tests/main.nf.test new file mode 100644 index 0000000..40ba4dd --- /dev/null +++ b/modules/nf-core/basicpy/tests/main.nf.test @@ -0,0 +1,64 @@ +nextflow_process { + + name "Test Process BASICPY" + script "../main.nf" + process "BASICPY" + + tag "modules" + tag "modules_nfcore" + tag "basicpy" + + test("basicpy - OME-TIFF") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'imaging/ome-tiff/cycif-tonsil-cycle1.ome.tif', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.versions, + file(process.out.profiles.get(0).get(1)).exists(), + file(process.out.profiles.get(0).get(2)).exists(), + file(process.out.profiles.get(0).get(1)).size(), + file(process.out.profiles.get(0).get(2)).size() + ).match() + }, + ) + } + + } + + test("basicpy - OME-TIFF - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'imaging/ome-tiff/cycif-tonsil-cycle1.ome.tif', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/basicpy/tests/main.nf.test.snap b/modules/nf-core/basicpy/tests/main.nf.test.snap new file mode 100644 index 0000000..94b14ec --- /dev/null +++ b/modules/nf-core/basicpy/tests/main.nf.test.snap @@ -0,0 +1,53 @@ +{ + "basicpy - OME-TIFF": { + "content": [ + [ + "versions.yml:md5,1391fd5a5745a20016f9824467273113" + ], + true, + true, + 633904, + 633904 + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-12T20:14:46.041882924" + }, + "basicpy - OME-TIFF - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.-dfp.tiff:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.-ffp.tiff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,1391fd5a5745a20016f9824467273113" + ], + "profiles": [ + [ + { + "id": "test" + }, + "test.-dfp.tiff:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.-ffp.tiff:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,1391fd5a5745a20016f9824467273113" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.5" + }, + "timestamp": "2025-03-12T20:14:53.621168198" + } +} \ No newline at end of file diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml old mode 100755 new mode 100644 index 812fc4c..f893704 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.29 + - bioconda::multiqc=1.30 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf old mode 100755 new mode 100644 index 0ac3c36..67460de --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.29--pyhdfd78af_0' : - 'biocontainers/multiqc:1.29--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.30--pyhdfd78af_1' : + 'biocontainers/multiqc:1.30--pyhdfd78af_1' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml old mode 100755 new mode 100644 diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test old mode 100755 new mode 100644 diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap old mode 100755 new mode 100644 index 88e9057..0d3f288 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-05-22T11:50:41.182332996" + "timestamp": "2025-07-10T08:06:23.563041241" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-05-22T11:51:22.448739369" + "timestamp": "2025-07-10T08:06:48.96226832" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-05-22T11:51:06.198928424" + "timestamp": "2025-07-10T08:06:40.627008706" } -} \ No newline at end of file +} diff --git a/modules/nf-core/multiqc/tests/tags.yml b/modules/nf-core/multiqc/tests/tags.yml deleted file mode 100755 index bea6c0d..0000000 --- a/modules/nf-core/multiqc/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -multiqc: - - modules/nf-core/multiqc/** diff --git a/modules/nf-core/unzip/meta.yml b/modules/nf-core/unzip/meta.yml index 426fccb..ba1eb91 100644 --- a/modules/nf-core/unzip/meta.yml +++ b/modules/nf-core/unzip/meta.yml @@ -24,9 +24,11 @@ input: type: file description: ZIP file pattern: "*.zip" + ontologies: + - edam: http://edamontology.org/format_3987 # ZIP format output: - - unzipped_archive: - - meta: + unzipped_archive: + - - meta: type: map description: | Groovy Map containing sample information @@ -35,11 +37,13 @@ output: type: directory description: Directory contents of the unzipped archive pattern: "${archive.baseName}/" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@jfy133" maintainers: diff --git a/modules/nf-core/unzip/tests/tags.yml b/modules/nf-core/unzip/tests/tags.yml deleted file mode 100644 index 7f5647e..0000000 --- a/modules/nf-core/unzip/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -unzip: - - "modules/nf-core/unzip/**" diff --git a/subworkflows/local/araregistration/meta.yml b/subworkflows/local/araregistration/meta.yml index 4da8bc7..36d04c2 100644 --- a/subworkflows/local/araregistration/meta.yml +++ b/subworkflows/local/araregistration/meta.yml @@ -1,44 +1,47 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "araregistration" ## TODO nf-core: Add a description of the subworkflow and list keywords -description: Sort SAM/BAM/CRAM file +description: Image registration of 2D stitched images to the Allan reference atlas keywords: - - sort - - bam - - sam - - cram -## TODO nf-core: Add a list of the modules and/or subworkflows used in the subworkflow + - registration + - mouse brain + - atlas components: - - samtools/sort - - samtools/index -## TODO nf-core: List all of the channels used as input with a description and their structure + - numorphresample + - numorphregister + - mat2json input: - - ch_bam: - type: file + - stitched_data: + type: path + description: | + The input channel containing the stitched TIFF files and the parameter file + Structure: [ val(meta), path(stitched), path(parameters) ] + pattern: "*.tif/tiff/csv" + - NM_variables: + type: path description: | - The input channel containing the BAM/CRAM/SAM files - Structure: [ val(meta), path(bam) ] - pattern: "*.{bam/cram/sam}" -## TODO nf-core: List all of the channels used as output with a descriptions and their structure + The input channel containing the numorph processing parameter file (MAT) + Structure: [ val(meta), path(NM_variables) ] + pattern: "*.mat" output: - - bam: + - reg_mask: type: file description: | - Channel containing BAM files - Structure: [ val(meta), path(bam) ] - pattern: "*.bam" - - bai: - type: file + Channel containing registration mask file + Structure: path(mat) + pattern: "*.mat" + - registered: + type: path description: | - Channel containing indexed BAM (BAI) files - Structure: [ val(meta), path(bai) ] - pattern: "*.bai" - - csi: + Channel containing path to registered image files + Structure: path(nii) + pattern: "*.nii" + - NM_variables: type: file description: | - Channel containing CSI files - Structure: [ val(meta), path(csi) ] - pattern: "*.csi" + Channel containing numorph processing parameter file (MAT) + Structure: path(NM_variables.mat) + pattern: "*.mat" - versions: type: file description: | diff --git a/subworkflows/local/numorph_preprocessing/main.nf b/subworkflows/local/numorph_preprocessing/main.nf index af503ce..66e9412 100644 --- a/subworkflows/local/numorph_preprocessing/main.nf +++ b/subworkflows/local/numorph_preprocessing/main.nf @@ -9,7 +9,7 @@ include { MAT2JSON as MAT2JSON_STITCH } from '../../../modules/local/ma workflow NUMORPH_PREPROCESSING { take: - samplesheet // channel: [ val(meta), path(imf_directory), path(parameter_file) ] + samplesheet // channel: [ val(meta), path(img_directory), path(parameter_file) ] main: diff --git a/subworkflows/local/numorph_preprocessing/meta.yml b/subworkflows/local/numorph_preprocessing/meta.yml index 7cff8b8..badc35d 100644 --- a/subworkflows/local/numorph_preprocessing/meta.yml +++ b/subworkflows/local/numorph_preprocessing/meta.yml @@ -1,44 +1,43 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "numorph_preprocessing" -## TODO nf-core: Add a description of the subworkflow and list keywords -description: Sort SAM/BAM/CRAM file +description: preprocessing (intensity adjustment, alignment, stitching) of 2D single channel single tile TIFF images. keywords: - - sort - - bam - - sam - - cram -## TODO nf-core: Add a list of the modules and/or subworkflows used in the subworkflow + - intensity + - alignment + - stitching + - tiff + components: - - samtools/sort - - samtools/index -## TODO nf-core: List all of the channels used as input with a description and their structure + - numorphintensity + - numorphalign + - numorphstitch + - mat2json input: - - ch_bam: - type: file + - samplesheet: + type: tuple description: | - The input channel containing the BAM/CRAM/SAM files - Structure: [ val(meta), path(bam) ] - pattern: "*.{bam/cram/sam}" -## TODO nf-core: List all of the channels used as output with a descriptions and their structure + The input channel containing the metadata, image directory and parameter file. + Structure: [ val(meta), path(img_directory), path(parameter_file)] + pattern: "*.{tif/tiff/csv}" output: - - bam: - type: file + - stitched: + type: path description: | - Channel containing BAM files - Structure: [ val(meta), path(bam) ] - pattern: "*.bam" - - bai: + Channel containing path to stitched Tiff files + Structure: [ val(meta), path(stitched) ] + pattern: "*.tif/tiff" + - intensity_thresholds: type: file description: | - Channel containing indexed BAM (BAI) files - Structure: [ val(meta), path(bai) ] - pattern: "*.bai" - - csi: + Channel containing intensity threshold (MAT) file + Structure: path(thresholds_mat) + pattern: "*.mat" + - NM_variables: type: file description: | - Channel containing CSI files - Structure: [ val(meta), path(csi) ] - pattern: "*.csi" + Channel containing numorph processing parameter file (MAT) + Structure: path(NM_variables.mat) + pattern: "*.mat" - versions: type: file description: | diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml deleted file mode 100755 index f847611..0000000 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nextflow_pipeline: - - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config old mode 100755 new mode 100644 diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml deleted file mode 100755 index ac8523c..0000000 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nfcore_pipeline: - - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config index 09ef842..443e828 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config @@ -5,4 +5,4 @@ plugins { validation { parametersSchema = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" monochromeLogs = true -} \ No newline at end of file +} diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json old mode 100755 new mode 100644 From 44543dff9d9de2811c17d010b781d848d626d089 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Wed, 27 Aug 2025 15:02:04 +0200 Subject: [PATCH 03/27] update stub pipeline test --- tests/preprocess_stub.nf.test | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/preprocess_stub.nf.test b/tests/preprocess_stub.nf.test index bbb0747..8dbab90 100644 --- a/tests/preprocess_stub.nf.test +++ b/tests/preprocess_stub.nf.test @@ -3,6 +3,7 @@ nextflow_pipeline { name "Test preprocess workflow stub" script "../main.nf" tag "stub" + profile "docker" test("-profile test, stub") { options "-stub" From 48e6e390a18e50c668174f4f53324841c4cd0937 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Wed, 27 Aug 2025 16:02:06 +0200 Subject: [PATCH 04/27] update snapshots pipeline level tests, update config files --- nf-test.config | 2 +- tests/default.nf.test.snap | 72 +++++++++++++++--------------- tests/preprocess.nf.test | 2 +- tests/preprocess.nf.test.snap | 6 +-- tests/preprocess_stub.nf.test | 3 +- tests/preprocess_stub.nf.test.snap | 4 +- 6 files changed, 45 insertions(+), 44 deletions(-) diff --git a/nf-test.config b/nf-test.config index 2285cf7..604f3b6 100644 --- a/nf-test.config +++ b/nf-test.config @@ -12,7 +12,7 @@ config { ignore 'modules/nf-core/**/tests/*', 'subworkflows/nf-core/**/tests/*' // run all test with defined profile(s) from the main nextflow.config - profile "docker" + profile "test, docker" // list of filenames or patterns that should be trigger a full test run triggers 'nextflow.config', 'nf-test.config', 'conf/test.config', 'tests/nextflow.config', 'tests/.nftignore' diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index cc440cd..dd39d96 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -309,50 +309,50 @@ "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" ], [ - "NM_variables.mat:md5,d4fd21cb383f0d0df184e465a32dc371", + "NM_variables.mat:md5,e706418c4724b2a400365dff7a6af338", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "alignment_table.mat:md5,dc6aa795b35001c33f6ff0d452fa0140", - "path_table.mat:md5,f5f0e887c50b838e69efda046047609c", - "z_displacement_align.mat:md5,514f304bf6633cc2eeba8849f15fa9c6", - "NM_variables.mat:md5,25ed9a52821de96068683ba5d4454967", + "alignment_table.mat:md5,d7a13d06d9e5e7066f4b512164a18f2a", + "path_table.mat:md5,6252baaa86f0aa1bf7ed81766ee7febd", + "z_displacement_align.mat:md5,7fd164065274fadbed2fcea788985b82", + "NM_variables.mat:md5,4d55500a124c677a44465ebc346c4412", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,f67ff3bff41158505ac1132e542d8bd6", - "flatfield_2.png:md5,5c915f810b286aa1853898618319ee3a", - "tile_adj_1.png:md5,3f84630dbfe72af950516239a5838f87", - "tile_adj_2.png:md5,0c96ca9bbafdfd47ab413d7fc17d3bb9", + "flatfield_1.png:md5,70d9797c9cf2c02eaad4cb86f329b394", + "flatfield_2.png:md5,71db816055e579cdba42eb05d643613e", + "tile_adj_1.png:md5,195ac96ac1ea0e05a3ca41d662f9e752", + "tile_adj_2.png:md5,2b4431096c0d8fd1f4c4e9ad7da1b7f6", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,3a85c52f8668f056a442eaa713b85a8a", - "y_adj_2.png:md5,89e23f87bd9e0a05b5730bb566cd134f", - "adj_params.mat:md5,90c091ead6ba2cba4e48f24587b45f70", - "path_table.mat:md5,9564bdf930d56079e3991e2b6fb57a99", - "thresholds.mat:md5,5882bf41afd5ffa7060070dd247d8979", - "NM_variables.json:md5,5cd546cfb4f252cfdba288c58bda09e7", - "alignment_table.json:md5,d8aa800041cb30a175141e7bae84e450", - "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", + "y_adj_1.png:md5,be0b43fbbab1c720fb3217c87c8efc6a", + "y_adj_2.png:md5,e4595f36fcd0d0ef18ae57a976a736cb", + "adj_params.mat:md5,0900ce9bf36aee491587d1b903e85565", + "path_table.mat:md5,376cb8ff82de242309c51142ab096680", + "thresholds.mat:md5,bbda95aded722f6ec39dc500891e97e9", + "NM_variables.json:md5,973db6a0c69f126cb3d8bdbff898d961", + "alignment_table.json:md5,05b6f7bf8fbb43d553c438c7de933b7c", + "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "NM_variables.json:md5,5cd546cfb4f252cfdba288c58bda09e7", - "adj_params.json:md5,b3951bdfa4d7f6539633c636ee2d06f0", - "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", - "thresholds.json:md5,39f24ba432b56e133aa9ff75fd35e79f", - "adj_params.json:md5,b3951bdfa4d7f6539633c636ee2d06f0", - "adjusted_z.csv:md5,363f2ef6c65a276bddd84b3939e240bd", - "alignment_table.json:md5,d8aa800041cb30a175141e7bae84e450", - "path_table.json:md5,c1794aeb366490cfdc47315f58c559d0", + "NM_variables.json:md5,973db6a0c69f126cb3d8bdbff898d961", + "adj_params.json:md5,05ccfd257b06a2a825abffd5680fa4e4", + "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", + "thresholds.json:md5,dd08458146588268db81b66d699236f4", + "adj_params.json:md5,05ccfd257b06a2a825abffd5680fa4e4", + "adjusted_z.csv:md5,d7b98b45ad6b3ac13cff31aa13ca8107", + "alignment_table.json:md5,05b6f7bf8fbb43d553c438c7de933b7c", + "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", - "thresholds.json:md5,39f24ba432b56e133aa9ff75fd35e79f", + "thresholds.json:md5,dd08458146588268db81b66d699236f4", "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", "versions.yml:md5,2525ed35a50c7d43e50daf45c81e2502", "TEST1.csv:md5,03ade2aa5a38d978f6b1dd34d741844a", "TEST1_counts.csv:md5,466295dc5cb794e773520be014ee38ee", - "NM_variables.mat:md5,0fe75932ca748a69c8f1dc1457ffd172", + "NM_variables.mat:md5,9606c399e1960c0d5a0412c2a96d0051", "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", @@ -389,14 +389,14 @@ "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", - "adj_params.mat:md5,90c091ead6ba2cba4e48f24587b45f70", - "adjusted_z.mat:md5,a419aa5fc27b146391acc57ce17abd09", - "alignment_table.mat:md5,dc6aa795b35001c33f6ff0d452fa0140", - "path_table.mat:md5,f5f0e887c50b838e69efda046047609c", - "stitch_tforms.mat:md5,3375a5903faa1c43d475368b7514f7fb", - "thresholds.mat:md5,5882bf41afd5ffa7060070dd247d8979", - "z_disp_matrix.mat:md5,bd0e6b256650d504d95b00083cfdc459", - "z_displacement_align.mat:md5,514f304bf6633cc2eeba8849f15fa9c6", + "adj_params.mat:md5,0900ce9bf36aee491587d1b903e85565", + "adjusted_z.mat:md5,14ee5325f681609396aee2c92bad3603", + "alignment_table.mat:md5,d7a13d06d9e5e7066f4b512164a18f2a", + "path_table.mat:md5,6252baaa86f0aa1bf7ed81766ee7febd", + "stitch_tforms.mat:md5,f627a1e3d70258a0b0299b81f47ac226", + "thresholds.mat:md5,bbda95aded722f6ec39dc500891e97e9", + "z_disp_matrix.mat:md5,73aa0678963e363a8807945f2571a416", + "z_displacement_align.mat:md5,7fd164065274fadbed2fcea788985b82", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", @@ -571,6 +571,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-27T12:44:17.082585224" + "timestamp": "2025-08-27T16:00:17.700403194" } } \ No newline at end of file diff --git a/tests/preprocess.nf.test b/tests/preprocess.nf.test index 533fada..db312fc 100644 --- a/tests/preprocess.nf.test +++ b/tests/preprocess.nf.test @@ -4,7 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "cpu" tag "pipeline_lsmquant" - profile "test" + test("-profile test preprocess") { diff --git a/tests/preprocess.nf.test.snap b/tests/preprocess.nf.test.snap index 5ba06fd..624b99d 100644 --- a/tests/preprocess.nf.test.snap +++ b/tests/preprocess.nf.test.snap @@ -1,5 +1,5 @@ { - "-profile test": { + "-profile test preprocess": { "content": [ 7, { @@ -305,8 +305,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-17T10:34:04.048462839" + "timestamp": "2025-08-27T15:18:36.331336339" } } \ No newline at end of file diff --git a/tests/preprocess_stub.nf.test b/tests/preprocess_stub.nf.test index 8dbab90..dba49e4 100644 --- a/tests/preprocess_stub.nf.test +++ b/tests/preprocess_stub.nf.test @@ -3,7 +3,8 @@ nextflow_pipeline { name "Test preprocess workflow stub" script "../main.nf" tag "stub" - profile "docker" + + test("-profile test, stub") { options "-stub" diff --git a/tests/preprocess_stub.nf.test.snap b/tests/preprocess_stub.nf.test.snap index ae53eff..e62ae3d 100644 --- a/tests/preprocess_stub.nf.test.snap +++ b/tests/preprocess_stub.nf.test.snap @@ -70,8 +70,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-18T16:24:14.749062629" + "timestamp": "2025-08-27T15:05:48.419447313" } } \ No newline at end of file From bb0c6504862459533813a8b7d3ed24b2ce6f4906 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 28 Aug 2025 18:53:15 +0200 Subject: [PATCH 05/27] update pipeline level test + snapshot --- conf/modules.config | 114 ++------- tests/.nftignore | 9 + tests/default.nf.test | 2 +- tests/default.nf.test.snap | 271 ++++++++++----------- tests/preprocess.nf.test | 6 +- tests/preprocess.nf.test.snap | 434 +++++++++++++++++++++++++--------- 6 files changed, 482 insertions(+), 354 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 905140c..c62eb64 100755 --- a/conf/modules.config +++ b/conf/modules.config @@ -30,164 +30,91 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - + /* withName: 'MAT2JSON' { publishDir = [ path: { "${params.outdir}/${meta.id}/mat2json" }, mode: params.publish_dir_mode ] } + */ + withName: 'NUMORPHINTENSITY' { publishDir = [ - path: { "${params.outdir}/${meta.id}/intensity/samples" }, - mode: params.publish_dir_mode, - pattern: 'results/samples/intensity_adjustment/*', - saveAs: { filename -> - if (filename.equals('versions.yml')) { - null - } else { - filename.replaceFirst('^results/samples/intensity_adjustment/', 'samples/intensity_adjustment/') - } - } - ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/intensity/variables" }, + path: { "${params.outdir}/numorphintensity/" }, mode: params.publish_dir_mode, - pattern: 'results/variables/*', + pattern: 'results/**/*', saveAs: { filename -> if (filename.equals('versions.yml')) { null } else { - filename.replaceFirst('^results/variables/', 'variables/') + filename.replaceFirst("^results/", "${meta.id}/") } } ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/intensity/" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - - ] - } withName: 'NUMORPHALIGN' { publishDir = [ - path: { "${params.outdir}/${meta.id}/alignment/samples" }, + path: { "${params.outdir}/numorphalign/" }, mode: params.publish_dir_mode, - pattern: 'results/samples/alignment/*', + pattern: 'results/**/*', saveAs: { filename -> if (filename.equals('versions.yml')) { null } else { - filename.replaceFirst('^results/samples/alignment/', 'samples/alignment/') + filename.replaceFirst("^results/", "${meta.id}/") } } ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/alignment/variables" }, - mode: params.publish_dir_mode, - pattern: 'results/variables/*', - saveAs: { filename -> - if (filename.equals('versions.yml')) { - null - } else { - filename.replaceFirst('^results/variables/', 'variables/') - } - } - ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/alignment/" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] } withName: 'NUMORPHSTITCH' { publishDir = [ - path: { "${params.outdir}/${meta.id}/stitching/variables" }, + path: { "${params.outdir}/numorphstitch/" }, mode: params.publish_dir_mode, - pattern: 'results/variables/*', + pattern: 'results/**/*', saveAs: { filename -> if (filename.equals('versions.yml')) { null } else { - filename.replaceFirst('^results/variables/', 'variables/') + filename.replaceFirst("^results/", "${meta.id}/") } } ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/stitching/stitched" }, - mode: params.publish_dir_mode, - pattern: 'results/stitched/*', - saveAs: { filename -> - if (filename.equals('versions.yml')) { - null - } else { - filename.replaceFirst('^results/stitched/', 'stitched/') - } - } - ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/stitching/" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] } withName: 'NUMORPHRESAMPLE' { publishDir = [ - path: { "${params.outdir}/${meta.id}/resampling/resampled/" }, + path: { "${params.outdir}/numorphresample/" }, mode: params.publish_dir_mode, - pattern: 'results/resampled/*', + pattern: 'results/**/*', saveAs: { filename -> if (filename.equals('versions.yml')) { null } else { - filename.replaceFirst('^results/resampled/', 'resampled/') + filename.replaceFirst("^results/", "${meta.id}/") } } ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/resampling/" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] } withName: 'NUMORPHREGISTER' { publishDir = [ - path: { "${params.outdir}/${meta.id}/register/registered/" }, + path: { "${params.outdir}/numorphregister/" }, mode: params.publish_dir_mode, - pattern: 'results/registered/*', + pattern: 'results/**/*', saveAs: { filename -> if (filename.equals('versions.yml')) { null } else { - filename.replaceFirst('^results/registered/', 'registered/') + filename.replaceFirst("^results/", "${meta.id}/") } } ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/register/variables" }, - mode: params.publish_dir_mode, - pattern: 'results/variables/*', - saveAs: { filename -> - if (filename.equals('versions.yml')) { - null - } else { - filename.replaceFirst('^results/variables/', 'variables/') - } - } - ] - publishDir = [ - path: { "${params.outdir}/${meta.id}/register/" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] } withName: 'NUMORPH3DUNET' { publishDir = [ - path: { "${params.outdir}/${meta.id}/segmentation/" }, + path: { "${params.outdir}/numorph3dunet/" }, mode: params.publish_dir_mode, pattern: 'results/*', saveAs: { filename -> @@ -195,9 +122,10 @@ process { null } else { - filename.replaceFirst('^results/', '') + filename.replaceFirst("^results/", "${meta.id}/") } } ] } + } diff --git a/tests/.nftignore b/tests/.nftignore index 158c83c..3ebeb10 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -9,3 +9,12 @@ multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html fastqc/*_fastqc.{html,zip} pipeline_info/*.{html,json,txt,yml} +{numorphintensity,numorphalign,numorphstitch,numorphregister,numorphresample}/*/NM_variables.mat +{numorphintensity,numorphalign,numorphstitch}/*/*/path_table.mat +numorphalign/*/*/alignment_table.mat +numorphintensity/*/variables/*.mat +numorphintensity/*/samples/*.png +numorphstitch/*/variables/*.mat +numorph3dunet/* +mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds, stitch_tforms}.json +mat2json/*/*.csv diff --git a/tests/default.nf.test b/tests/default.nf.test index 13668ea..a3b22b9 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -6,7 +6,7 @@ nextflow_pipeline { tag "gpu" profile "docker,test_gpu" - test("-profile test_gpu") { + test("default test gpu") { when { params { diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index dd39d96..1607fb1 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -1,5 +1,5 @@ { - "-profile test_gpu": { + "default test gpu": { "content": [ 8, { @@ -26,114 +26,110 @@ } }, [ - "TEST1", - "TEST1/alignment", - "TEST1/alignment/results", - "TEST1/alignment/results/NM_variables.mat", - "TEST1/alignment/results/samples", - "TEST1/alignment/results/samples/alignment", - "TEST1/alignment/results/samples/alignment/TEST1_ctip2_full.tif", - "TEST1/alignment/results/samples/alignment/TEST1_topro_full.tif", - "TEST1/alignment/results/variables", - "TEST1/alignment/results/variables/alignment_table.mat", - "TEST1/alignment/results/variables/path_table.mat", - "TEST1/alignment/results/variables/z_displacement_align.mat", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", - "TEST1/mat2json", - "TEST1/mat2json/align", - "TEST1/mat2json/align/NM_variables.json", - "TEST1/mat2json/align/alignment_table.json", - "TEST1/mat2json/align/path_table.json", - "TEST1/mat2json/align/z_displacement_align.json", - "TEST1/mat2json/intensity", - "TEST1/mat2json/intensity/NM_variables.json", - "TEST1/mat2json/intensity/adj_params.json", - "TEST1/mat2json/intensity/path_table.json", - "TEST1/mat2json/intensity/thresholds.json", - "TEST1/mat2json/stitch", - "TEST1/mat2json/stitch/adj_params.json", - "TEST1/mat2json/stitch/adjusted_z.csv", - "TEST1/mat2json/stitch/alignment_table.json", - "TEST1/mat2json/stitch/path_table.json", - "TEST1/mat2json/stitch/stitch_tforms.json", - "TEST1/mat2json/stitch/thresholds.json", - "TEST1/mat2json/stitch/z_disp_matrix.json", - "TEST1/mat2json/stitch/z_displacement_align.json", - "TEST1/mat2json/versions.yml", - "TEST1/segmentation", - "TEST1/segmentation/TEST1.csv", - "TEST1/segmentation/TEST1_counts.csv", - "TEST1/stitching", - "TEST1/stitching/results", - "TEST1/stitching/results/NM_variables.mat", - "TEST1/stitching/results/stitched", - "TEST1/stitching/results/stitched/TEST1_0001_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0001_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C2_ctip2_stitched.tif", - "TEST1/stitching/results/variables", - "TEST1/stitching/results/variables/adj_params.mat", - "TEST1/stitching/results/variables/adjusted_z.mat", - "TEST1/stitching/results/variables/alignment_table.mat", - "TEST1/stitching/results/variables/path_table.mat", - "TEST1/stitching/results/variables/stitch_tforms.mat", - "TEST1/stitching/results/variables/thresholds.mat", - "TEST1/stitching/results/variables/z_disp_matrix.mat", - "TEST1/stitching/results/variables/z_displacement_align.mat", + "mat2json", + "mat2json/align", + "mat2json/align/NM_variables.json", + "mat2json/align/alignment_table.json", + "mat2json/align/path_table.json", + "mat2json/align/z_displacement_align.json", + "mat2json/intensity", + "mat2json/intensity/NM_variables.json", + "mat2json/intensity/adj_params.json", + "mat2json/intensity/path_table.json", + "mat2json/intensity/thresholds.json", + "mat2json/stitch", + "mat2json/stitch/adj_params.json", + "mat2json/stitch/adjusted_z.csv", + "mat2json/stitch/alignment_table.json", + "mat2json/stitch/path_table.json", + "mat2json/stitch/stitch_tforms.json", + "mat2json/stitch/thresholds.json", + "mat2json/stitch/z_disp_matrix.json", + "mat2json/stitch/z_displacement_align.json", + "numorph3dunet", + "numorph3dunet/TEST1", + "numorph3dunet/TEST1/TEST1.csv", + "numorph3dunet/TEST1/TEST1_counts.csv", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", + "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_0001_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0001_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adj_params.mat", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/alignment_table.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/thresholds.mat", + "numorphstitch/TEST1/variables/z_disp_matrix.mat", + "numorphstitch/TEST1/variables/z_displacement_align.mat", "pipeline_info", "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", "unzip", @@ -309,50 +305,29 @@ "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" ], [ - "NM_variables.mat:md5,e706418c4724b2a400365dff7a6af338", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", + "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "TEST1.csv:md5,03ade2aa5a38d978f6b1dd34d741844a", + "TEST1_counts.csv:md5,466295dc5cb794e773520be014ee38ee", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "alignment_table.mat:md5,d7a13d06d9e5e7066f4b512164a18f2a", - "path_table.mat:md5,6252baaa86f0aa1bf7ed81766ee7febd", - "z_displacement_align.mat:md5,7fd164065274fadbed2fcea788985b82", - "NM_variables.mat:md5,4d55500a124c677a44465ebc346c4412", + "z_displacement_align.mat:md5,39474b8b4f1f246e06f8fb0939989141", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,70d9797c9cf2c02eaad4cb86f329b394", - "flatfield_2.png:md5,71db816055e579cdba42eb05d643613e", - "tile_adj_1.png:md5,195ac96ac1ea0e05a3ca41d662f9e752", - "tile_adj_2.png:md5,2b4431096c0d8fd1f4c4e9ad7da1b7f6", + "flatfield_1.png:md5,d7bb0f7029a40b5a01836a1d76fcc4fe", + "flatfield_2.png:md5,aefc71f6dfef5a51abcfae55547a38b7", + "tile_adj_1.png:md5,2fb1fde009afe7d387d18af329cb5bc8", + "tile_adj_2.png:md5,e7aca3a27fd8df54327192d75e090ed6", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,be0b43fbbab1c720fb3217c87c8efc6a", - "y_adj_2.png:md5,e4595f36fcd0d0ef18ae57a976a736cb", - "adj_params.mat:md5,0900ce9bf36aee491587d1b903e85565", - "path_table.mat:md5,376cb8ff82de242309c51142ab096680", - "thresholds.mat:md5,bbda95aded722f6ec39dc500891e97e9", - "NM_variables.json:md5,973db6a0c69f126cb3d8bdbff898d961", - "alignment_table.json:md5,05b6f7bf8fbb43d553c438c7de933b7c", - "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", - "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "NM_variables.json:md5,973db6a0c69f126cb3d8bdbff898d961", - "adj_params.json:md5,05ccfd257b06a2a825abffd5680fa4e4", - "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", - "thresholds.json:md5,dd08458146588268db81b66d699236f4", - "adj_params.json:md5,05ccfd257b06a2a825abffd5680fa4e4", - "adjusted_z.csv:md5,d7b98b45ad6b3ac13cff31aa13ca8107", - "alignment_table.json:md5,05b6f7bf8fbb43d553c438c7de933b7c", - "path_table.json:md5,9f5563e822b2a231d0cc2709ee193f6e", - "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", - "thresholds.json:md5,dd08458146588268db81b66d699236f4", - "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", - "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "versions.yml:md5,2525ed35a50c7d43e50daf45c81e2502", - "TEST1.csv:md5,03ade2aa5a38d978f6b1dd34d741844a", - "TEST1_counts.csv:md5,466295dc5cb794e773520be014ee38ee", - "NM_variables.mat:md5,9606c399e1960c0d5a0412c2a96d0051", + "y_adj_1.png:md5,4658273b8bd4cd6f8ed8ef86c8b16cf7", + "y_adj_2.png:md5,3426316c88c10efc987d14df902218a8", "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", @@ -389,14 +364,6 @@ "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", - "adj_params.mat:md5,0900ce9bf36aee491587d1b903e85565", - "adjusted_z.mat:md5,14ee5325f681609396aee2c92bad3603", - "alignment_table.mat:md5,d7a13d06d9e5e7066f4b512164a18f2a", - "path_table.mat:md5,6252baaa86f0aa1bf7ed81766ee7febd", - "stitch_tforms.mat:md5,f627a1e3d70258a0b0299b81f47ac226", - "thresholds.mat:md5,bbda95aded722f6ec39dc500891e97e9", - "z_disp_matrix.mat:md5,73aa0678963e363a8807945f2571a416", - "z_displacement_align.mat:md5,7fd164065274fadbed2fcea788985b82", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", @@ -571,6 +538,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-27T16:00:17.700403194" + "timestamp": "2025-08-28T18:17:22.248739072" } } \ No newline at end of file diff --git a/tests/preprocess.nf.test b/tests/preprocess.nf.test index db312fc..51d6810 100644 --- a/tests/preprocess.nf.test +++ b/tests/preprocess.nf.test @@ -17,7 +17,7 @@ nextflow_pipeline { then { def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - def json_files = getAllFilesFromDir(params.outdir, include: ['**/*.json']) + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') assert workflow.success assertAll( { assert snapshot( @@ -25,7 +25,9 @@ nextflow_pipeline { workflow.trace.succeeded().size(), removeNextflowVersion("$outputDir/pipeline_info/nf_core_lsmquant_software_mqc_versions.yml"), // All stable path name, with a relative path - stable_name.isEmpty() ? 'No stable paths' : stable_name + stable_name.isEmpty() ? 'No stable paths' : stable_name, + // All files with stable contents + stable_path ).match()} ) } diff --git a/tests/preprocess.nf.test.snap b/tests/preprocess.nf.test.snap index 624b99d..30bbfb2 100644 --- a/tests/preprocess.nf.test.snap +++ b/tests/preprocess.nf.test.snap @@ -23,111 +23,106 @@ } }, [ - "TEST1", - "TEST1/alignment", - "TEST1/alignment/results", - "TEST1/alignment/results/NM_variables.mat", - "TEST1/alignment/results/samples", - "TEST1/alignment/results/samples/alignment", - "TEST1/alignment/results/samples/alignment/TEST1_ctip2_full.tif", - "TEST1/alignment/results/samples/alignment/TEST1_topro_full.tif", - "TEST1/alignment/results/variables", - "TEST1/alignment/results/variables/alignment_table.mat", - "TEST1/alignment/results/variables/path_table.mat", - "TEST1/alignment/results/variables/z_displacement_align.mat", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", - "TEST1/mat2json", - "TEST1/mat2json/align", - "TEST1/mat2json/align/NM_variables.json", - "TEST1/mat2json/align/alignment_table.json", - "TEST1/mat2json/align/path_table.json", - "TEST1/mat2json/align/z_displacement_align.json", - "TEST1/mat2json/intensity", - "TEST1/mat2json/intensity/NM_variables.json", - "TEST1/mat2json/intensity/adj_params.json", - "TEST1/mat2json/intensity/path_table.json", - "TEST1/mat2json/intensity/thresholds.json", - "TEST1/mat2json/stitch", - "TEST1/mat2json/stitch/adj_params.json", - "TEST1/mat2json/stitch/adjusted_z.csv", - "TEST1/mat2json/stitch/alignment_table.json", - "TEST1/mat2json/stitch/path_table.json", - "TEST1/mat2json/stitch/stitch_tforms.json", - "TEST1/mat2json/stitch/thresholds.json", - "TEST1/mat2json/stitch/z_disp_matrix.json", - "TEST1/mat2json/stitch/z_displacement_align.json", - "TEST1/mat2json/versions.yml", - "TEST1/stitching", - "TEST1/stitching/results", - "TEST1/stitching/results/NM_variables.mat", - "TEST1/stitching/results/stitched", - "TEST1/stitching/results/stitched/TEST1_0001_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0001_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C2_ctip2_stitched.tif", - "TEST1/stitching/results/variables", - "TEST1/stitching/results/variables/adj_params.mat", - "TEST1/stitching/results/variables/adjusted_z.mat", - "TEST1/stitching/results/variables/alignment_table.mat", - "TEST1/stitching/results/variables/path_table.mat", - "TEST1/stitching/results/variables/stitch_tforms.mat", - "TEST1/stitching/results/variables/thresholds.mat", - "TEST1/stitching/results/variables/z_disp_matrix.mat", - "TEST1/stitching/results/variables/z_displacement_align.mat", + "mat2json", + "mat2json/align", + "mat2json/align/NM_variables.json", + "mat2json/align/alignment_table.json", + "mat2json/align/path_table.json", + "mat2json/align/z_displacement_align.json", + "mat2json/intensity", + "mat2json/intensity/NM_variables.json", + "mat2json/intensity/adj_params.json", + "mat2json/intensity/path_table.json", + "mat2json/intensity/thresholds.json", + "mat2json/stitch", + "mat2json/stitch/adj_params.json", + "mat2json/stitch/adjusted_z.csv", + "mat2json/stitch/alignment_table.json", + "mat2json/stitch/path_table.json", + "mat2json/stitch/stitch_tforms.json", + "mat2json/stitch/thresholds.json", + "mat2json/stitch/z_disp_matrix.json", + "mat2json/stitch/z_displacement_align.json", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", + "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_0001_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0001_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adj_params.mat", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/alignment_table.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/thresholds.mat", + "numorphstitch/TEST1/variables/z_disp_matrix.mat", + "numorphstitch/TEST1/variables/z_displacement_align.mat", "pipeline_info", "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", "unzip", @@ -301,12 +296,239 @@ "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif", "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif", "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" + ], + [ + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", + "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", + "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", + "z_displacement_align.mat:md5,e6dd356a9e816b7a7cd079f375e288b4", + "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", + "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", + "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", + "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", + "flatfield_1.png:md5,348faeddc9719458ec065d6b6a80a078", + "flatfield_2.png:md5,fd5ad0ce73789c95d15441edfda04a85", + "tile_adj_1.png:md5,a478cd213fe7d75b2cbe537c5a61f075", + "tile_adj_2.png:md5,df6c3cfe426da794436246892389a790", + "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", + "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", + "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", + "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", + "y_adj_1.png:md5,cb2b7b2efe3cc5c2a5513e1f0272091d", + "y_adj_2.png:md5,68d39a6223fd11fad4164fb5f32f73b4", + "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", + "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", + "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", + "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", + "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", + "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", + "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", + "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", + "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", + "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", + "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", + "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", + "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", + "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", + "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", + "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", + "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", + "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", + "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", + "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", + "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", + "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", + "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", + "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", + "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", + "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", + "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", + "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", + "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", + "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", + "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", + "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", + "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", + "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", + "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", + "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif:md5,4696a351aae54e5743c727a241bd8054", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif:md5,3ea6ccdb7621ce38b6dce54ec427fc68", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif:md5,659f6770b9fbbc2e25444e45afbbdca9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif:md5,4a0753196ec13d94197cc1cd664118e9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif:md5,8ac1c9dcb3b4a8c524b3a50710822b22", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif:md5,cc90e9010e8af068def04bfa05447bcb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif:md5,9496e9c2f2fab7dc7bf1cd8c426fec2a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif:md5,58b3380cb607b2386054dd0150d5bfe6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif:md5,4bd92251df0a09f284998da07ed9a28a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif:md5,fb687c3253ad67292854396eccadf93f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif:md5,b91d11baeb2f4d4b6facf3c42baf5559", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif:md5,9048571bb58c1d53e9f5e78d0aace06f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif:md5,f9bdba923be7efbbfa579078fe482077", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif:md5,4300e7df0b119a24cf97759dd60d8d1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif:md5,f0b8b26c957f54bb5753fb05c5543cce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif:md5,c0acc44a4fb7a3319697c50940866c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif:md5,6f4f070c8b4f6b7c6d3f250490204344", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif:md5,75f49c36b2f68389b74e099f1a511aab", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif:md5,877ebc92d32c2627479cb8de90479df3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif:md5,aadb50e79b121c9409233ec9d974c93e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif:md5,8ffa145b84becb2e393ea392b61221e2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif:md5,5485a677ee6120c4335da191b7c71775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif:md5,ac8f0b7af5818f5d847022acdaed148e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif:md5,0d933b1e15250d9f7941a401854597f6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif:md5,fee96a7fcf33a2109a56c9340700468c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif:md5,4c0919d495b2a46361ac9c388ddc4171", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif:md5,94d6f32f40d1a4a651878b6d3efa6442", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif:md5,c5e47a7f36cf3939a69fe941b265a63e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif:md5,6e0ac8cb6ce0f3ecab8ec32c92d64c75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif:md5,5bbe6e0313b545c92a80fdc449c7eef5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif:md5,b75397c891e3227f6924b7c4e4e07227", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif:md5,87c0da116039d2504e6cee762531fc3a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif:md5,34190fa382ba86c19c266267cae274cf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif:md5,a073cedbd1623037337a3bf66a0d2509", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif:md5,d14d01971e1067f9c69e8fd3d40658f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif:md5,be4e0ea00e04d4961a28d9b56ec0ef6a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif:md5,f23178bfeaee7c335e3712a727f7a8f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif:md5,abdf257747a4a7f221598beed75fcfeb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif:md5,544b6b4cbcbc41282c2a673ce6e5d8f0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif:md5,3f4430ff9848f2e416593b525d6dee55", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif:md5,d909260b4a17c58e263b430e8dfdfb75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif:md5,382f40799d7953bea50e93027db11ccd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif:md5,33986578219177e6d193b34b15f7c9b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif:md5,5579dcfac911e69aa303ec4861b996d2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif:md5,2348dcbc31e2bdfb6c70f3252af90c0b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif:md5,0510c1c30a5a3a2cf4585ea750bb4688", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif:md5,13ff8029541013f7edb6f466efe1208b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif:md5,b19fa191e907c0adb0a7617f06aeea4c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif:md5,7853ebadfbde3f8b922ef8ca2caad068", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif:md5,5744ea7c8832aca72b42708fea9b1be8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif:md5,5e4dbfe159aacc266237af1d516b34e6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif:md5,caa9d77a6246090cf0c16baa9752cfd1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif:md5,ae832832dec48fdec3d70e4e1ad24d75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif:md5,8b5378a0ff0f6895efa3bc9f0fc0f367", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif:md5,786aae2a7e318e753fd35668209d88b4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif:md5,9f7707efd5621381ad1d7105345fea24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif:md5,2fedb7ab7851fe7b645f65697edb63f7", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif:md5,7b001437f260d01c84bae46355cfc175", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif:md5,3ffe776d5d28d322db1f434cfbd5ae45", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif:md5,e749583273099631b0d0353d5e4511e1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif:md5,aaf788f0b67ac02247d33d06311878bd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif:md5,7608e074b61771a2567e9287e4b61cf2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif:md5,bfcd74014e58851cdd1b10f6c002ab67", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif:md5,9f5e41ed9be226075660ac14b0c50e86", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif:md5,6be760083a55a9484ae27d10dbff1715", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif:md5,399b55ada07c5fb15509140df0e08ab0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif:md5,1b0adcd349239c1b9d231d7abe9d209e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif:md5,127e0542db979a61d6179500da7a8686", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif:md5,d08fba09b3924f54892016208ac3b3e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif:md5,2c2af0e64d084ba01dd8def74ebdf8ac", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif:md5,9a06fcbd0277220356384ae53b07fe2f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif:md5,c9ad0485e27f394d86e2313f791eb5a8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif:md5,4b143f64580e6ac687dc422b3d2b62fe", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif:md5,3b04b738e6081eda29c25840ecc56424", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif:md5,7073637f421bf589895d8278b6b76396", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif:md5,7c53da56931e1ebca641cf89408cea35", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif:md5,70d922572b191bba87db884a6a78de1e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif:md5,0731e9d863155ed413d2304cd39b4c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif:md5,72a600b34ab829bcdb349de1666b6bbb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif:md5,0d75d4438e4dd40a11aea21576e0db0c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif:md5,dfdcc9e6bb10afcd117a4228e160368f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif:md5,470a01158003f74da5487468df0b2636", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif:md5,d1db4fea718b9fd83919a5ccb64ace9c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif:md5,6c94577471e6a2815e0794a5bbe49e74", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif:md5,6ade6266d67a56a58e3048e2a41be71a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif:md5,257b58f4f237270955636afa5e7c158d", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif:md5,17712054bba72efe4b3f8b4d9df2a5a0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif:md5,f7f3ae40f70ec469eab77342eaa57bf3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif:md5,f1e4b447bc37ce937eb2e3023fdae094", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif:md5,146321d14232cb1de14d8e044f11e4ce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif:md5,d929b4c176abf03e4851dcfbc8a1ed16", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif:md5,27551d9576ed4440e918a2ec60f94931", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif:md5,9d6cfafc558e5b66d18add3dfeec4244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif:md5,a82162ce680f1928cd5416ac153d36df", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif:md5,978119009ed5da3eb9a631b2a5021064", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif:md5,47b2b4621a171697d1218b3e10a858ae", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif:md5,fa1c2d7b56aa0525230d0f56af1ee75b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif:md5,e8d10bb1281b05cb1975b78551c598d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif:md5,23fc1d734e784d7402adf73cd4ee1021", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif:md5,eed98be51b025745b4de480655e60d05", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif:md5,323f21c8bba1649c278d83de9d3d1f25", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif:md5,3cd96aa2914b28a9dc7c6b8bc7dcc8ec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif:md5,7074583255da8071c6233a6064087bfb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif:md5,e8930f83802ca0b442284d60d4b2d211", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif:md5,93af177e91edb8cafe21edb7958f58e4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif:md5,ba56a8717423e049f26b4bfa21f9b7c9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif:md5,4272e5a94329724beaec8b3332dc59be", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif:md5,952779032aa0d5ddd9d937a7dc0ee4b0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif:md5,98ef1216a3cf6b1c85e69cf493dfa19b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif:md5,1a485230e224f4084f9f59024f4aa065", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif:md5,902cdfb1da488a8c19dfbf0778de4087", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif:md5,aea06540f31dd74e7691121a17093a5b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif:md5,635f536ceb784170799fc91000cbaa6b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif:md5,cf4a370b59b260c6af3a48fc8c84ced2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif:md5,3e4ae7181947ab3757ec5a2f67e3b472", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif:md5,708e4e1a9fb160de9d0c65af62180846", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif:md5,81df70b026bbfe96f4258d0e416e427c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif:md5,8ce34f974d150ce382b0eecb3dbb5898", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif:md5,95012622f95a3cfd0bc1327dcc34e0b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif:md5,ad1983f5f6003d0f661c17f6e0b60bec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif:md5,51d6ebe4eb88704d8ca67561d47c95b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif:md5,6900929ad8dfd3f0c8b0dce5f59dd4a5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif:md5,b3009a2a6736171b8f28c0630b85a606", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif:md5,57c619f503078739317641848f6eb69a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif:md5,3d9baf2a67581d72194f0354154b120f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif:md5,6674132080cfabfc639be9c80ec9090f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif:md5,419080c6ec0578bcde19a9f4360535b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif:md5,9314465994d55011eba9e1239c5b855c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif:md5,dd044d2d61d337935b1c66b4286bc8bf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif:md5,f44e51b79aeca18e62e5284a4e74e244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif:md5,ea5e1bace16ea20be45fdb4562a5ad64", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif:md5,f3cf28bf23ca3d2fb8611a80d2fcfe10", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif:md5,cdb745f3ccfac5b309d22c08570deb24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif:md5,3dc41f65c22c81e6f5b12277c6b827fa", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif:md5,28c4b3e6a9c93957da94fce9c4b949d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif:md5,0070c463e9928492053bd1b88b617bdf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif:md5,a21b3c78191aaa5d78f51c6627041f72", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif:md5,0a5f43af602e48341eb621a7dfc5c4f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif:md5,d6f4ee9ef8a93cc6b977f3231840d8e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif:md5,913744509efac629fbd14c648b30b2c1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif:md5,70db6c8f0dfb7607d8aada3ff813edc2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif:md5,38ab5e5448b69d7808e6fe1c888fdde5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif:md5,21f540d85c3395b11d2146a858088b1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif:md5,4bb6c7de160539b3db5485fa6944109a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif:md5,152931c5d09894e74e3216b62e6d1446", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif:md5,c9af3b9a2044760bd5ad2ff912ad9076", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif:md5,9afd8c433a4c12e9ffb2e7ef72d665f3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif:md5,0390cf7ce133f1b04946341973eeb29c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif:md5,114aa0fff83db1e693a73ac9a9e795c0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif:md5,d801111f07bedfbb9508bfed1e5f8d0a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif:md5,c4dcf031c9f33da4a1261324f212103a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif:md5,467f11413dbd56cd2e781003b3973e87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif:md5,89f163ab69b8a66bbc4bc9c17880cba0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif:md5,8d329fb7ca37b261bf419c114bcc3775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif:md5,486dad8db46e853eee60dccfc716b543", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif:md5,3a4caf7fab942a5eb0a8666a86c4552e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif:md5,7781ff916dfae4f9b8093d04d2e5ddd6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif:md5,93269be5f9ba1e07b2ee253f9f9574d9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif:md5,013f6d3ea185745eb2e02c05f3418eaf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif:md5,c59a5b5dd08bf4acfa0f954e25c5419f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif:md5,9b122cba54fb3d8f2f3f7a9df7b9821b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif:md5,fa8f8bef57029e14c0eb6daf7bab2886", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif:md5,d316f89e3752621cb93bf8de1f694000", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif:md5,43d0386b21d9f6a36c209dc3ab60d1cc", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif:md5,b4f4be8e38b3b84dcd1a34a2b1968abc" ] ], "meta": { "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-27T15:18:36.331336339" + "timestamp": "2025-08-28T18:27:59.276965009" } } \ No newline at end of file From 500cea62ca86a6a671fae46524a191fdd1f32875 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Fri, 29 Aug 2025 10:05:12 +0200 Subject: [PATCH 06/27] update preprocess snapshots --- tests/preprocess.nf.test.snap | 16 +++---- tests/preprocess_stub.nf.test.snap | 75 ++++++++++++++---------------- 2 files changed, 43 insertions(+), 48 deletions(-) diff --git a/tests/preprocess.nf.test.snap b/tests/preprocess.nf.test.snap index 30bbfb2..5233fb0 100644 --- a/tests/preprocess.nf.test.snap +++ b/tests/preprocess.nf.test.snap @@ -304,21 +304,21 @@ "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "z_displacement_align.mat:md5,e6dd356a9e816b7a7cd079f375e288b4", + "z_displacement_align.mat:md5,573223719c05fd3f621fadd468c2dabf", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,348faeddc9719458ec065d6b6a80a078", - "flatfield_2.png:md5,fd5ad0ce73789c95d15441edfda04a85", - "tile_adj_1.png:md5,a478cd213fe7d75b2cbe537c5a61f075", - "tile_adj_2.png:md5,df6c3cfe426da794436246892389a790", + "flatfield_1.png:md5,1499e8d44ef0fa199d3ae0b0dd8602b3", + "flatfield_2.png:md5,3636cd5855c3c1615e7ad579654183c1", + "tile_adj_1.png:md5,e2032bf09712938c7dd0687570e4548d", + "tile_adj_2.png:md5,aa118ac69fbcc84dfa838a3faf8a973d", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,cb2b7b2efe3cc5c2a5513e1f0272091d", - "y_adj_2.png:md5,68d39a6223fd11fad4164fb5f32f73b4", + "y_adj_1.png:md5,6c88c69d4561d4863f26f48bac12fbb6", + "y_adj_2.png:md5,1abf810ab0704628391503922259f826", "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", @@ -529,6 +529,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-28T18:27:59.276965009" + "timestamp": "2025-08-29T10:04:25.997678386" } } \ No newline at end of file diff --git a/tests/preprocess_stub.nf.test.snap b/tests/preprocess_stub.nf.test.snap index e62ae3d..ac8108f 100644 --- a/tests/preprocess_stub.nf.test.snap +++ b/tests/preprocess_stub.nf.test.snap @@ -23,45 +23,40 @@ } }, [ - "TEST1", - "TEST1/alignment", - "TEST1/alignment/results", - "TEST1/alignment/results/NM_variables.mat", - "TEST1/alignment/results/samples", - "TEST1/alignment/results/samples/alignment", - "TEST1/alignment/results/samples/alignment/TEST1_full.tif", - "TEST1/alignment/results/variables", - "TEST1/alignment/results/variables/alignment_table.mat", - "TEST1/alignment/results/variables/path_table.mat", - "TEST1/alignment/results/variables/z_displacement_align.mat", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/TEST1.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", - "TEST1/mat2json", - "TEST1/mat2json/align", - "TEST1/mat2json/align/TEST1.json", - "TEST1/mat2json/intensity", - "TEST1/mat2json/intensity/TEST1.json", - "TEST1/mat2json/stitch", - "TEST1/mat2json/stitch/TEST1.json", - "TEST1/mat2json/versions.yml", - "TEST1/stitching", - "TEST1/stitching/results", - "TEST1/stitching/results/NM_variables.mat", - "TEST1/stitching/results/stitched", - "TEST1/stitching/results/stitched/TEST1_stitched.tif", - "TEST1/stitching/results/variables", - "TEST1/stitching/results/variables/adjusted_z.mat", - "TEST1/stitching/results/variables/path_table.mat", - "TEST1/stitching/results/variables/stitch_tforms.mat", - "TEST1/stitching/results/variables/z_dips_matrix.mat", + "mat2json", + "mat2json/align", + "mat2json/align/TEST1.json", + "mat2json/intensity", + "mat2json/intensity/TEST1.json", + "mat2json/stitch", + "mat2json/stitch/TEST1.json", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/TEST1.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/z_dips_matrix.mat", "pipeline_info", "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", "unzip", @@ -72,6 +67,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-27T15:05:48.419447313" + "timestamp": "2025-08-29T09:57:38.849984411" } } \ No newline at end of file From b8ae277cf1fe5db1086d5a05b16de3a616778b80 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Fri, 29 Aug 2025 13:49:24 +0200 Subject: [PATCH 07/27] update all modules and subworkflow tests --- modules/local/mat2json/tests/main.nf.test | 45 +- .../local/mat2json/tests/main.nf.test.snap | 120 ++-- .../numorph3dunet/tests/main.nf.test.snap | 12 +- .../numorphalign/tests/main.nf.test.snap | 71 ++- .../numorphintensity/tests/main.nf.test.snap | 50 +- .../numorphregister/tests/main.nf.test.snap | 8 +- .../numorphstitch/tests/main.nf.test.snap | 223 +++---- .../numorph_preprocessing/tests/.nftignore | 20 + .../numorph_preprocessing/tests/main.nf.test | 42 +- .../tests/main.nf.test.snap | 543 ++++++++++++++++-- 10 files changed, 797 insertions(+), 337 deletions(-) create mode 100644 subworkflows/local/numorph_preprocessing/tests/.nftignore diff --git a/modules/local/mat2json/tests/main.nf.test b/modules/local/mat2json/tests/main.nf.test index af9e03d..2948239 100644 --- a/modules/local/mat2json/tests/main.nf.test +++ b/modules/local/mat2json/tests/main.nf.test @@ -11,21 +11,30 @@ nextflow_process { test("matlab file conversion to json") { when { + params { + outdir = "$workDir" + } process { """ - input[0] = [ - [ id:'test'], // meta map - file('/mnt/ssd/numorph_testdata_s/module_testrun/output_nextflow/intensity/results/variables/thresholds.mat', checkIfExists: true), - ] + input[0] = Channel.fromList([ + tuple([ id:'test'], // meta map + file(params.pipelines_testdata_base_path +'/test_data/mat2json/thresholds.mat', checkIfExists: true)) + ]) + input[1] = Channel.of('test_process') """ } } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assert workflow.success assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name.isEmpty() ? 'No stable paths' : stable_name + ).match()} ) } @@ -36,20 +45,30 @@ nextflow_process { options "-stub" when { + params { + outdir = "$workDir" + } process { """ - input[0] = [ - [ id:'test'], // meta map - file('/mnt/ssd/numorph_testdata_s/module_testrun/output_nextflow/intensity/results/variables/thresholds.mat', checkIfExists: true), - ] + input[0] = Channel.fromList([ + tuple([ id:'test'], // meta map + file(params.pipelines_testdata_base_path +'/test_data/mat2json/thresholds.mat', checkIfExists: true)) + ]) + input[1] = Channel.of('test_process') """ } } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + assert workflow.success assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // All stable path name, with a relative path + stable_name.isEmpty() ? 'No stable paths' : stable_name + ).match()} ) } diff --git a/modules/local/mat2json/tests/main.nf.test.snap b/modules/local/mat2json/tests/main.nf.test.snap index ecf9774..e80bf3f 100644 --- a/modules/local/mat2json/tests/main.nf.test.snap +++ b/modules/local/mat2json/tests/main.nf.test.snap @@ -1,80 +1,72 @@ { "matlab file conversion to json": { "content": [ - { - "0": [ - [ - { - "id": "test" - }, - [ - "thresholds.json:md5,88adeb36bb657798c80085b6a58ac58b", - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - ] - ], - "1": [ - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ], - "converted_file": [ - [ - { - "id": "test" - }, - [ - "thresholds.json:md5,88adeb36bb657798c80085b6a58ac58b", - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - ] - ], - "versions": [ - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - } + 1, + [ + "", + "3d", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.begin", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.err", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.log", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.out", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.run", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.sh", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.command.trace", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/.exitcode", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/test_process", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/test_process/thresholds.json", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/thresholds.mat", + "3d/41b9380a1e0f7ff0bfe8bbc9571e65/versions.yml", + "mat2json", + "mat2json/test_process", + "mat2json/test_process/thresholds.json", + "pipeline_info", + "stage-aeeb1410-b6dd-43cf-8830-583e4cc9920c", + "stage-aeeb1410-b6dd-43cf-8830-583e4cc9920c/e5", + "stage-aeeb1410-b6dd-43cf-8830-583e4cc9920c/e5/ce02fa3d717d9eef7cc5e1c8f28c2b", + "stage-aeeb1410-b6dd-43cf-8830-583e4cc9920c/e5/ce02fa3d717d9eef7cc5e1c8f28c2b/thresholds.mat" + ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-02-21T15:36:22.030027548" + "timestamp": "2025-08-29T13:47:16.889254142" }, "matlab file conversion to json - stub": { "content": [ - { - "0": [ - [ - { - "id": "test" - }, - [ - "test.json:md5,d41d8cd98f00b204e9800998ecf8427e", - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - ] - ], - "1": [ - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ], - "converted_file": [ - [ - { - "id": "test" - }, - [ - "test.json:md5,d41d8cd98f00b204e9800998ecf8427e", - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - ] - ], - "versions": [ - "versions.yml:md5,d8fdb19b7f6440f3644b923cf0bf7eee" - ] - } + 1, + [ + "", + "a1", + "a1/d780b4e65514c605e3114f89afd3c3", + "a1/d780b4e65514c605e3114f89afd3c3/.command.begin", + "a1/d780b4e65514c605e3114f89afd3c3/.command.err", + "a1/d780b4e65514c605e3114f89afd3c3/.command.log", + "a1/d780b4e65514c605e3114f89afd3c3/.command.out", + "a1/d780b4e65514c605e3114f89afd3c3/.command.run", + "a1/d780b4e65514c605e3114f89afd3c3/.command.sh", + "a1/d780b4e65514c605e3114f89afd3c3/.command.trace", + "a1/d780b4e65514c605e3114f89afd3c3/.exitcode", + "a1/d780b4e65514c605e3114f89afd3c3/test_process", + "a1/d780b4e65514c605e3114f89afd3c3/test_process/test.json", + "a1/d780b4e65514c605e3114f89afd3c3/thresholds.mat", + "a1/d780b4e65514c605e3114f89afd3c3/versions.yml", + "mat2json", + "mat2json/test_process", + "mat2json/test_process/test.json", + "pipeline_info", + "stage-2314e94b-b9f6-47fa-bd5f-6f79870c5ff9", + "stage-2314e94b-b9f6-47fa-bd5f-6f79870c5ff9/2d", + "stage-2314e94b-b9f6-47fa-bd5f-6f79870c5ff9/2d/4d62c64425c45ecf74be0192f5dc0f", + "stage-2314e94b-b9f6-47fa-bd5f-6f79870c5ff9/2d/4d62c64425c45ecf74be0192f5dc0f/thresholds.mat" + ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-02-21T15:36:26.450520824" + "timestamp": "2025-08-29T13:47:21.509083297" } } \ No newline at end of file diff --git a/modules/local/numorph3dunet/tests/main.nf.test.snap b/modules/local/numorph3dunet/tests/main.nf.test.snap index c6faf83..84ee3c0 100644 --- a/modules/local/numorph3dunet/tests/main.nf.test.snap +++ b/modules/local/numorph3dunet/tests/main.nf.test.snap @@ -3,10 +3,10 @@ "content": [ 2, [ - "TEST1", - "TEST1/segmentation", - "TEST1/segmentation/TEST1.csv", - "TEST1/segmentation/TEST1_counts.csv", + "numorph3dunet", + "numorph3dunet/TEST1", + "numorph3dunet/TEST1/TEST1.csv", + "numorph3dunet/TEST1/TEST1_counts.csv", "pipeline_info", "unzipfiles", "unzipfiles/TEST1", @@ -33,8 +33,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-08-22T14:38:25.745842362" + "timestamp": "2025-08-29T11:55:03.555806608" } } \ No newline at end of file diff --git a/modules/local/numorphalign/tests/main.nf.test.snap b/modules/local/numorphalign/tests/main.nf.test.snap index d55088f..867b952 100644 --- a/modules/local/numorphalign/tests/main.nf.test.snap +++ b/modules/local/numorphalign/tests/main.nf.test.snap @@ -3,41 +3,38 @@ "content": [ 3, [ - "TEST1", - "TEST1/alignment", - "TEST1/alignment/results", - "TEST1/alignment/results/NM_variables.mat", - "TEST1/alignment/results/samples", - "TEST1/alignment/results/samples/alignment", - "TEST1/alignment/results/samples/alignment/TEST1_ctip2_full.tif", - "TEST1/alignment/results/samples/alignment/TEST1_topro_full.tif", - "TEST1/alignment/results/variables", - "TEST1/alignment/results/variables/alignment_table.mat", - "TEST1/alignment/results/variables/path_table.mat", - "TEST1/alignment/results/variables/z_displacement_align.mat", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", + "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", "pipeline_info", "unzip", "unzip/TEST1", @@ -214,8 +211,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-20T17:58:04.410259477" + "timestamp": "2025-08-29T11:32:20.483087568" } } \ No newline at end of file diff --git a/modules/local/numorphintensity/tests/main.nf.test.snap b/modules/local/numorphintensity/tests/main.nf.test.snap index 0504bde..7fa6be4 100644 --- a/modules/local/numorphintensity/tests/main.nf.test.snap +++ b/modules/local/numorphintensity/tests/main.nf.test.snap @@ -3,30 +3,28 @@ "content": [ 2, [ - "TEST1", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", "pipeline_info", "unzip", "unzip/TEST1", @@ -203,8 +201,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-20T16:19:48.305625041" + "timestamp": "2025-08-29T11:27:18.418645149" } } \ No newline at end of file diff --git a/modules/local/numorphregister/tests/main.nf.test.snap b/modules/local/numorphregister/tests/main.nf.test.snap index 9e59cad..9581366 100644 --- a/modules/local/numorphregister/tests/main.nf.test.snap +++ b/modules/local/numorphregister/tests/main.nf.test.snap @@ -15,7 +15,7 @@ "TEST1_registered.tif:md5,d41d8cd98f00b204e9800998ecf8427e" ], "4": [ - "versions.yml:md5,8fb479aa14a9e667a80a4e374bd3c302" + "versions.yml:md5,fe89c175cbba844c4b95437e4def7abe" ], "NM_variables": [ "NM_variables.mat:md5,d41d8cd98f00b204e9800998ecf8427e" @@ -30,14 +30,14 @@ "TEST1_registered.tif:md5,d41d8cd98f00b204e9800998ecf8427e" ], "versions": [ - "versions.yml:md5,8fb479aa14a9e667a80a4e374bd3c302" + "versions.yml:md5,fe89c175cbba844c4b95437e4def7abe" ] } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-02-20T15:23:33.270945314" + "timestamp": "2025-08-29T11:37:58.144917362" } } \ No newline at end of file diff --git a/modules/local/numorphstitch/tests/main.nf.test.snap b/modules/local/numorphstitch/tests/main.nf.test.snap index 3a4aef7..ffc64a8 100644 --- a/modules/local/numorphstitch/tests/main.nf.test.snap +++ b/modules/local/numorphstitch/tests/main.nf.test.snap @@ -1,147 +1,88 @@ { - "Numorphstitch stub test": { - "content": [ - { - "0": [ - [ - { - "id": "TEST1" - }, - "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - [ - "adjusted_z.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "path_table.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "stitch_tforms.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "z_dips_matrix.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "2": [ - "NM_variables.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "3": [ - "versions.yml:md5,078a96bac91c7c12facb9f321644c34d" - ], - "NM_variables": [ - "NM_variables.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "stitched": [ - [ - { - "id": "TEST1" - }, - "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "variables": [ - [ - "adjusted_z.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "path_table.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "stitch_tforms.mat:md5,d41d8cd98f00b204e9800998ecf8427e", - "z_dips_matrix.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - "versions.yml:md5,078a96bac91c7c12facb9f321644c34d" - ] - } - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "24.10.3" - }, - "timestamp": "2025-02-19T16:40:56.52260208" - }, "Numorphstitch test": { "content": [ 4, [ - "TEST1", - "TEST1/alignment", - "TEST1/alignment/results", - "TEST1/alignment/results/NM_variables.mat", - "TEST1/alignment/results/samples", - "TEST1/alignment/results/samples/alignment", - "TEST1/alignment/results/samples/alignment/TEST1_ctip2_full.tif", - "TEST1/alignment/results/samples/alignment/TEST1_topro_full.tif", - "TEST1/alignment/results/variables", - "TEST1/alignment/results/variables/alignment_table.mat", - "TEST1/alignment/results/variables/path_table.mat", - "TEST1/alignment/results/variables/z_displacement_align.mat", - "TEST1/intensity", - "TEST1/intensity/results", - "TEST1/intensity/results/NM_variables.mat", - "TEST1/intensity/results/samples", - "TEST1/intensity/results/samples/intensity_adjustment", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/ctip2_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/flatfield_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/tile_adj_2.png", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_1_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_1_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/topro_2_2_11.tif", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_1.png", - "TEST1/intensity/results/samples/intensity_adjustment/y_adj_2.png", - "TEST1/intensity/results/variables", - "TEST1/intensity/results/variables/adj_params.mat", - "TEST1/intensity/results/variables/path_table.mat", - "TEST1/intensity/results/variables/thresholds.mat", - "TEST1/stitching", - "TEST1/stitching/results", - "TEST1/stitching/results/NM_variables.mat", - "TEST1/stitching/results/stitched", - "TEST1/stitching/results/stitched/TEST1_0001_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0001_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0002_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0003_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0004_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0005_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0006_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0007_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0008_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0009_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0010_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0011_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0012_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0013_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0014_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0015_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0016_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0017_C2_ctip2_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C1_topro_stitched.tif", - "TEST1/stitching/results/stitched/TEST1_0018_C2_ctip2_stitched.tif", - "TEST1/stitching/results/variables", - "TEST1/stitching/results/variables/adj_params.mat", - "TEST1/stitching/results/variables/adjusted_z.mat", - "TEST1/stitching/results/variables/alignment_table.mat", - "TEST1/stitching/results/variables/path_table.mat", - "TEST1/stitching/results/variables/stitch_tforms.mat", - "TEST1/stitching/results/variables/thresholds.mat", - "TEST1/stitching/results/variables/z_disp_matrix.mat", - "TEST1/stitching/results/variables/z_displacement_align.mat", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", + "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_0001_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0001_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adj_params.mat", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/alignment_table.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/thresholds.mat", + "numorphstitch/TEST1/variables/z_disp_matrix.mat", + "numorphstitch/TEST1/variables/z_displacement_align.mat", "pipeline_info", "unzip", "unzip/TEST1", @@ -318,8 +259,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-20T17:44:42.45846679" + "timestamp": "2025-08-29T12:00:50.435832344" } } \ No newline at end of file diff --git a/subworkflows/local/numorph_preprocessing/tests/.nftignore b/subworkflows/local/numorph_preprocessing/tests/.nftignore new file mode 100644 index 0000000..3ebeb10 --- /dev/null +++ b/subworkflows/local/numorph_preprocessing/tests/.nftignore @@ -0,0 +1,20 @@ +.DS_Store +multiqc/multiqc_data/fastqc_top_overrepresented_sequences_table.txt +multiqc/multiqc_data/BETA-multiqc.parquet +multiqc/multiqc_data/multiqc.log +multiqc/multiqc_data/multiqc_data.json +multiqc/multiqc_data/multiqc_sources.txt +multiqc/multiqc_data/multiqc_software_versions.txt +multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} +multiqc/multiqc_report.html +fastqc/*_fastqc.{html,zip} +pipeline_info/*.{html,json,txt,yml} +{numorphintensity,numorphalign,numorphstitch,numorphregister,numorphresample}/*/NM_variables.mat +{numorphintensity,numorphalign,numorphstitch}/*/*/path_table.mat +numorphalign/*/*/alignment_table.mat +numorphintensity/*/variables/*.mat +numorphintensity/*/samples/*.png +numorphstitch/*/variables/*.mat +numorph3dunet/* +mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds, stitch_tforms}.json +mat2json/*/*.csv diff --git a/subworkflows/local/numorph_preprocessing/tests/main.nf.test b/subworkflows/local/numorph_preprocessing/tests/main.nf.test index 50eb47b..0d99077 100644 --- a/subworkflows/local/numorph_preprocessing/tests/main.nf.test +++ b/subworkflows/local/numorph_preprocessing/tests/main.nf.test @@ -15,24 +15,50 @@ nextflow_workflow { test("Numorph Preprocessing") { - options "-stub" + setup { + run ("UNZIP") { + script "../../../../modules/nf-core/unzip/main.nf" + process { + """ + input[0] = Channel.fromList([ + tuple([ id:'TEST1'], + file('https://zenodo.org/records/14916478/files/ctip2_topro.zip')) + ]) + """ + } + } + } when { + params { + outdir = "$outputDir" + } workflow { """ - input[0] = Channel.fromList([ - tuple([ id:'TEST1'], - file('/home/schwitalla/Documents/test-datasets/test_data/images'), - file('test-datasets/test_data/parameterfiles/params_TEST1_lsmquant.csv')) - ]) + input[0] = UNZIP.out.unzipped_archive.map { meta, unzipped_archive -> + tuple( + meta, + unzipped_archive, + file(params.pipelines_testdata_base_path + '/test_data/parameterfiles/params_TEST1_lsmquant.csv')) + } """ } } then { + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'subworkflows/local/numorph_preprocessing/tests/.nftignore') + assert workflow.success assertAll( - { assert workflow.success}, - { assert snapshot(workflow.out).match()} + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + removeNextflowVersion("$outputDir/pipeline_info/nf_core_lsmquant_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name.isEmpty() ? 'No stable paths' : stable_name, + // All files with stable contents + stable_path + ).match()} ) } } diff --git a/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap b/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap index 2a3d923..7c2844d 100644 --- a/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap +++ b/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap @@ -1,47 +1,514 @@ { "Numorph Preprocessing": { "content": [ - { - "0": [ - [ - { - "id": "TEST1" - }, - "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "1": [ - "thresholds.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "2": [ - "NM_variables.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "3": [ - - ], - "NM_variables": [ - "NM_variables.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "intensity_thresholds": [ - "thresholds.mat:md5,d41d8cd98f00b204e9800998ecf8427e" - ], - "stitched": [ - [ - { - "id": "TEST1" - }, - "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" - ] - ], - "versions": [ - - ] - } + 7, + null, + [ + "mat2json", + "mat2json/align", + "mat2json/align/NM_variables.json", + "mat2json/align/alignment_table.json", + "mat2json/align/path_table.json", + "mat2json/align/z_displacement_align.json", + "mat2json/intensity", + "mat2json/intensity/NM_variables.json", + "mat2json/intensity/adj_params.json", + "mat2json/intensity/path_table.json", + "mat2json/intensity/thresholds.json", + "mat2json/stitch", + "mat2json/stitch/adj_params.json", + "mat2json/stitch/adjusted_z.csv", + "mat2json/stitch/alignment_table.json", + "mat2json/stitch/path_table.json", + "mat2json/stitch/stitch_tforms.json", + "mat2json/stitch/thresholds.json", + "mat2json/stitch/z_disp_matrix.json", + "mat2json/stitch/z_displacement_align.json", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", + "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", + "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_0001_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0001_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0002_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0003_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0004_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0005_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0006_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0007_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0008_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0009_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0010_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0011_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0012_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0013_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0014_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0015_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0016_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0017_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C1_topro_stitched.tif", + "numorphstitch/TEST1/stitched/TEST1_0018_C2_ctip2_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adj_params.mat", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/alignment_table.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/thresholds.mat", + "numorphstitch/TEST1/variables/z_disp_matrix.mat", + "numorphstitch/TEST1/variables/z_displacement_align.mat", + "pipeline_info", + "unzip", + "unzip/TEST1", + "unzip/TEST1/ctip2_topro", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif", + "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" + ], + [ + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", + "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", + "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", + "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", + "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", + "z_displacement_align.mat:md5,3c5408fc956ac909d9f05897ae81c891", + "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", + "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", + "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", + "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", + "flatfield_1.png:md5,cabebe657f8d47f1f0268ed2b878e536", + "flatfield_2.png:md5,7946f0e6721852ae88e2a97031bef965", + "tile_adj_1.png:md5,fe7845aaa92cdf1d701096b78de93f8a", + "tile_adj_2.png:md5,06a3cb1c09c6a6dddd23fc536b5cc0af", + "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", + "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", + "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", + "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", + "y_adj_1.png:md5,86a6d9eda5b531b7c064ce49fbf93e66", + "y_adj_2.png:md5,acd862baaf892f48a985dc95ee2bb9f8", + "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", + "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", + "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", + "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", + "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", + "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", + "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", + "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", + "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", + "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", + "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", + "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", + "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", + "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", + "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", + "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", + "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", + "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", + "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", + "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", + "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", + "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", + "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", + "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", + "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", + "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", + "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", + "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", + "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", + "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", + "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", + "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", + "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", + "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", + "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", + "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif:md5,4696a351aae54e5743c727a241bd8054", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif:md5,3ea6ccdb7621ce38b6dce54ec427fc68", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif:md5,659f6770b9fbbc2e25444e45afbbdca9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif:md5,4a0753196ec13d94197cc1cd664118e9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif:md5,8ac1c9dcb3b4a8c524b3a50710822b22", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif:md5,cc90e9010e8af068def04bfa05447bcb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif:md5,9496e9c2f2fab7dc7bf1cd8c426fec2a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif:md5,58b3380cb607b2386054dd0150d5bfe6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif:md5,4bd92251df0a09f284998da07ed9a28a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif:md5,fb687c3253ad67292854396eccadf93f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif:md5,b91d11baeb2f4d4b6facf3c42baf5559", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif:md5,9048571bb58c1d53e9f5e78d0aace06f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif:md5,f9bdba923be7efbbfa579078fe482077", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif:md5,4300e7df0b119a24cf97759dd60d8d1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif:md5,f0b8b26c957f54bb5753fb05c5543cce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif:md5,c0acc44a4fb7a3319697c50940866c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif:md5,6f4f070c8b4f6b7c6d3f250490204344", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif:md5,75f49c36b2f68389b74e099f1a511aab", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif:md5,877ebc92d32c2627479cb8de90479df3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif:md5,aadb50e79b121c9409233ec9d974c93e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif:md5,8ffa145b84becb2e393ea392b61221e2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif:md5,5485a677ee6120c4335da191b7c71775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif:md5,ac8f0b7af5818f5d847022acdaed148e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif:md5,0d933b1e15250d9f7941a401854597f6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif:md5,fee96a7fcf33a2109a56c9340700468c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif:md5,4c0919d495b2a46361ac9c388ddc4171", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif:md5,94d6f32f40d1a4a651878b6d3efa6442", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif:md5,c5e47a7f36cf3939a69fe941b265a63e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif:md5,6e0ac8cb6ce0f3ecab8ec32c92d64c75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif:md5,5bbe6e0313b545c92a80fdc449c7eef5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif:md5,b75397c891e3227f6924b7c4e4e07227", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif:md5,87c0da116039d2504e6cee762531fc3a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif:md5,34190fa382ba86c19c266267cae274cf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif:md5,a073cedbd1623037337a3bf66a0d2509", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif:md5,d14d01971e1067f9c69e8fd3d40658f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif:md5,be4e0ea00e04d4961a28d9b56ec0ef6a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif:md5,f23178bfeaee7c335e3712a727f7a8f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif:md5,abdf257747a4a7f221598beed75fcfeb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif:md5,544b6b4cbcbc41282c2a673ce6e5d8f0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif:md5,3f4430ff9848f2e416593b525d6dee55", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif:md5,d909260b4a17c58e263b430e8dfdfb75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif:md5,382f40799d7953bea50e93027db11ccd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif:md5,33986578219177e6d193b34b15f7c9b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif:md5,5579dcfac911e69aa303ec4861b996d2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif:md5,2348dcbc31e2bdfb6c70f3252af90c0b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif:md5,0510c1c30a5a3a2cf4585ea750bb4688", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif:md5,13ff8029541013f7edb6f466efe1208b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif:md5,b19fa191e907c0adb0a7617f06aeea4c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif:md5,7853ebadfbde3f8b922ef8ca2caad068", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif:md5,5744ea7c8832aca72b42708fea9b1be8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif:md5,5e4dbfe159aacc266237af1d516b34e6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif:md5,caa9d77a6246090cf0c16baa9752cfd1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif:md5,ae832832dec48fdec3d70e4e1ad24d75", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif:md5,8b5378a0ff0f6895efa3bc9f0fc0f367", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif:md5,786aae2a7e318e753fd35668209d88b4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif:md5,9f7707efd5621381ad1d7105345fea24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif:md5,2fedb7ab7851fe7b645f65697edb63f7", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif:md5,7b001437f260d01c84bae46355cfc175", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif:md5,3ffe776d5d28d322db1f434cfbd5ae45", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif:md5,e749583273099631b0d0353d5e4511e1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif:md5,aaf788f0b67ac02247d33d06311878bd", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif:md5,7608e074b61771a2567e9287e4b61cf2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif:md5,bfcd74014e58851cdd1b10f6c002ab67", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif:md5,9f5e41ed9be226075660ac14b0c50e86", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif:md5,6be760083a55a9484ae27d10dbff1715", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif:md5,399b55ada07c5fb15509140df0e08ab0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif:md5,1b0adcd349239c1b9d231d7abe9d209e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif:md5,127e0542db979a61d6179500da7a8686", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif:md5,d08fba09b3924f54892016208ac3b3e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif:md5,2c2af0e64d084ba01dd8def74ebdf8ac", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif:md5,9a06fcbd0277220356384ae53b07fe2f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif:md5,c9ad0485e27f394d86e2313f791eb5a8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif:md5,4b143f64580e6ac687dc422b3d2b62fe", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif:md5,3b04b738e6081eda29c25840ecc56424", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif:md5,7073637f421bf589895d8278b6b76396", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif:md5,7c53da56931e1ebca641cf89408cea35", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif:md5,70d922572b191bba87db884a6a78de1e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif:md5,0731e9d863155ed413d2304cd39b4c87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif:md5,72a600b34ab829bcdb349de1666b6bbb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif:md5,0d75d4438e4dd40a11aea21576e0db0c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif:md5,dfdcc9e6bb10afcd117a4228e160368f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif:md5,470a01158003f74da5487468df0b2636", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif:md5,d1db4fea718b9fd83919a5ccb64ace9c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif:md5,6c94577471e6a2815e0794a5bbe49e74", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif:md5,6ade6266d67a56a58e3048e2a41be71a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif:md5,257b58f4f237270955636afa5e7c158d", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif:md5,17712054bba72efe4b3f8b4d9df2a5a0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif:md5,f7f3ae40f70ec469eab77342eaa57bf3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif:md5,f1e4b447bc37ce937eb2e3023fdae094", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif:md5,146321d14232cb1de14d8e044f11e4ce", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif:md5,d929b4c176abf03e4851dcfbc8a1ed16", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif:md5,27551d9576ed4440e918a2ec60f94931", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif:md5,9d6cfafc558e5b66d18add3dfeec4244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif:md5,a82162ce680f1928cd5416ac153d36df", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif:md5,978119009ed5da3eb9a631b2a5021064", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif:md5,47b2b4621a171697d1218b3e10a858ae", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif:md5,fa1c2d7b56aa0525230d0f56af1ee75b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif:md5,e8d10bb1281b05cb1975b78551c598d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif:md5,23fc1d734e784d7402adf73cd4ee1021", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif:md5,eed98be51b025745b4de480655e60d05", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif:md5,323f21c8bba1649c278d83de9d3d1f25", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif:md5,3cd96aa2914b28a9dc7c6b8bc7dcc8ec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif:md5,7074583255da8071c6233a6064087bfb", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif:md5,e8930f83802ca0b442284d60d4b2d211", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif:md5,93af177e91edb8cafe21edb7958f58e4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif:md5,ba56a8717423e049f26b4bfa21f9b7c9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif:md5,4272e5a94329724beaec8b3332dc59be", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif:md5,952779032aa0d5ddd9d937a7dc0ee4b0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif:md5,98ef1216a3cf6b1c85e69cf493dfa19b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif:md5,1a485230e224f4084f9f59024f4aa065", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif:md5,902cdfb1da488a8c19dfbf0778de4087", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif:md5,aea06540f31dd74e7691121a17093a5b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif:md5,635f536ceb784170799fc91000cbaa6b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif:md5,cf4a370b59b260c6af3a48fc8c84ced2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif:md5,3e4ae7181947ab3757ec5a2f67e3b472", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif:md5,708e4e1a9fb160de9d0c65af62180846", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif:md5,81df70b026bbfe96f4258d0e416e427c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif:md5,8ce34f974d150ce382b0eecb3dbb5898", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif:md5,95012622f95a3cfd0bc1327dcc34e0b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif:md5,ad1983f5f6003d0f661c17f6e0b60bec", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif:md5,51d6ebe4eb88704d8ca67561d47c95b8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif:md5,6900929ad8dfd3f0c8b0dce5f59dd4a5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif:md5,b3009a2a6736171b8f28c0630b85a606", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif:md5,57c619f503078739317641848f6eb69a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif:md5,3d9baf2a67581d72194f0354154b120f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif:md5,6674132080cfabfc639be9c80ec9090f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif:md5,419080c6ec0578bcde19a9f4360535b2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif:md5,9314465994d55011eba9e1239c5b855c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif:md5,dd044d2d61d337935b1c66b4286bc8bf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif:md5,f44e51b79aeca18e62e5284a4e74e244", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif:md5,ea5e1bace16ea20be45fdb4562a5ad64", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif:md5,f3cf28bf23ca3d2fb8611a80d2fcfe10", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif:md5,cdb745f3ccfac5b309d22c08570deb24", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif:md5,3dc41f65c22c81e6f5b12277c6b827fa", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif:md5,28c4b3e6a9c93957da94fce9c4b949d1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif:md5,0070c463e9928492053bd1b88b617bdf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif:md5,a21b3c78191aaa5d78f51c6627041f72", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif:md5,0a5f43af602e48341eb621a7dfc5c4f4", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif:md5,d6f4ee9ef8a93cc6b977f3231840d8e8", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif:md5,913744509efac629fbd14c648b30b2c1", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif:md5,70db6c8f0dfb7607d8aada3ff813edc2", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif:md5,38ab5e5448b69d7808e6fe1c888fdde5", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif:md5,21f540d85c3395b11d2146a858088b1a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif:md5,4bb6c7de160539b3db5485fa6944109a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif:md5,152931c5d09894e74e3216b62e6d1446", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif:md5,c9af3b9a2044760bd5ad2ff912ad9076", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif:md5,9afd8c433a4c12e9ffb2e7ef72d665f3", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif:md5,0390cf7ce133f1b04946341973eeb29c", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif:md5,114aa0fff83db1e693a73ac9a9e795c0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif:md5,d801111f07bedfbb9508bfed1e5f8d0a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif:md5,c4dcf031c9f33da4a1261324f212103a", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif:md5,467f11413dbd56cd2e781003b3973e87", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif:md5,89f163ab69b8a66bbc4bc9c17880cba0", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif:md5,8d329fb7ca37b261bf419c114bcc3775", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif:md5,486dad8db46e853eee60dccfc716b543", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif:md5,3a4caf7fab942a5eb0a8666a86c4552e", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif:md5,7781ff916dfae4f9b8093d04d2e5ddd6", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif:md5,93269be5f9ba1e07b2ee253f9f9574d9", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif:md5,013f6d3ea185745eb2e02c05f3418eaf", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif:md5,c59a5b5dd08bf4acfa0f954e25c5419f", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif:md5,9b122cba54fb3d8f2f3f7a9df7b9821b", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif:md5,fa8f8bef57029e14c0eb6daf7bab2886", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif:md5,d316f89e3752621cb93bf8de1f694000", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif:md5,43d0386b21d9f6a36c209dc3ab60d1cc", + "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif:md5,b4f4be8e38b3b84dcd1a34a2b1968abc" + ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.4" + "nextflow": "25.04.6" }, - "timestamp": "2025-02-21T16:16:38.660022739" + "timestamp": "2025-08-29T10:47:01.7906535" } } \ No newline at end of file From 48068861a437d8fc9e6fa66d308b2db8364325e7 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Fri, 29 Aug 2025 21:29:23 +0200 Subject: [PATCH 08/27] update snapshots + nftignore --- tests/.nftignore | 8 +++++--- tests/default.nf.test.snap | 14 +------------- tests/preprocess.nf.test.snap | 12 +----------- 3 files changed, 7 insertions(+), 27 deletions(-) diff --git a/tests/.nftignore b/tests/.nftignore index 3ebeb10..a96bef9 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -12,9 +12,11 @@ pipeline_info/*.{html,json,txt,yml} {numorphintensity,numorphalign,numorphstitch,numorphregister,numorphresample}/*/NM_variables.mat {numorphintensity,numorphalign,numorphstitch}/*/*/path_table.mat numorphalign/*/*/alignment_table.mat +numorphalign/*/*/z_displacement_align.mat numorphintensity/*/variables/*.mat -numorphintensity/*/samples/*.png +numorphintensity/*/samples/*/*.png numorphstitch/*/variables/*.mat -numorph3dunet/* -mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds, stitch_tforms}.json +numorph3dunet/*/* +mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds,stitch_tforms}.json mat2json/*/*.csv +numorphstitch/*/stitched/TEST1_0006* diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 1607fb1..e40766a 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -306,28 +306,18 @@ ], [ "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "TEST1.csv:md5,03ade2aa5a38d978f6b1dd34d741844a", - "TEST1_counts.csv:md5,466295dc5cb794e773520be014ee38ee", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "z_displacement_align.mat:md5,39474b8b4f1f246e06f8fb0939989141", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,d7bb0f7029a40b5a01836a1d76fcc4fe", - "flatfield_2.png:md5,aefc71f6dfef5a51abcfae55547a38b7", - "tile_adj_1.png:md5,2fb1fde009afe7d387d18af329cb5bc8", - "tile_adj_2.png:md5,e7aca3a27fd8df54327192d75e090ed6", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,4658273b8bd4cd6f8ed8ef86c8b16cf7", - "y_adj_2.png:md5,3426316c88c10efc987d14df902218a8", "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", @@ -338,8 +328,6 @@ "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", - "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", - "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", @@ -538,6 +526,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-28T18:17:22.248739072" + "timestamp": "2025-08-29T15:05:32.27113918" } } \ No newline at end of file diff --git a/tests/preprocess.nf.test.snap b/tests/preprocess.nf.test.snap index 5233fb0..e958e8d 100644 --- a/tests/preprocess.nf.test.snap +++ b/tests/preprocess.nf.test.snap @@ -299,26 +299,18 @@ ], [ "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "stitch_tforms.json:md5,b5cc9b439f94631bee62e3f8315dd9aa", "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "z_displacement_align.mat:md5,573223719c05fd3f621fadd468c2dabf", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,1499e8d44ef0fa199d3ae0b0dd8602b3", - "flatfield_2.png:md5,3636cd5855c3c1615e7ad579654183c1", - "tile_adj_1.png:md5,e2032bf09712938c7dd0687570e4548d", - "tile_adj_2.png:md5,aa118ac69fbcc84dfa838a3faf8a973d", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,6c88c69d4561d4863f26f48bac12fbb6", - "y_adj_2.png:md5,1abf810ab0704628391503922259f826", "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", @@ -329,8 +321,6 @@ "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", - "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", - "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", @@ -529,6 +519,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-29T10:04:25.997678386" + "timestamp": "2025-08-29T15:22:24.431992314" } } \ No newline at end of file From 0e634df07f8dd5260894716ecf93f7cf16a22863 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Sat, 30 Aug 2025 12:27:41 +0200 Subject: [PATCH 09/27] update test config --- conf/test_gpu.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/test_gpu.config b/conf/test_gpu.config index 9592973..1cda080 100755 --- a/conf/test_gpu.config +++ b/conf/test_gpu.config @@ -14,13 +14,14 @@ process { resourceLimits = [ cpus: 4, memory: '15.GB', - time: '1.h' + time: '2.h' ] withLabel: process_gpu { ext.use_gpu = true accelerator = 1 containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } + memory = { 15.GB * task.attempt } } } From fe77cd446f73ac389b69da9a4b2dc503b5a0dc46 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Sat, 30 Aug 2025 23:14:37 +0200 Subject: [PATCH 10/27] update config --- conf/test_gpu.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test_gpu.config b/conf/test_gpu.config index 1cda080..01fc56c 100755 --- a/conf/test_gpu.config +++ b/conf/test_gpu.config @@ -20,7 +20,7 @@ process { withLabel: process_gpu { ext.use_gpu = true accelerator = 1 - containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } + // containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } memory = { 15.GB * task.attempt } } } From 1c80693a99cae3140f2219299389f45c1479860a Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Mon, 1 Sep 2025 12:17:57 +0200 Subject: [PATCH 11/27] update test profile --- conf/test.config | 9 ++++++++- conf/test_gpu.config | 2 +- nf-test.config | 2 +- tests/default.nf.test | 1 - 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/conf/test.config b/conf/test.config index b8d58a6..cd7eab9 100755 --- a/conf/test.config +++ b/conf/test.config @@ -16,11 +16,18 @@ process { memory: '15.GB', time: '1.h' ] + + withLabel: process_gpu { + ext.use_gpu = true + accelerator = 1 + // containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } + memory = { 15.GB * task.attempt } + } } params { config_profile_name = 'Test profile' config_profile_description = 'Minimal test dataset to check pipeline function' input = params.pipelines_testdata_base_path + '/test_data/samplesheets/sample_sheet.csv' - stage = 'preprocessing' + stage = 'full' } diff --git a/conf/test_gpu.config b/conf/test_gpu.config index 01fc56c..a0d8b9a 100755 --- a/conf/test_gpu.config +++ b/conf/test_gpu.config @@ -14,7 +14,7 @@ process { resourceLimits = [ cpus: 4, memory: '15.GB', - time: '2.h' + time: '1.h' ] withLabel: process_gpu { diff --git a/nf-test.config b/nf-test.config index 604f3b6..3a1fff5 100644 --- a/nf-test.config +++ b/nf-test.config @@ -12,7 +12,7 @@ config { ignore 'modules/nf-core/**/tests/*', 'subworkflows/nf-core/**/tests/*' // run all test with defined profile(s) from the main nextflow.config - profile "test, docker" + profile "test" // list of filenames or patterns that should be trigger a full test run triggers 'nextflow.config', 'nf-test.config', 'conf/test.config', 'tests/nextflow.config', 'tests/.nftignore' diff --git a/tests/default.nf.test b/tests/default.nf.test index a3b22b9..8b23594 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,7 +4,6 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" - profile "docker,test_gpu" test("default test gpu") { From a5494c3647f200f3e17d6af4cf61120fca162423 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Mon, 1 Sep 2025 14:05:52 +0200 Subject: [PATCH 12/27] update snapshot pipeline level tests --- tests/default.nf.test | 30 ++ tests/default.nf.test.snap | 84 +++++ tests/preprocess.nf.test | 37 -- tests/preprocess.nf.test.snap | 524 ----------------------------- tests/preprocess_stub.nf.test | 36 -- tests/preprocess_stub.nf.test.snap | 72 ---- 6 files changed, 114 insertions(+), 669 deletions(-) delete mode 100644 tests/preprocess.nf.test delete mode 100644 tests/preprocess.nf.test.snap delete mode 100644 tests/preprocess_stub.nf.test delete mode 100644 tests/preprocess_stub.nf.test.snap diff --git a/tests/default.nf.test b/tests/default.nf.test index 8b23594..f920e00 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -33,4 +33,34 @@ nextflow_pipeline { ) } } + + test("default test gpu -stub") { + + options "-stub" + when { + params { + 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 = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + 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 test pipelines on multiple Nextflow versions + removeNextflowVersion("$outputDir/pipeline_info/nf_core_lsmquant_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } } diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index e40766a..5dbfce8 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -1,4 +1,88 @@ { + "default test gpu -stub": { + "content": [ + 8, + { + "MAT2JSON_INT": { + "mat2json": 1.0 + }, + "NUMORPH3DUNET": { + "numorph3dunet": 1.0 + }, + "NUMORPHALIGN": { + "numorphalign": 1.0 + }, + "NUMORPHINTENSITY": { + "numorphintensity": 1.0 + }, + "NUMORPHSTITCH": { + "numorphstitch": 1.0 + }, + "UNZIP": { + "7za": 16.02 + }, + "Workflow": { + "nf-core/lsmquant": "v1.0dev" + } + }, + [ + "mat2json", + "mat2json/align", + "mat2json/align/TEST1.json", + "mat2json/intensity", + "mat2json/intensity/TEST1.json", + "mat2json/stitch", + "mat2json/stitch/TEST1.json", + "numorph3dunet", + "numorph3dunet/TEST1", + "numorph3dunet/TEST1/TEST1.csv", + "numorph3dunet/TEST1/TEST1_counts.csv", + "numorphalign", + "numorphalign/TEST1", + "numorphalign/TEST1/samples", + "numorphalign/TEST1/samples/alignment", + "numorphalign/TEST1/samples/alignment/TEST1_full.tif", + "numorphalign/TEST1/variables", + "numorphalign/TEST1/variables/alignment_table.mat", + "numorphalign/TEST1/variables/path_table.mat", + "numorphalign/TEST1/variables/z_displacement_align.mat", + "numorphintensity", + "numorphintensity/TEST1", + "numorphintensity/TEST1/samples", + "numorphintensity/TEST1/samples/intensity_adjustment", + "numorphintensity/TEST1/samples/intensity_adjustment/TEST1.png", + "numorphintensity/TEST1/variables", + "numorphintensity/TEST1/variables/adj_params.mat", + "numorphintensity/TEST1/variables/path_table.mat", + "numorphintensity/TEST1/variables/thresholds.mat", + "numorphstitch", + "numorphstitch/TEST1", + "numorphstitch/TEST1/stitched", + "numorphstitch/TEST1/stitched/TEST1_stitched.tif", + "numorphstitch/TEST1/variables", + "numorphstitch/TEST1/variables/adjusted_z.mat", + "numorphstitch/TEST1/variables/path_table.mat", + "numorphstitch/TEST1/variables/stitch_tforms.mat", + "numorphstitch/TEST1/variables/z_dips_matrix.mat", + "pipeline_info", + "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", + "unzip", + "unzip/TEST1" + ], + [ + "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", + "TEST1_full.tif:md5,d41d8cd98f00b204e9800998ecf8427e", + "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-09-01T13:52:09.520222007" + }, "default test gpu": { "content": [ 8, diff --git a/tests/preprocess.nf.test b/tests/preprocess.nf.test deleted file mode 100644 index 51d6810..0000000 --- a/tests/preprocess.nf.test +++ /dev/null @@ -1,37 +0,0 @@ -nextflow_pipeline { - - name "Test Workflow main.nf" - script "../main.nf" - tag "cpu" - tag "pipeline_lsmquant" - - - test("-profile test preprocess") { - - when { - params { - outdir = "$outputDir" - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/lsmquant/test_data/samplesheets/sample_sheet.csv' - } - } - - then { - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') - assert workflow.success - assertAll( - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - removeNextflowVersion("$outputDir/pipeline_info/nf_core_lsmquant_software_mqc_versions.yml"), - // All stable path name, with a relative path - stable_name.isEmpty() ? 'No stable paths' : stable_name, - // All files with stable contents - stable_path - ).match()} - ) - } - - } - -} diff --git a/tests/preprocess.nf.test.snap b/tests/preprocess.nf.test.snap deleted file mode 100644 index e958e8d..0000000 --- a/tests/preprocess.nf.test.snap +++ /dev/null @@ -1,524 +0,0 @@ -{ - "-profile test preprocess": { - "content": [ - 7, - { - "MAT2JSON_INT": { - "mat2json": 1.0 - }, - "NUMORPHALIGN": { - "numorphalign": 1.0 - }, - "NUMORPHINTENSITY": { - "numorphintensity": 1.0 - }, - "NUMORPHSTITCH": { - "numorphstitch": 1.0 - }, - "UNZIP": { - "7za": 16.02 - }, - "Workflow": { - "nf-core/lsmquant": "v1.0dev" - } - }, - [ - "mat2json", - "mat2json/align", - "mat2json/align/NM_variables.json", - "mat2json/align/alignment_table.json", - "mat2json/align/path_table.json", - "mat2json/align/z_displacement_align.json", - "mat2json/intensity", - "mat2json/intensity/NM_variables.json", - "mat2json/intensity/adj_params.json", - "mat2json/intensity/path_table.json", - "mat2json/intensity/thresholds.json", - "mat2json/stitch", - "mat2json/stitch/adj_params.json", - "mat2json/stitch/adjusted_z.csv", - "mat2json/stitch/alignment_table.json", - "mat2json/stitch/path_table.json", - "mat2json/stitch/stitch_tforms.json", - "mat2json/stitch/thresholds.json", - "mat2json/stitch/z_disp_matrix.json", - "mat2json/stitch/z_displacement_align.json", - "numorphalign", - "numorphalign/TEST1", - "numorphalign/TEST1/samples", - "numorphalign/TEST1/samples/alignment", - "numorphalign/TEST1/samples/alignment/TEST1_ctip2_full.tif", - "numorphalign/TEST1/samples/alignment/TEST1_topro_full.tif", - "numorphalign/TEST1/variables", - "numorphalign/TEST1/variables/alignment_table.mat", - "numorphalign/TEST1/variables/path_table.mat", - "numorphalign/TEST1/variables/z_displacement_align.mat", - "numorphintensity", - "numorphintensity/TEST1", - "numorphintensity/TEST1/samples", - "numorphintensity/TEST1/samples/intensity_adjustment", - "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_1_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_1_2_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_1_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/ctip2_2_2_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_1.png", - "numorphintensity/TEST1/samples/intensity_adjustment/flatfield_2.png", - "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_1.png", - "numorphintensity/TEST1/samples/intensity_adjustment/tile_adj_2.png", - "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_1_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/topro_1_2_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_1_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/topro_2_2_11.tif", - "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_1.png", - "numorphintensity/TEST1/samples/intensity_adjustment/y_adj_2.png", - "numorphintensity/TEST1/variables", - "numorphintensity/TEST1/variables/adj_params.mat", - "numorphintensity/TEST1/variables/path_table.mat", - "numorphintensity/TEST1/variables/thresholds.mat", - "numorphstitch", - "numorphstitch/TEST1", - "numorphstitch/TEST1/stitched", - "numorphstitch/TEST1/stitched/TEST1_0001_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0001_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0002_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0002_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0003_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0003_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0004_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0004_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0005_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0005_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0006_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0006_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0007_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0007_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0008_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0008_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0009_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0009_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0010_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0010_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0011_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0011_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0012_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0012_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0013_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0013_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0014_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0014_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0015_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0015_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0016_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0016_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0017_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0017_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0018_C1_topro_stitched.tif", - "numorphstitch/TEST1/stitched/TEST1_0018_C2_ctip2_stitched.tif", - "numorphstitch/TEST1/variables", - "numorphstitch/TEST1/variables/adj_params.mat", - "numorphstitch/TEST1/variables/adjusted_z.mat", - "numorphstitch/TEST1/variables/alignment_table.mat", - "numorphstitch/TEST1/variables/path_table.mat", - "numorphstitch/TEST1/variables/stitch_tforms.mat", - "numorphstitch/TEST1/variables/thresholds.mat", - "numorphstitch/TEST1/variables/z_disp_matrix.mat", - "numorphstitch/TEST1/variables/z_displacement_align.mat", - "pipeline_info", - "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", - "unzip", - "unzip/TEST1", - "unzip/TEST1/ctip2_topro", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif", - "unzip/TEST1/ctip2_topro/16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif" - ], - [ - "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "z_disp_matrix.json:md5,575020a27eee808b03c615e0a80ca506", - "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", - "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", - "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", - "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", - "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", - "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", - "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", - "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", - "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", - "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", - "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", - "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", - "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", - "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", - "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", - "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", - "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", - "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", - "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", - "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", - "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", - "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", - "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", - "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", - "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", - "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", - "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", - "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", - "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", - "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", - "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", - "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", - "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", - "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", - "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", - "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", - "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", - "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", - "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", - "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", - "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", - "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0603.ome.tif:md5,4696a351aae54e5743c727a241bd8054", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0604.ome.tif:md5,3ea6ccdb7621ce38b6dce54ec427fc68", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0605.ome.tif:md5,659f6770b9fbbc2e25444e45afbbdca9", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0606.ome.tif:md5,4a0753196ec13d94197cc1cd664118e9", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0607.ome.tif:md5,8ac1c9dcb3b4a8c524b3a50710822b22", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0608.ome.tif:md5,cc90e9010e8af068def04bfa05447bcb", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0609.ome.tif:md5,9496e9c2f2fab7dc7bf1cd8c426fec2a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0610.ome.tif:md5,58b3380cb607b2386054dd0150d5bfe6", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0611.ome.tif:md5,4bd92251df0a09f284998da07ed9a28a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0612.ome.tif:md5,fb687c3253ad67292854396eccadf93f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0613.ome.tif:md5,b91d11baeb2f4d4b6facf3c42baf5559", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0614.ome.tif:md5,9048571bb58c1d53e9f5e78d0aace06f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0615.ome.tif:md5,f9bdba923be7efbbfa579078fe482077", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0616.ome.tif:md5,4300e7df0b119a24cf97759dd60d8d1a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0617.ome.tif:md5,f0b8b26c957f54bb5753fb05c5543cce", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0618.ome.tif:md5,c0acc44a4fb7a3319697c50940866c87", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0619.ome.tif:md5,6f4f070c8b4f6b7c6d3f250490204344", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0620.ome.tif:md5,75f49c36b2f68389b74e099f1a511aab", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0600.ome.tif:md5,877ebc92d32c2627479cb8de90479df3", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0601.ome.tif:md5,aadb50e79b121c9409233ec9d974c93e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0602.ome.tif:md5,8ffa145b84becb2e393ea392b61221e2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0603.ome.tif:md5,5485a677ee6120c4335da191b7c71775", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0604.ome.tif:md5,ac8f0b7af5818f5d847022acdaed148e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0605.ome.tif:md5,0d933b1e15250d9f7941a401854597f6", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0606.ome.tif:md5,fee96a7fcf33a2109a56c9340700468c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0607.ome.tif:md5,4c0919d495b2a46361ac9c388ddc4171", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0608.ome.tif:md5,94d6f32f40d1a4a651878b6d3efa6442", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0609.ome.tif:md5,c5e47a7f36cf3939a69fe941b265a63e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0610.ome.tif:md5,6e0ac8cb6ce0f3ecab8ec32c92d64c75", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0611.ome.tif:md5,5bbe6e0313b545c92a80fdc449c7eef5", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0612.ome.tif:md5,b75397c891e3227f6924b7c4e4e07227", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0613.ome.tif:md5,87c0da116039d2504e6cee762531fc3a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0614.ome.tif:md5,34190fa382ba86c19c266267cae274cf", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0615.ome.tif:md5,a073cedbd1623037337a3bf66a0d2509", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0616.ome.tif:md5,d14d01971e1067f9c69e8fd3d40658f4", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0617.ome.tif:md5,be4e0ea00e04d4961a28d9b56ec0ef6a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0618.ome.tif:md5,f23178bfeaee7c335e3712a727f7a8f4", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0619.ome.tif:md5,abdf257747a4a7f221598beed75fcfeb", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C01_xyz-Table Z0620.ome.tif:md5,544b6b4cbcbc41282c2a673ce6e5d8f0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0600.ome.tif:md5,3f4430ff9848f2e416593b525d6dee55", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0601.ome.tif:md5,d909260b4a17c58e263b430e8dfdfb75", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0602.ome.tif:md5,382f40799d7953bea50e93027db11ccd", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0603.ome.tif:md5,33986578219177e6d193b34b15f7c9b8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0604.ome.tif:md5,5579dcfac911e69aa303ec4861b996d2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0605.ome.tif:md5,2348dcbc31e2bdfb6c70f3252af90c0b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0606.ome.tif:md5,0510c1c30a5a3a2cf4585ea750bb4688", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0607.ome.tif:md5,13ff8029541013f7edb6f466efe1208b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0608.ome.tif:md5,b19fa191e907c0adb0a7617f06aeea4c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0609.ome.tif:md5,7853ebadfbde3f8b922ef8ca2caad068", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0610.ome.tif:md5,5744ea7c8832aca72b42708fea9b1be8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0611.ome.tif:md5,5e4dbfe159aacc266237af1d516b34e6", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0612.ome.tif:md5,caa9d77a6246090cf0c16baa9752cfd1", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0613.ome.tif:md5,ae832832dec48fdec3d70e4e1ad24d75", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0614.ome.tif:md5,8b5378a0ff0f6895efa3bc9f0fc0f367", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0615.ome.tif:md5,786aae2a7e318e753fd35668209d88b4", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0616.ome.tif:md5,9f7707efd5621381ad1d7105345fea24", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0617.ome.tif:md5,2fedb7ab7851fe7b645f65697edb63f7", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0618.ome.tif:md5,7b001437f260d01c84bae46355cfc175", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0619.ome.tif:md5,3ffe776d5d28d322db1f434cfbd5ae45", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C00_xyz-Table Z0620.ome.tif:md5,e749583273099631b0d0353d5e4511e1", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0600.ome.tif:md5,aaf788f0b67ac02247d33d06311878bd", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0601.ome.tif:md5,7608e074b61771a2567e9287e4b61cf2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0602.ome.tif:md5,bfcd74014e58851cdd1b10f6c002ab67", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0603.ome.tif:md5,9f5e41ed9be226075660ac14b0c50e86", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0604.ome.tif:md5,6be760083a55a9484ae27d10dbff1715", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0605.ome.tif:md5,399b55ada07c5fb15509140df0e08ab0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0606.ome.tif:md5,1b0adcd349239c1b9d231d7abe9d209e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0607.ome.tif:md5,127e0542db979a61d6179500da7a8686", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0608.ome.tif:md5,d08fba09b3924f54892016208ac3b3e8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0609.ome.tif:md5,2c2af0e64d084ba01dd8def74ebdf8ac", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0610.ome.tif:md5,9a06fcbd0277220356384ae53b07fe2f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0611.ome.tif:md5,c9ad0485e27f394d86e2313f791eb5a8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0612.ome.tif:md5,4b143f64580e6ac687dc422b3d2b62fe", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0613.ome.tif:md5,3b04b738e6081eda29c25840ecc56424", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0614.ome.tif:md5,7073637f421bf589895d8278b6b76396", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0615.ome.tif:md5,7c53da56931e1ebca641cf89408cea35", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0616.ome.tif:md5,70d922572b191bba87db884a6a78de1e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0617.ome.tif:md5,0731e9d863155ed413d2304cd39b4c87", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0618.ome.tif:md5,72a600b34ab829bcdb349de1666b6bbb", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0619.ome.tif:md5,0d75d4438e4dd40a11aea21576e0db0c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 03]_C01_xyz-Table Z0620.ome.tif:md5,dfdcc9e6bb10afcd117a4228e160368f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0600.ome.tif:md5,470a01158003f74da5487468df0b2636", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0601.ome.tif:md5,d1db4fea718b9fd83919a5ccb64ace9c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0602.ome.tif:md5,6c94577471e6a2815e0794a5bbe49e74", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0603.ome.tif:md5,6ade6266d67a56a58e3048e2a41be71a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0604.ome.tif:md5,257b58f4f237270955636afa5e7c158d", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0605.ome.tif:md5,17712054bba72efe4b3f8b4d9df2a5a0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0606.ome.tif:md5,f7f3ae40f70ec469eab77342eaa57bf3", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0607.ome.tif:md5,f1e4b447bc37ce937eb2e3023fdae094", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0608.ome.tif:md5,146321d14232cb1de14d8e044f11e4ce", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0609.ome.tif:md5,d929b4c176abf03e4851dcfbc8a1ed16", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0610.ome.tif:md5,27551d9576ed4440e918a2ec60f94931", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0611.ome.tif:md5,9d6cfafc558e5b66d18add3dfeec4244", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0612.ome.tif:md5,a82162ce680f1928cd5416ac153d36df", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0613.ome.tif:md5,978119009ed5da3eb9a631b2a5021064", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0614.ome.tif:md5,47b2b4621a171697d1218b3e10a858ae", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0615.ome.tif:md5,fa1c2d7b56aa0525230d0f56af1ee75b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0616.ome.tif:md5,e8d10bb1281b05cb1975b78551c598d1", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0617.ome.tif:md5,23fc1d734e784d7402adf73cd4ee1021", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0618.ome.tif:md5,eed98be51b025745b4de480655e60d05", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0619.ome.tif:md5,323f21c8bba1649c278d83de9d3d1f25", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C00_xyz-Table Z0620.ome.tif:md5,3cd96aa2914b28a9dc7c6b8bc7dcc8ec", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0600.ome.tif:md5,7074583255da8071c6233a6064087bfb", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0601.ome.tif:md5,e8930f83802ca0b442284d60d4b2d211", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0602.ome.tif:md5,93af177e91edb8cafe21edb7958f58e4", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0603.ome.tif:md5,ba56a8717423e049f26b4bfa21f9b7c9", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0604.ome.tif:md5,4272e5a94329724beaec8b3332dc59be", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0605.ome.tif:md5,952779032aa0d5ddd9d937a7dc0ee4b0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0606.ome.tif:md5,98ef1216a3cf6b1c85e69cf493dfa19b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0607.ome.tif:md5,1a485230e224f4084f9f59024f4aa065", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0608.ome.tif:md5,902cdfb1da488a8c19dfbf0778de4087", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0609.ome.tif:md5,aea06540f31dd74e7691121a17093a5b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0610.ome.tif:md5,635f536ceb784170799fc91000cbaa6b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0611.ome.tif:md5,cf4a370b59b260c6af3a48fc8c84ced2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0612.ome.tif:md5,3e4ae7181947ab3757ec5a2f67e3b472", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0613.ome.tif:md5,708e4e1a9fb160de9d0c65af62180846", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0614.ome.tif:md5,81df70b026bbfe96f4258d0e416e427c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0615.ome.tif:md5,8ce34f974d150ce382b0eecb3dbb5898", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0616.ome.tif:md5,95012622f95a3cfd0bc1327dcc34e0b2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0617.ome.tif:md5,ad1983f5f6003d0f661c17f6e0b60bec", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0618.ome.tif:md5,51d6ebe4eb88704d8ca67561d47c95b8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0619.ome.tif:md5,6900929ad8dfd3f0c8b0dce5f59dd4a5", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 02]_C01_xyz-Table Z0620.ome.tif:md5,b3009a2a6736171b8f28c0630b85a606", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0600.ome.tif:md5,57c619f503078739317641848f6eb69a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0601.ome.tif:md5,3d9baf2a67581d72194f0354154b120f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0602.ome.tif:md5,6674132080cfabfc639be9c80ec9090f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0603.ome.tif:md5,419080c6ec0578bcde19a9f4360535b2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0604.ome.tif:md5,9314465994d55011eba9e1239c5b855c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0605.ome.tif:md5,dd044d2d61d337935b1c66b4286bc8bf", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0606.ome.tif:md5,f44e51b79aeca18e62e5284a4e74e244", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0607.ome.tif:md5,ea5e1bace16ea20be45fdb4562a5ad64", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0608.ome.tif:md5,f3cf28bf23ca3d2fb8611a80d2fcfe10", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0609.ome.tif:md5,cdb745f3ccfac5b309d22c08570deb24", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0610.ome.tif:md5,3dc41f65c22c81e6f5b12277c6b827fa", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0611.ome.tif:md5,28c4b3e6a9c93957da94fce9c4b949d1", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0612.ome.tif:md5,0070c463e9928492053bd1b88b617bdf", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0613.ome.tif:md5,a21b3c78191aaa5d78f51c6627041f72", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0614.ome.tif:md5,0a5f43af602e48341eb621a7dfc5c4f4", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0615.ome.tif:md5,d6f4ee9ef8a93cc6b977f3231840d8e8", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0616.ome.tif:md5,913744509efac629fbd14c648b30b2c1", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0617.ome.tif:md5,70db6c8f0dfb7607d8aada3ff813edc2", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0618.ome.tif:md5,38ab5e5448b69d7808e6fe1c888fdde5", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0619.ome.tif:md5,21f540d85c3395b11d2146a858088b1a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C00_xyz-Table Z0620.ome.tif:md5,4bb6c7de160539b3db5485fa6944109a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0600.ome.tif:md5,152931c5d09894e74e3216b62e6d1446", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0601.ome.tif:md5,c9af3b9a2044760bd5ad2ff912ad9076", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0602.ome.tif:md5,9afd8c433a4c12e9ffb2e7ef72d665f3", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0603.ome.tif:md5,0390cf7ce133f1b04946341973eeb29c", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0604.ome.tif:md5,114aa0fff83db1e693a73ac9a9e795c0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0605.ome.tif:md5,d801111f07bedfbb9508bfed1e5f8d0a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0606.ome.tif:md5,c4dcf031c9f33da4a1261324f212103a", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0607.ome.tif:md5,467f11413dbd56cd2e781003b3973e87", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0608.ome.tif:md5,89f163ab69b8a66bbc4bc9c17880cba0", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0609.ome.tif:md5,8d329fb7ca37b261bf419c114bcc3775", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0610.ome.tif:md5,486dad8db46e853eee60dccfc716b543", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0611.ome.tif:md5,3a4caf7fab942a5eb0a8666a86c4552e", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0612.ome.tif:md5,7781ff916dfae4f9b8093d04d2e5ddd6", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0613.ome.tif:md5,93269be5f9ba1e07b2ee253f9f9574d9", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0614.ome.tif:md5,013f6d3ea185745eb2e02c05f3418eaf", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0615.ome.tif:md5,c59a5b5dd08bf4acfa0f954e25c5419f", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0616.ome.tif:md5,9b122cba54fb3d8f2f3f7a9df7b9821b", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0617.ome.tif:md5,fa8f8bef57029e14c0eb6daf7bab2886", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0618.ome.tif:md5,d316f89e3752621cb93bf8de1f694000", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0619.ome.tif:md5,43d0386b21d9f6a36c209dc3ab60d1cc", - "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[03 x 03]_C01_xyz-Table Z0620.ome.tif:md5,b4f4be8e38b3b84dcd1a34a2b1968abc" - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-08-29T15:22:24.431992314" - } -} \ No newline at end of file diff --git a/tests/preprocess_stub.nf.test b/tests/preprocess_stub.nf.test deleted file mode 100644 index dba49e4..0000000 --- a/tests/preprocess_stub.nf.test +++ /dev/null @@ -1,36 +0,0 @@ -nextflow_pipeline { - - name "Test preprocess workflow stub" - script "../main.nf" - tag "stub" - - - - test("-profile test, stub") { - options "-stub" - - when { - params { - outdir = "$outputDir" - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/lsmquant/test_data/samplesheets/sample_sheet.csv' - } - } - - then { - def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) - def json_files = getAllFilesFromDir(params.outdir, include: ['**/*.json']) - assert workflow.success - assertAll( - { assert snapshot( - // Number of successful tasks - workflow.trace.succeeded().size(), - removeNextflowVersion("$outputDir/pipeline_info/nf_core_lsmquant_software_mqc_versions.yml"), - // All stable path name, with a relative path - stable_name.isEmpty() ? 'No stable paths' : stable_name - ).match()} - ) - } - - } - -} diff --git a/tests/preprocess_stub.nf.test.snap b/tests/preprocess_stub.nf.test.snap deleted file mode 100644 index ac8108f..0000000 --- a/tests/preprocess_stub.nf.test.snap +++ /dev/null @@ -1,72 +0,0 @@ -{ - "-profile test, stub": { - "content": [ - 7, - { - "MAT2JSON_INT": { - "mat2json": 1.0 - }, - "NUMORPHALIGN": { - "numorphalign": 1.0 - }, - "NUMORPHINTENSITY": { - "numorphintensity": 1.0 - }, - "NUMORPHSTITCH": { - "numorphstitch": 1.0 - }, - "UNZIP": { - "7za": 16.02 - }, - "Workflow": { - "nf-core/lsmquant": "v1.0dev" - } - }, - [ - "mat2json", - "mat2json/align", - "mat2json/align/TEST1.json", - "mat2json/intensity", - "mat2json/intensity/TEST1.json", - "mat2json/stitch", - "mat2json/stitch/TEST1.json", - "numorphalign", - "numorphalign/TEST1", - "numorphalign/TEST1/samples", - "numorphalign/TEST1/samples/alignment", - "numorphalign/TEST1/samples/alignment/TEST1_full.tif", - "numorphalign/TEST1/variables", - "numorphalign/TEST1/variables/alignment_table.mat", - "numorphalign/TEST1/variables/path_table.mat", - "numorphalign/TEST1/variables/z_displacement_align.mat", - "numorphintensity", - "numorphintensity/TEST1", - "numorphintensity/TEST1/samples", - "numorphintensity/TEST1/samples/intensity_adjustment", - "numorphintensity/TEST1/samples/intensity_adjustment/TEST1.png", - "numorphintensity/TEST1/variables", - "numorphintensity/TEST1/variables/adj_params.mat", - "numorphintensity/TEST1/variables/path_table.mat", - "numorphintensity/TEST1/variables/thresholds.mat", - "numorphstitch", - "numorphstitch/TEST1", - "numorphstitch/TEST1/stitched", - "numorphstitch/TEST1/stitched/TEST1_stitched.tif", - "numorphstitch/TEST1/variables", - "numorphstitch/TEST1/variables/adjusted_z.mat", - "numorphstitch/TEST1/variables/path_table.mat", - "numorphstitch/TEST1/variables/stitch_tforms.mat", - "numorphstitch/TEST1/variables/z_dips_matrix.mat", - "pipeline_info", - "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", - "unzip", - "unzip/TEST1" - ] - ], - "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" - }, - "timestamp": "2025-08-29T09:57:38.849984411" - } -} \ No newline at end of file From 2b2365788abef880c33f32401636a7d717aed915 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Mon, 1 Sep 2025 16:04:31 +0200 Subject: [PATCH 13/27] fix nf-test-gpu.yml --- .github/workflows/nf-test-gpu.yml | 2 +- conf/test.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nf-test-gpu.yml b/.github/workflows/nf-test-gpu.yml index 0226dd9..bd068c6 100644 --- a/.github/workflows/nf-test-gpu.yml +++ b/.github/workflows/nf-test-gpu.yml @@ -71,7 +71,7 @@ jobs: needs.get-shards.outputs.total_shards > 0 && ( github.event_name != 'push' || - ( github.event_name == 'push' && github.repository == 'nf-core/methylseq' ) + ( github.event_name == 'push' && github.repository == 'nf-core/lsmquant' ) ) strategy: fail-fast: false diff --git a/conf/test.config b/conf/test.config index cd7eab9..90a81be 100755 --- a/conf/test.config +++ b/conf/test.config @@ -20,7 +20,7 @@ process { withLabel: process_gpu { ext.use_gpu = true accelerator = 1 - // containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } + //containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } memory = { 15.GB * task.attempt } } } From 4c943b02585519d574d1c36b2b0077e3f61b0116 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Tue, 2 Sep 2025 17:13:15 +0200 Subject: [PATCH 14/27] update modules + container images --- modules/local/mat2json/main.nf | 2 +- modules/local/numorphregister/main.nf | 2 +- modules/local/numorphresample/main.nf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/mat2json/main.nf b/modules/local/mat2json/main.nf index d63de56..cdbd404 100644 --- a/modules/local/mat2json/main.nf +++ b/modules/local/mat2json/main.nf @@ -23,7 +23,7 @@ process MAT2JSON { """ mkdir -p ${process} for matfile in ${matfiles.join(' ')}; do - /usr/bin/mlrtapp/mat2json \$matfile + mat2json \$matfile done mv -f *.json ${process}/ 2>/dev/null || true diff --git a/modules/local/numorphregister/main.nf b/modules/local/numorphregister/main.nf index 4934870..c0fa5f6 100644 --- a/modules/local/numorphregister/main.nf +++ b/modules/local/numorphregister/main.nf @@ -34,7 +34,7 @@ process NUMORPHREGISTER { results="\$PWD/results" - /usr/bin/mlrtapp/numorph_analyze 'input_dir' \$PWD/$resampled_directory 'output_dir' \$PWD/results/ 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'register' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'resampled' + numorph_analyze 'input_dir' \$PWD/$resampled_directory 'output_dir' \$PWD/results/ 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'register' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'resampled' cat <<-END_VERSIONS > versions.yml diff --git a/modules/local/numorphresample/main.nf b/modules/local/numorphresample/main.nf index 91b79b3..eab2845 100644 --- a/modules/local/numorphresample/main.nf +++ b/modules/local/numorphresample/main.nf @@ -29,7 +29,7 @@ process NUMORPHRESAMPLE { results="\$PWD/results" - /usr/bin/mlrtapp/numorph_analyze 'input_dir' \$PWD/results/stitched 'output_dir' \$results 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'resample' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'stitched' + numorph_analyze 'input_dir' \$PWD/results/stitched 'output_dir' \$results 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'resample' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'stitched' cat <<-END_VERSIONS > versions.yml "${task.process}": From 8f8b5f1bb5c4cf9909dcecd68a3ba91941d153f1 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Wed, 3 Sep 2025 11:44:07 +0200 Subject: [PATCH 15/27] update nftignore, subworkflow(test) --- .../local/numorph_preprocessing/main.nf | 17 ++++- .../numorph_preprocessing/tests/.nftignore | 1 + .../tests/main.nf.test.snap | 71 +++++++------------ tests/.nftignore | 2 +- tests/default.nf.test.snap | 53 +++----------- 5 files changed, 51 insertions(+), 93 deletions(-) diff --git a/subworkflows/local/numorph_preprocessing/main.nf b/subworkflows/local/numorph_preprocessing/main.nf index 66e9412..b8b8456 100644 --- a/subworkflows/local/numorph_preprocessing/main.nf +++ b/subworkflows/local/numorph_preprocessing/main.nf @@ -5,6 +5,7 @@ include { NUMORPHSTITCH } from '../../../modules/local/nu include { MAT2JSON as MAT2JSON_INT } from '../../../modules/local/mat2json/' include { MAT2JSON as MAT2JSON_ALIGN } from '../../../modules/local/mat2json/' include { MAT2JSON as MAT2JSON_STITCH } from '../../../modules/local/mat2json/' +include { softwareVersionsToYAML } from '../../../subworkflows/nf-core/utils_nfcore_pipeline/' workflow NUMORPH_PREPROCESSING { @@ -78,10 +79,20 @@ workflow NUMORPH_PREPROCESSING { MAT2JSON_STITCH (mat_files_stitch, "stitch" ) ch_versions = ch_versions.mix(MAT2JSON_INT.out.versions) + // Collate and save software versions + // + softwareVersionsToYAML(ch_versions) + .collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_' + 'lsmquant_software_' + 'mqc_' + 'versions.yml', + sort: true, + newLine: true + ).set { ch_collated_versions } + emit: stitched = stitch_out.stitched // channel: [ path(stitched_dir) ] - intensity_thresholds = intensity_out.thresholds_mat // channel: [path(thresholds_mat) ] - NM_variables = stitch_out.NM_variables // channel: [path(NM_variables) ] - versions = ch_versions // channel: [ versions.yml ] + intensity_thresholds = intensity_out.thresholds_mat // channel: [path(thresholds_mat) ] + NM_variables = stitch_out.NM_variables // channel: [path(NM_variables) ] + versions = ch_collated_versions // channel: [ versions.yml ] } diff --git a/subworkflows/local/numorph_preprocessing/tests/.nftignore b/subworkflows/local/numorph_preprocessing/tests/.nftignore index 3ebeb10..3fbe502 100644 --- a/subworkflows/local/numorph_preprocessing/tests/.nftignore +++ b/subworkflows/local/numorph_preprocessing/tests/.nftignore @@ -18,3 +18,4 @@ numorphstitch/*/variables/*.mat numorph3dunet/* mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds, stitch_tforms}.json mat2json/*/*.csv +numorphstitch/*/stitched/*.{tif,tiff} diff --git a/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap b/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap index 7c2844d..80aadd1 100644 --- a/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap +++ b/subworkflows/local/numorph_preprocessing/tests/main.nf.test.snap @@ -2,7 +2,23 @@ "Numorph Preprocessing": { "content": [ 7, - null, + { + "MAT2JSON_INT": { + "mat2json": 1.0 + }, + "NUMORPHALIGN": { + "numorphalign": 1.0 + }, + "NUMORPHINTENSITY": { + "numorphintensity": 1.0 + }, + "NUMORPHSTITCH": { + "numorphstitch": 1.0 + }, + "Workflow": { + "nf-core/lsmquant": "v1.0dev" + } + }, [ "mat2json", "mat2json/align", @@ -105,6 +121,7 @@ "numorphstitch/TEST1/variables/z_disp_matrix.mat", "numorphstitch/TEST1/variables/z_displacement_align.mat", "pipeline_info", + "pipeline_info/nf_core_lsmquant_software_mqc_versions.yml", "unzip", "unzip/TEST1", "unzip/TEST1/ctip2_topro", @@ -284,57 +301,21 @@ "z_displacement_align.json:md5,0eb5dab0b44ab3c5ceaa8b053ec250e0", "TEST1_ctip2_full.tif:md5,fb17be9f66140c674dad1c0eba3b7a2e", "TEST1_topro_full.tif:md5,5e6784fc7062215bc6538ccccc49a5f4", - "z_displacement_align.mat:md5,3c5408fc956ac909d9f05897ae81c891", + "z_displacement_align.mat:md5,f45d3b73e985017dbfb7c7562bfe5fa4", "ctip2_1_1_11.tif:md5,fccec39adaa86a092dd7fca25b480234", "ctip2_1_2_11.tif:md5,f7eb54ccc7add77d02d5463ff7898356", "ctip2_2_1_11.tif:md5,684a579cc8df0800a11d2ff892c3938d", "ctip2_2_2_11.tif:md5,5f4305e1581ccd4651fd750669e3b69a", - "flatfield_1.png:md5,cabebe657f8d47f1f0268ed2b878e536", - "flatfield_2.png:md5,7946f0e6721852ae88e2a97031bef965", - "tile_adj_1.png:md5,fe7845aaa92cdf1d701096b78de93f8a", - "tile_adj_2.png:md5,06a3cb1c09c6a6dddd23fc536b5cc0af", + "flatfield_1.png:md5,97404fc8aac033969c1911224bf01c20", + "flatfield_2.png:md5,b21b01116bc523cf597915836bf2c42d", + "tile_adj_1.png:md5,b9e6c24c999f7ad9a0b012602b3f1b54", + "tile_adj_2.png:md5,8da66e606f181adf526ab8f1e6e87c50", "topro_1_1_11.tif:md5,733e3e7bc32916dfcbc73c9c77404d69", "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "y_adj_1.png:md5,86a6d9eda5b531b7c064ce49fbf93e66", - "y_adj_2.png:md5,acd862baaf892f48a985dc95ee2bb9f8", - "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", - "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", - "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", - "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", - "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", - "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", - "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", - "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", - "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", - "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", - "TEST1_0006_C1_topro_stitched.tif:md5,97b1952d5ae7ab10196a1fe02211db52", - "TEST1_0006_C2_ctip2_stitched.tif:md5,1e18a59e46c87ceec5e6b3e560bbfe59", - "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", - "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", - "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", - "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", - "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", - "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", - "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", - "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", - "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", - "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", - "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", - "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", - "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", - "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", - "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", - "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", - "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", - "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", - "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", - "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", - "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", - "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", - "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", - "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", + "y_adj_1.png:md5,d41cf27eb6e3206923ce86957d98802b", + "y_adj_2.png:md5,0d357328a855187c2dce2034834d61bd", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", @@ -509,6 +490,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-29T10:47:01.7906535" + "timestamp": "2025-09-03T11:10:04.792746217" } } \ No newline at end of file diff --git a/tests/.nftignore b/tests/.nftignore index a96bef9..0cbeb5d 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -19,4 +19,4 @@ numorphstitch/*/variables/*.mat numorph3dunet/*/* mat2json/*/{NM_variables,alignment_table,path_table,adj_params,thresholds,stitch_tforms}.json mat2json/*/*.csv -numorphstitch/*/stitched/TEST1_0006* +numorphstitch/*/stitched/*.{tif,tiff} diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 5dbfce8..6c4a8f1 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -6,9 +6,6 @@ "MAT2JSON_INT": { "mat2json": 1.0 }, - "NUMORPH3DUNET": { - "numorph3dunet": 1.0 - }, "NUMORPHALIGN": { "numorphalign": 1.0 }, @@ -18,6 +15,9 @@ "NUMORPHSTITCH": { "numorphstitch": 1.0 }, + "NUMORPH3DUNET": { + "numorph3dunet": 1.0 + }, "UNZIP": { "7za": 16.02 }, @@ -73,15 +73,14 @@ "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", "TEST1.json:md5,d41d8cd98f00b204e9800998ecf8427e", - "TEST1_full.tif:md5,d41d8cd98f00b204e9800998ecf8427e", - "TEST1_stitched.tif:md5,d41d8cd98f00b204e9800998ecf8427e" + "TEST1_full.tif:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "meta": { "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-09-01T13:52:09.520222007" + "timestamp": "2025-09-03T11:41:32.289727712" }, "default test gpu": { "content": [ @@ -90,9 +89,6 @@ "MAT2JSON_INT": { "mat2json": 1.0 }, - "NUMORPH3DUNET": { - "numorph3dunet": 1.0 - }, "NUMORPHALIGN": { "numorphalign": 1.0 }, @@ -102,6 +98,9 @@ "NUMORPHSTITCH": { "numorphstitch": 1.0 }, + "NUMORPH3DUNET": { + "numorph3dunet": 1.0 + }, "UNZIP": { "7za": 16.02 }, @@ -402,40 +401,6 @@ "topro_1_2_11.tif:md5,4652de23e14b9b3546c462d18a70e542", "topro_2_1_11.tif:md5,918562924baffc0b99976837ef4b5121", "topro_2_2_11.tif:md5,9f6a1c2b631a11cd675e96fd6e29c1b4", - "TEST1_0001_C1_topro_stitched.tif:md5,317719086b501e2ff598b6378b5000bc", - "TEST1_0001_C2_ctip2_stitched.tif:md5,1425cb6fb2329192c34dabc4cdeb608b", - "TEST1_0002_C1_topro_stitched.tif:md5,acd2b0c07253e62a51a2211835ee8af3", - "TEST1_0002_C2_ctip2_stitched.tif:md5,b7836b5a8128d5624370dcff2d856150", - "TEST1_0003_C1_topro_stitched.tif:md5,6933ba04253290df92563ca7325fb5bb", - "TEST1_0003_C2_ctip2_stitched.tif:md5,da0da4d07b03c84ab954b49c4452a43c", - "TEST1_0004_C1_topro_stitched.tif:md5,17380c9c3bd67ea205a8ad69d696f6c6", - "TEST1_0004_C2_ctip2_stitched.tif:md5,42231c67bff5d7051ad9db89deeb0b81", - "TEST1_0005_C1_topro_stitched.tif:md5,808ba7185dbfe7acfccf390c64a68df3", - "TEST1_0005_C2_ctip2_stitched.tif:md5,529c88a62de7cb8a294c61ee38e43701", - "TEST1_0007_C1_topro_stitched.tif:md5,7b0f423cdf9bc72519672ddf1a8c9ed2", - "TEST1_0007_C2_ctip2_stitched.tif:md5,28cb58d3ded0f479f71de60aee69108b", - "TEST1_0008_C1_topro_stitched.tif:md5,fc7b2560cc5f1ba4c335f8a1d7bbad07", - "TEST1_0008_C2_ctip2_stitched.tif:md5,f83338d7cc9ad0edf821740a3e099551", - "TEST1_0009_C1_topro_stitched.tif:md5,8577e1c25565d821454a649af56f26a5", - "TEST1_0009_C2_ctip2_stitched.tif:md5,732e3383f5fa11e268b8c06383962cd7", - "TEST1_0010_C1_topro_stitched.tif:md5,1d74b4614291da7c113ca8ccfc401d4f", - "TEST1_0010_C2_ctip2_stitched.tif:md5,4b221f6bdbea74f19a25a7d538706b22", - "TEST1_0011_C1_topro_stitched.tif:md5,878c9f781913909444e9b8c41b1b0d35", - "TEST1_0011_C2_ctip2_stitched.tif:md5,957f0006cdf0ae6042f48ff96f4047b8", - "TEST1_0012_C1_topro_stitched.tif:md5,d4b1f55d2d49d202073914104ca1c6a1", - "TEST1_0012_C2_ctip2_stitched.tif:md5,f822aef32fa1db9adbbfd77874e0677c", - "TEST1_0013_C1_topro_stitched.tif:md5,23f0b137845b4ab97bcadcc8e79a919f", - "TEST1_0013_C2_ctip2_stitched.tif:md5,80ff9f38cf9234528001774382f4517d", - "TEST1_0014_C1_topro_stitched.tif:md5,b9dee935166a2c5b397e26bfc2e1e84a", - "TEST1_0014_C2_ctip2_stitched.tif:md5,13e3b82bb65c1cd731624d523f2eef19", - "TEST1_0015_C1_topro_stitched.tif:md5,92f9c0faa413b03af76aa7927799b66f", - "TEST1_0015_C2_ctip2_stitched.tif:md5,609280edb271acc6820f0deefa0576f7", - "TEST1_0016_C1_topro_stitched.tif:md5,26e73500b59443cb94aa73c0c45f87c6", - "TEST1_0016_C2_ctip2_stitched.tif:md5,ae48a90a29a518e3cd121c91b8e4955c", - "TEST1_0017_C1_topro_stitched.tif:md5,6d9aa1739003ecb59900dad867a094b0", - "TEST1_0017_C2_ctip2_stitched.tif:md5,fb252141f1e9c3344c44acb97bf6b9f6", - "TEST1_0018_C1_topro_stitched.tif:md5,685c86092c751a15c7bc692af8ea9202", - "TEST1_0018_C2_ctip2_stitched.tif:md5,2c559e7593d692e1b399a9de4f83e250", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0600.ome.tif:md5,5bceac0b61030e08808592c7bf3e8db0", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0601.ome.tif:md5,da76c202e5baea80914bb2c0fb357aa3", "16-35-34_WT7R_ctip2_topro_2-5x_0-085NA_4z_UltraII[02 x 02]_C00_xyz-Table Z0602.ome.tif:md5,f940ea6590a93301006d990bb1149c49", @@ -610,6 +575,6 @@ "nf-test": "0.9.2", "nextflow": "25.04.6" }, - "timestamp": "2025-08-29T15:05:32.27113918" + "timestamp": "2025-09-03T11:39:01.448246884" } } \ No newline at end of file From f37b9bbabdc0e1bdfe3486dc1068d0e56fbebff1 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 4 Sep 2025 19:16:10 +0200 Subject: [PATCH 16/27] debug statements --- modules/local/numorph3dunet/main.nf | 6 ++++++ modules/local/numorph3dunet/tests/main.nf.test | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/local/numorph3dunet/main.nf b/modules/local/numorph3dunet/main.nf index c5a02ec..2b1c348 100644 --- a/modules/local/numorph3dunet/main.nf +++ b/modules/local/numorph3dunet/main.nf @@ -25,6 +25,12 @@ process NUMORPH3DUNET { source /opt/conda/etc/profile.d/conda.sh conda activate 3dunet + echo "GPU devices:" + ls -lha /dev/nvidia* || echo "No nvidia devices found" + echo "CUDA_VISIBLE_DEVICES: \$CUDA_VISIBLE_DEVICES" + echo "Checking GPU access:" + nvidia-smi || echo "No nvidia-smi found" + mkdir -p ./results mkdir -p ./images diff --git a/modules/local/numorph3dunet/tests/main.nf.test b/modules/local/numorph3dunet/tests/main.nf.test index 10d1e99..7370db5 100644 --- a/modules/local/numorph3dunet/tests/main.nf.test +++ b/modules/local/numorph3dunet/tests/main.nf.test @@ -8,7 +8,7 @@ nextflow_process { tag "modules_" tag "numorph3dunet" tag "gpu" - profile "docker,gpu" + //profile "docker,gpu" config './nextflow.config' From 7406876a90f4892bf426a16835ec2dfc3a0d1402 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 4 Sep 2025 19:28:54 +0200 Subject: [PATCH 17/27] profile gpu in test file --- modules/local/numorph3dunet/tests/main.nf.test | 2 +- tests/default.nf.test | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/local/numorph3dunet/tests/main.nf.test b/modules/local/numorph3dunet/tests/main.nf.test index 7370db5..3c3f70e 100644 --- a/modules/local/numorph3dunet/tests/main.nf.test +++ b/modules/local/numorph3dunet/tests/main.nf.test @@ -8,7 +8,7 @@ nextflow_process { tag "modules_" tag "numorph3dunet" tag "gpu" - //profile "docker,gpu" + profile "gpu" config './nextflow.config' diff --git a/tests/default.nf.test b/tests/default.nf.test index f920e00..1bf26e8 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,6 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" + profile 'gpu' test("default test gpu") { From 739331055bf0052c3e2da93b2a238d679686569a Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 4 Sep 2025 19:33:19 +0200 Subject: [PATCH 18/27] profile test,gpu in test file --- tests/default.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/default.nf.test b/tests/default.nf.test index 1bf26e8..13f5428 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,7 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" - profile 'gpu' + profile 'test,gpu' test("default test gpu") { From 70c77b5bb2a21f06fa965fdd89198b73ab1e44cb Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 4 Sep 2025 20:20:08 +0200 Subject: [PATCH 19/27] remove nextflow config in test --- modules/local/numorph3dunet/main.nf | 2 +- tests/default.nf.test | 2 +- tests/nextflow.config | 14 -------------- 3 files changed, 2 insertions(+), 16 deletions(-) delete mode 100644 tests/nextflow.config diff --git a/modules/local/numorph3dunet/main.nf b/modules/local/numorph3dunet/main.nf index 2b1c348..5c11e1f 100644 --- a/modules/local/numorph3dunet/main.nf +++ b/modules/local/numorph3dunet/main.nf @@ -27,7 +27,7 @@ process NUMORPH3DUNET { echo "GPU devices:" ls -lha /dev/nvidia* || echo "No nvidia devices found" - echo "CUDA_VISIBLE_DEVICES: \$CUDA_VISIBLE_DEVICES" + echo "Checking GPU access:" nvidia-smi || echo "No nvidia-smi found" diff --git a/tests/default.nf.test b/tests/default.nf.test index 13f5428..654069e 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,7 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" - profile 'test,gpu' + //profile 'test,gpu' test("default test gpu") { diff --git a/tests/nextflow.config b/tests/nextflow.config deleted file mode 100644 index 7370b5e..0000000 --- a/tests/nextflow.config +++ /dev/null @@ -1,14 +0,0 @@ -/* -======================================================================================== - Nextflow config file for running nf-test tests -======================================================================================== -*/ - -// TODO nf-core: Specify any additional parameters here -// Or any resources requirements -params { - modules_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/' - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/lsmquant' -} - -aws.client.anonymous = true // fixes S3 access issues on self-hosted runners From 669b9ace112a043d8b707f4c66af585df026a850 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 4 Sep 2025 20:29:40 +0200 Subject: [PATCH 20/27] config file --- tests/nextflow.config | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/nextflow.config diff --git a/tests/nextflow.config b/tests/nextflow.config new file mode 100644 index 0000000..b2bb1bf --- /dev/null +++ b/tests/nextflow.config @@ -0,0 +1,24 @@ +/* +======================================================================================== + Nextflow config file for running nf-test tests +======================================================================================== +*/ + +// TODO nf-core: Specify any additional parameters here +// Or any resources requirements +params { + modules_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/' + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/refs/heads/lsmquant' +} + +process { + withLabel: process_gpu { + ext.use_gpu = true + accelerator = 1 + memory = { 15.GB * task.attempt } + } +} + + + +aws.client.anonymous = true // fixes S3 access issues on self-hosted runners From 165b3c4a20c52eeb1752626e44f325a62e720564 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Fri, 5 Sep 2025 10:39:34 +0200 Subject: [PATCH 21/27] add gpu profile to test --- tests/default.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/default.nf.test b/tests/default.nf.test index 654069e..1bf26e8 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,7 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" - //profile 'test,gpu' + profile 'gpu' test("default test gpu") { From 4b41cb66c661d2428bc65b7ea298adab352e16df Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Fri, 5 Sep 2025 12:39:41 +0200 Subject: [PATCH 22/27] reset profiles in default test + add svg metromap +hirse promo badge --- README.md | 3 ++- docs/images/lsmquant-metromap.svg | 4 ++++ docs/images/lsmquant.png | Bin 116611 -> 0 bytes tests/default.nf.test | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 docs/images/lsmquant-metromap.svg delete mode 100644 docs/images/lsmquant.png diff --git a/README.md b/README.md index c753656..998cd5a 100755 --- a/README.md +++ b/README.md @@ -17,13 +17,14 @@ [![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/lsmquant) [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23lsmquant-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/lsmquant)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) +![HiRSE Code Promo Badge](https://img.shields.io/badge/Promo-8db427?style=plastic&label=HiRSE&labelColor=005aa0&link=https%3A%2F%2Fgo.fzj.de%2FCodePromo) ## Introduction **nf-core/lsmquant** is a bioinformatics pipeline that performs preprocessing and analysis of light-sheet microscopy images of tissue cleard samples. The pipeline takes 2D single-channel 16-bit `.tif` images as input. The preprocessing consists of intesity adjustment, channel alignemnt, and tile stitching to reconstruct the 3D image. For mousebrain samples it offers a regsitration to the Allen Mouse Brain Reference Atlas for precise region annotation. Cell nuclei quantification is perfomed on the nuclear channel by a 3D-Unet.
-lasmquant metromap +lasmquant metromap
### Basic workflow diff --git a/docs/images/lsmquant-metromap.svg b/docs/images/lsmquant-metromap.svg new file mode 100644 index 0000000..51d4014 --- /dev/null +++ b/docs/images/lsmquant-metromap.svg @@ -0,0 +1,4 @@ + + + +
Preprocessing workflow
Full workflow
Allen Atlas registration
Intensity
Adjustment
Channel
Alignment
Iterative
Stitching
Segmentation:
Nuclei Quantification

Resampling
ARA 
Registration
mat2json
mat2json
nii
nii
nii
json
resampled
image
Registration
parameters
moving
image
ref
image
tiff
tiff/png
json
intensity
parameters
QC images
mat2json
mat2json
mat2json
tiff
json
Alignment
parameters
aligned
images
tiff
Stitched
images
json
Stitching
parameters
csv
Cell count
table
diff --git a/docs/images/lsmquant.png b/docs/images/lsmquant.png deleted file mode 100644 index 0e87fc3eb4dfd76812729ad845c7bad7451540ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116611 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

vzpVYvkiR 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 W<7BgZ(dzr)KY5wU(%F)RKK}<)+}^7I diff --git a/tests/default.nf.test b/tests/default.nf.test index 1bf26e8..16ef236 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,7 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" - profile 'gpu' + test("default test gpu") { From 27f44f1705a40d0cbdeebf3ebde2bb05adb86ad5 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 11 Sep 2025 10:38:44 +0200 Subject: [PATCH 23/27] profile test in test script, deleted obsolete config test_gpu --- conf/test_gpu.config | 34 ---------------------------------- tests/default.nf.test | 1 + tests/nextflow.config | 2 -- 3 files changed, 1 insertion(+), 36 deletions(-) delete mode 100755 conf/test_gpu.config diff --git a/conf/test_gpu.config b/conf/test_gpu.config deleted file mode 100755 index a0d8b9a..0000000 --- a/conf/test_gpu.config +++ /dev/null @@ -1,34 +0,0 @@ -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Nextflow config file for running minimal tests -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Defines input files and everything required to run a fast and simple pipeline test. - - Use as follows: - nextflow run nf-core/lsmquant -profile test_gpu, --outdir - ----------------------------------------------------------------------------------------- -*/ - -process { - resourceLimits = [ - cpus: 4, - memory: '15.GB', - time: '1.h' - ] - - withLabel: process_gpu { - ext.use_gpu = true - accelerator = 1 - // containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } - memory = { 15.GB * task.attempt } - } -} - -params { - config_profile_name = 'Test profile GPU' - config_profile_description = 'Minimal test dataset to check pipeline function' - // Define the input data - input = params.pipelines_testdata_base_path + '/test_data/samplesheets/sample_sheet.csv' - stage = 'full' -} diff --git a/tests/default.nf.test b/tests/default.nf.test index 16ef236..292c7b7 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -4,6 +4,7 @@ nextflow_pipeline { script "../main.nf" tag "pipeline" tag "gpu" + profile "test" test("default test gpu") { diff --git a/tests/nextflow.config b/tests/nextflow.config index b2bb1bf..89ab0c9 100644 --- a/tests/nextflow.config +++ b/tests/nextflow.config @@ -19,6 +19,4 @@ process { } } - - aws.client.anonymous = true // fixes S3 access issues on self-hosted runners From 7fdbd45d4f4348da6f71f9eb1b93c390964b57f0 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 11 Sep 2025 10:39:58 +0200 Subject: [PATCH 24/27] lint --- ro-crate-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 8ffc012..9dffaa6 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -23,7 +23,7 @@ "@type": "Dataset", "creativeWorkStatus": "InProgress", "datePublished": "2025-07-08T11:38:54+00:00", - "description": "

\n \n \n \"nf-core/lsmquant\"\n \n

\n\n[![GitHub Actions CI Status](https://github.com/nf-core/lsmquant/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/lsmquant/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/lsmquant/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/lsmquant/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/lsmquant/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/lsmquant)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23lsmquant-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/lsmquant)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/lsmquant** is a bioinformatics pipeline that performs preprocessing and analysis of light-sheet microscopy images of tissue cleard samples. The pipeline takes 2D single-channel 16-bit `.tif` images as input. The preprocessing consists of intesity adjustment, channel alignemnt, and tile stitching to reconstruct the 3D image. For mousebrain samples it offers a regsitration to the Allen Mouse Brain Reference Atlas for precise region annotation. Cell nuclei quantification is perfomed on the nuclear channel by a 3D-Unet.\n\n
\n\"lasmquant\n
\n\n### Basic workflow\n\n**Preprocessing**\n\n1. Intensity Adjustment\n2. Channel Alignment\n3. Iterative Stitching\n\n**Analysis**\n\n4. ARA Registration subworkflow (optional)\n5. Cell Nuclei Quantification\n\n## Pipeline Summary\n\nThe pipeline consists of two major stages, the `preprocessing`stage and the `analysis`stage.\n\n### Preprocessing\n\nPreprocessing is performed on raw 2D single-channel 16-bit `.tif` images produced by a light sheet microscope. Three individual steps are perfomed :\n\n- Measuring and adjustemnts for intensities\n- Image channel alignemnt for at least two different channels\n- Image tile stitching to recustruct the full image for each channel and z-slice\n\n### Analysis\n\nAnalysis is performed using a 3D-Unet to qunatify the amount of cell-nuclei in the given sample. The quantification is performed on the nuclear channel only, assuming that the corresponding image file names contain the pattern `C1`.\n\nOptionally registration to the Allen Refernce Atlas (ARA) for functional brain region annotation can be perfomed before segmentation.\nThis includes the following two steps:\n\n- Downsampling of the high resolution stitched images\n- Registration to the ARA\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nTo run the pipeline you need to provide a samplesheet with your data in the following structure:\n\n`samplesheet.csv`\n\n```bash\nsample_id,img_directory,parameter_file\nTEST1,path/to/image-files,path/to/parameter/file.csv\n```\n\nThe parameter csv file includes sample specific parameters that are used for processing the given data.It needs to follow a specific structure.\n\nPlease get the basic tempalte file here ( include maybe link to template csv which can be found in the repo ?)\n`parametersheet.csv`\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/lsmquant \\\n -profile \\\n --input \\\n --outdir \\\n --stage \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/lsmquant/usage) and the [parameter documentation](https://nf-co.re/lsmquant/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/lsmquant/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/lsmquant/output).\n\n## Credits\n\nnf-core/lsmquant was originally written by Carolin Schwitalla.\n\nThe pipeline is mainly based on the NuMorph (Nuclear-Based Morphometry) toolbox developed by Krupa et al., 2021.\n\n> **NuMorph: Tools for cortical cellular phenotyping in tissue-cleared whole-brain images**\n>\n> Krupa O, Fragola G, Hadden-Ford E, Mory JT, Liu T, Humphrey Z, Rees BW, Krishnamurthy A, Snider WD, Zylka MJ, Wu G, Xing L, Stein JL.\n>\n> Cell Rep. 2021 Oct 12, doi: [10.1016/j.celrep.2021.109802](https://doi.org/10.1016%2Fj.celrep.2021.109802)\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#lsmquant` channel](https://nfcore.slack.com/channels/lsmquant) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "description": "

\n \n \n \"nf-core/lsmquant\"\n \n

\n\n[![GitHub Actions CI Status](https://github.com/nf-core/lsmquant/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/lsmquant/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/lsmquant/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/lsmquant/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/lsmquant/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/lsmquant)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23lsmquant-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/lsmquant)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n![HiRSE Code Promo Badge](https://img.shields.io/badge/Promo-8db427?style=plastic&label=HiRSE&labelColor=005aa0&link=https%3A%2F%2Fgo.fzj.de%2FCodePromo)\n\n## Introduction\n\n**nf-core/lsmquant** is a bioinformatics pipeline that performs preprocessing and analysis of light-sheet microscopy images of tissue cleard samples. The pipeline takes 2D single-channel 16-bit `.tif` images as input. The preprocessing consists of intesity adjustment, channel alignemnt, and tile stitching to reconstruct the 3D image. For mousebrain samples it offers a regsitration to the Allen Mouse Brain Reference Atlas for precise region annotation. Cell nuclei quantification is perfomed on the nuclear channel by a 3D-Unet.\n\n
\n\"lasmquant\n
\n\n### Basic workflow\n\n**Preprocessing**\n\n1. Intensity Adjustment\n2. Channel Alignment\n3. Iterative Stitching\n\n**Analysis**\n\n4. ARA Registration subworkflow (optional)\n5. Cell Nuclei Quantification\n\n## Pipeline Summary\n\nThe pipeline consists of two major stages, the `preprocessing`stage and the `analysis`stage.\n\n### Preprocessing\n\nPreprocessing is performed on raw 2D single-channel 16-bit `.tif` images produced by a light sheet microscope. Three individual steps are perfomed :\n\n- Measuring and adjustemnts for intensities\n- Image channel alignemnt for at least two different channels\n- Image tile stitching to recustruct the full image for each channel and z-slice\n\n### Analysis\n\nAnalysis is performed using a 3D-Unet to qunatify the amount of cell-nuclei in the given sample. The quantification is performed on the nuclear channel only, assuming that the corresponding image file names contain the pattern `C1`.\n\nOptionally registration to the Allen Refernce Atlas (ARA) for functional brain region annotation can be perfomed before segmentation.\nThis includes the following two steps:\n\n- Downsampling of the high resolution stitched images\n- Registration to the ARA\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data.\n\nTo run the pipeline you need to provide a samplesheet with your data in the following structure:\n\n`samplesheet.csv`\n\n```bash\nsample_id,img_directory,parameter_file\nTEST1,path/to/image-files,path/to/parameter/file.csv\n```\n\nThe parameter csv file includes sample specific parameters that are used for processing the given data.It needs to follow a specific structure.\n\nPlease get the basic tempalte file here ( include maybe link to template csv which can be found in the repo ?)\n`parametersheet.csv`\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/lsmquant \\\n -profile \\\n --input \\\n --outdir \\\n --stage \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/lsmquant/usage) and the [parameter documentation](https://nf-co.re/lsmquant/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/lsmquant/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/lsmquant/output).\n\n## Credits\n\nnf-core/lsmquant was originally written by Carolin Schwitalla.\n\nThe pipeline is mainly based on the NuMorph (Nuclear-Based Morphometry) toolbox developed by Krupa et al., 2021.\n\n> **NuMorph: Tools for cortical cellular phenotyping in tissue-cleared whole-brain images**\n>\n> Krupa O, Fragola G, Hadden-Ford E, Mory JT, Liu T, Humphrey Z, Rees BW, Krishnamurthy A, Snider WD, Zylka MJ, Wu G, Xing L, Stein JL.\n>\n> Cell Rep. 2021 Oct 12, doi: [10.1016/j.celrep.2021.109802](https://doi.org/10.1016%2Fj.celrep.2021.109802)\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#lsmquant` channel](https://nfcore.slack.com/channels/lsmquant) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" From 61f7e6d9e6c563c5971965792a71b04ca5ab64a1 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 11 Sep 2025 14:27:25 +0200 Subject: [PATCH 25/27] add nextflow debug var and get conatiner launch information... --- .github/workflows/nf-test-gpu.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/nf-test-gpu.yml b/.github/workflows/nf-test-gpu.yml index bd068c6..c8a29c1 100644 --- a/.github/workflows/nf-test-gpu.yml +++ b/.github/workflows/nf-test-gpu.yml @@ -88,6 +88,13 @@ jobs: with: fetch-depth: 0 + - name: Test CUDA + run: | + nvidia-smi -L + + - name: Enable Nextflow debug logging + run: echo "NXF_DEBUG=2" >> $GITHUB_ENV + - name: Run nf-test Action uses: ./.github/actions/nf-test with: @@ -97,6 +104,10 @@ jobs: filters: ${{ matrix.filters }} tags: "gpu" + - name: Show Singularity run commands + run: | + grep "singularity exec" .nextflow.log || echo "No singularity exec found" + confirm-pass: runs-on: - runs-on=${{ github.run_id }}-confirm-pass From afd820f883c96dfc1edf0240ddce2c394855b222 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Thu, 11 Sep 2025 14:59:13 +0200 Subject: [PATCH 26/27] find nextflow log on ci --- .github/workflows/nf-test-gpu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nf-test-gpu.yml b/.github/workflows/nf-test-gpu.yml index c8a29c1..8b9d2ba 100644 --- a/.github/workflows/nf-test-gpu.yml +++ b/.github/workflows/nf-test-gpu.yml @@ -106,7 +106,7 @@ jobs: - name: Show Singularity run commands run: | - grep "singularity exec" .nextflow.log || echo "No singularity exec found" + find . -name ".nextflow.log" -exec grep "singularity exec" {} + || echo "No singularity exec found" confirm-pass: runs-on: From 4159eeb3ec528b4d629ed2de1b5737e819789439 Mon Sep 17 00:00:00 2001 From: CaroAMN Date: Mon, 22 Sep 2025 17:02:13 +0200 Subject: [PATCH 27/27] removed pwd + resolved symlinks for registration and resampling modules + removed unused container options in test.config --- conf/test.config | 1 - modules/local/numorphregister/main.nf | 8 ++++++-- modules/local/numorphresample/main.nf | 12 ++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/conf/test.config b/conf/test.config index 90a81be..ae77f99 100755 --- a/conf/test.config +++ b/conf/test.config @@ -20,7 +20,6 @@ process { withLabel: process_gpu { ext.use_gpu = true accelerator = 1 - //containerOptions = { workflow.containerEngine == 'docker' ? '--gpus all' : '--nv' } memory = { 15.GB * task.attempt } } } diff --git a/modules/local/numorphregister/main.nf b/modules/local/numorphregister/main.nf index c0fa5f6..48fcdbd 100644 --- a/modules/local/numorphregister/main.nf +++ b/modules/local/numorphregister/main.nf @@ -32,9 +32,13 @@ process NUMORPHREGISTER { mv $resampled_directory \$PWD/results/resampled - results="\$PWD/results" + #resolve symlinks and paths + resampled_directory=\$(readlink -f ./results/resampled/) + parameter_file=\$(readlink -f ${parameter_file}) + NM_variables=\$(readlink -f ${NM_variables}) + results_dir=\$(readlink -f ./results) - numorph_analyze 'input_dir' \$PWD/$resampled_directory 'output_dir' \$PWD/results/ 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'register' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'resampled' + numorph_analyze 'input_dir' \$resampled_directory 'output_dir' \$results_dir 'parameter_file' \$parameter_file 'sample_name' ${meta.id} 'stage' 'register' 'NM_variables' \$NM_variables 'use_processed_images' 'resampled' cat <<-END_VERSIONS > versions.yml diff --git a/modules/local/numorphresample/main.nf b/modules/local/numorphresample/main.nf index eab2845..ec6c3fe 100644 --- a/modules/local/numorphresample/main.nf +++ b/modules/local/numorphresample/main.nf @@ -23,13 +23,17 @@ process NUMORPHRESAMPLE { def nm_variables = NM_variables ? "${NM_variables}" : "" """ - mkdir -p \$PWD/results/stitched/ + mkdir -p results/stitched/ - mv $stitch_directory \$PWD/results/stitched + mv $stitch_directory results/stitched - results="\$PWD/results" + # resolve symlinks and paths + stitch_directory=\$(readlink -f ./results/stitched/) + parameter_file=\$(readlink -f ${parameter_file}) + NM_variables=\$(readlink -f ${NM_variables}) + results_dir=\$(readlink -f ./results) - numorph_analyze 'input_dir' \$PWD/results/stitched 'output_dir' \$results 'parameter_file' $parameter_file 'sample_name' $meta.id 'stage' 'resample' 'NM_variables' \$PWD/$nm_variables 'use_processed_images' 'stitched' + numorph_analyze 'input_dir' \$stitch_directory 'output_dir' \$results_dir 'parameter_file' \$parameter_file 'sample_name' ${meta.id} 'stage' 'resample' 'NM_variables' \$NM_variables 'use_processed_images' 'stitched' cat <<-END_VERSIONS > versions.yml "${task.process}":