From 95321c8caec3343f3d167a9d427bc0be55fee6a4 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Mon, 20 Oct 2025 17:22:06 +0200 Subject: [PATCH 01/18] implementation of spaceranger --- assets/samplesheet_test.csv | 6 +- assets/schema_input.json | 42 ++++ conf/modules.config | 43 ++++ conf/test.config | 8 +- main.nf | 4 +- modules.json | 10 + modules/nf-core/spaceranger/count/main.nf | 76 ++++++ modules/nf-core/spaceranger/count/meta.yml | 119 +++++++++ .../spaceranger/count/tests/main.nf.test | 228 ++++++++++++++++++ .../spaceranger/count/tests/main.nf.test.snap | 90 +++++++ .../spaceranger/count/tests/nextflow.config | 5 + modules/nf-core/spaceranger/mkgtf/main.nf | 51 ++++ modules/nf-core/spaceranger/mkgtf/meta.yml | 47 ++++ .../spaceranger/mkgtf/tests/main.nf.test | 59 +++++ .../spaceranger/mkgtf/tests/main.nf.test.snap | 29 +++ subworkflows/local/prepare_ref/main.nf | 28 ++- workflows/spatialomics.nf | 29 ++- 17 files changed, 862 insertions(+), 12 deletions(-) create mode 100644 modules/nf-core/spaceranger/count/main.nf create mode 100644 modules/nf-core/spaceranger/count/meta.yml create mode 100644 modules/nf-core/spaceranger/count/tests/main.nf.test create mode 100644 modules/nf-core/spaceranger/count/tests/main.nf.test.snap create mode 100644 modules/nf-core/spaceranger/count/tests/nextflow.config create mode 100644 modules/nf-core/spaceranger/mkgtf/main.nf create mode 100644 modules/nf-core/spaceranger/mkgtf/meta.yml create mode 100644 modules/nf-core/spaceranger/mkgtf/tests/main.nf.test create mode 100644 modules/nf-core/spaceranger/mkgtf/tests/main.nf.test.snap diff --git a/assets/samplesheet_test.csv b/assets/samplesheet_test.csv index 6c5eb8a..4aa0b09 100644 --- a/assets/samplesheet_test.csv +++ b/assets/samplesheet_test.csv @@ -1,3 +1,3 @@ -sample,fastq_1,fastq_2 -Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R2_001.fastq.gz -Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R2_001.fastq.gz +sample,fastq_1,fastq_2,image,cytaimage,slide,area,darkimage,colorizedimage,manual_alignment,slidefile +Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,,, +Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,,, diff --git a/assets/schema_input.json b/assets/schema_input.json index 4df003e..83ae24a 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -26,6 +26,48 @@ "exists": true, "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + }, + "image": { + "type": "string", + "format": "file-path", + "exists": true, + "meta": ["image"] + }, + "cytaimage": { + "type": "string", + "format": "file-path", + "exists": true, + "meta": ["cytaimage"] + }, + "slide": { + "type": "string", + "meta": ["slide"] + }, + "area": { + "type": "string", + "meta": ["area"] + }, + "darkimage": { + "type": "string", + "format": "file-path", + "exists": true, + "meta": ["darkimage"] + }, + "colorizedimage": { + "type": "string", + "format": "file-path", + "exists": true, + "meta": ["colorizedimage"] + }, + "manual_alignment": { + "type": "string", + "meta": ["alignment"] + }, + "slidefile": { + "type": "string", + "format": "file-path", + "exists": true, + "meta": ["slidefile"] } }, "required": ["sample", "fastq_1"] diff --git a/conf/modules.config b/conf/modules.config index d203d2b..97c2546 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -22,6 +22,49 @@ process { ext.args = '--quiet' } + withName: SPACERANGER_MKGTF { + publishDir = [ + path: "${params.outdir}/reference/mkgtf", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + ext.args = "--attribute=gene_biotype:protein_coding \ + --attribute=gene_biotype:lincRNA \ + --attribute=gene_biotype:antisense \ + --attribute=gene_biotype:IG_LV_gene \ + --attribute=gene_biotype:IG_V_gene \ + --attribute=gene_biotype:IG_V_pseudogene \ + --attribute=gene_biotype:IG_D_gene \ + --attribute=gene_biotype:IG_J_gene \ + --attribute=gene_biotype:IG_J_pseudogene \ + --attribute=gene_biotype:IG_C_gene \ + --attribute=gene_biotype:IG_C_pseudogene \ + --attribute=gene_biotype:TR_V_gene \ + --attribute=gene_biotype:TR_V_pseudogene \ + --attribute=gene_biotype:TR_D_gene \ + --attribute=gene_biotype:TR_J_gene \ + --attribute=gene_biotype:TR_J_pseudogene \ + --attribute=gene_biotype:TR_C_gene" + } + + withName: SPACERANGER_MKREF { + publishDir = [ + path: "${params.outdir}/reference/mkref", + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: SPACERANGER_COUNT { + publishDir = [ + path: { "${params.outdir}/${meta.id}/count" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + ext.args = "--create-bam false" + time = { 240.h * task.attempt } + } + withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/conf/test.config b/conf/test.config index 989bf3a..82c4d57 100644 --- a/conf/test.config +++ b/conf/test.config @@ -23,7 +23,9 @@ params { config_profile_description = 'Minimal test dataset to check pipeline function' // Input and output - input = "${projectDir}/assets/samplesheet_test.csv" - fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/references/references/GRCh38_chr21/GRCh38_chr21.fa" - gtf = "https://raw.githubusercontent.com/nf-core/test-datasets/references/references/GRCh38_chr21/GRCh38_chr21.gtf" + input = "${projectDir}/assets/samplesheet_test.csv" + probeset = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_probe_set.csv" + spaceranger_index = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/GRCh38.tar.gz" + + } diff --git a/main.nf b/main.nf index 3cdb747..0624405 100644 --- a/main.nf +++ b/main.nf @@ -49,6 +49,7 @@ workflow NFDATAOMICS_SPATIALOMICS { ch_gtf = params.gtf ? Channel.value(file(params.gtf, checkIfExists: true)) : Channel.empty() ch_gff = params.gff ? Channel.value(file(params.gff, checkIfExists: true)) : Channel.empty() ch_spaceranger_index = params.spaceranger_index ? Channel.value(file(params.spaceranger_index, checkIfExists: true)) : Channel.empty() + ch_probeset = params.probeset ? Channel.value(file(params.probeset, checkIfExists: true)) : Channel.empty() // // WORKFLOW: Run pipeline @@ -58,7 +59,8 @@ workflow NFDATAOMICS_SPATIALOMICS { ch_fasta, ch_gtf, ch_gff, - ch_spaceranger_index + ch_spaceranger_index, + ch_probeset ) emit: multiqc_report = SPATIALOMICS.out.multiqc_report // channel: /path/to/multiqc_report.html diff --git a/modules.json b/modules.json index 75fb70b..dbc41c1 100644 --- a/modules.json +++ b/modules.json @@ -35,6 +35,16 @@ "git_sha": "e10b76ca0c66213581bec2833e30d31f239dec0b", "installed_by": ["modules"] }, + "spaceranger/count": { + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": ["modules"] + }, + "spaceranger/mkgtf": { + "branch": "master", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "installed_by": ["modules"] + }, "spaceranger/mkref": { "branch": "master", "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", diff --git a/modules/nf-core/spaceranger/count/main.nf b/modules/nf-core/spaceranger/count/main.nf new file mode 100644 index 0000000..2436210 --- /dev/null +++ b/modules/nf-core/spaceranger/count/main.nf @@ -0,0 +1,76 @@ +process SPACERANGER_COUNT { + tag "$meta.id" + label 'process_high' + + container "nf-core/spaceranger:3.1.3" + + input: + tuple val(meta), path("fastqs/${meta.id}_S1_L001_R?_001.fastq.gz") + tuple val(meta2), path(image), val(slide), val(area), path(cytaimage), path(darkimage), path(colorizedimage), path(alignment), path(slidefile) + path(reference) + path(probeset) + + output: + tuple val(meta), path("outs/**"), emit: outs + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "SPACERANGER_COUNT module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // Add flags for optional inputs on demand. + def probeset = probeset ? "--probe-set=\"${probeset}\"" : "" + def alignment = alignment ? "--loupe-alignment=\"${alignment}\"" : "" + def slidefile = slidefile ? "--slidefile=\"${slidefile}\"" : "" + def image = image ? "--image=\"${image}\"" : "" + def cytaimage = cytaimage ? "--cytaimage=\"${cytaimage}\"" : "" + def darkimage = darkimage ? "--darkimage=\"${darkimage}\"" : "" + def colorizedimage = colorizedimage ? "--colorizedimage=\"${colorizedimage}\"" : "" + if (slide.matches("visium-(.*)") && area == "" && slidefile == "") { + slide_and_area = "--unknown-slide=\"${slide}\"" + } else { + slide_and_area = "--slide=\"${slide}\" --area=\"${area}\"" + } + """ + spaceranger count \\ + --id="${prefix}" \\ + --sample="${meta.id}" \\ + --fastqs=fastqs \\ + --transcriptome="${reference}" \\ + --localcores=${task.cpus} \\ + --localmem=${task.memory.toGiga()} \\ + $image $cytaimage $darkimage $colorizedimage \\ + $slide_and_area \\ + $probeset \\ + $alignment \\ + $slidefile \\ + $args + mv ${prefix}/outs outs + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spaceranger: \$(spaceranger -V | sed -e "s/spaceranger spaceranger-//g") + END_VERSIONS + """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "SPACERANGER_COUNT module does not support Conda. Please use Docker / Singularity / Podman instead." + } + """ + mkdir -p outs/ + touch outs/fake_file.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spaceranger: \$(spaceranger -V | sed -e "s/spaceranger spaceranger-//g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/spaceranger/count/meta.yml b/modules/nf-core/spaceranger/count/meta.yml new file mode 100644 index 0000000..cf6efb5 --- /dev/null +++ b/modules/nf-core/spaceranger/count/meta.yml @@ -0,0 +1,119 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "spaceranger_count" +description: Module to use the 10x Space Ranger pipeline to process 10x spatial transcriptomics + data +keywords: + - align + - count + - spatial + - spaceranger + - imaging +tools: + - "spaceranger": + description: | + Visium Spatial Gene Expression is a next-generation molecular profiling solution for classifying tissue + based on total mRNA. Space Ranger is a set of analysis pipelines that process Visium Spatial Gene Expression + data with brightfield and fluorescence microscope images. Space Ranger allows users to map the whole + transcriptome in formalin fixed paraffin embedded (FFPE) and fresh frozen tissues to discover novel + insights into normal development, disease pathology, and clinical translational research. Space Ranger provides + pipelines for end to end analysis of Visium Spatial Gene Expression experiments. + homepage: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + documentation: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + tool_dev_url: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + licence: + - "10x Genomics EULA" + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', slide:'10L13-020', area: 'B1'] + + `id`, `slide` and `area` are mandatory information! + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + pattern: "${Sample_Name}_S1_L00${Lane_Number}_${I1,I2,R1,R2}_001.fastq.gz" + ontologies: [] + - image: + type: file + description: Brightfield tissue H&E image in JPEG or TIFF format. + pattern: "*.{tif,tiff,jpg,jpeg}" + ontologies: [] + - slide: + type: string + description: Visium slide ID used for the sample. + - area: + type: string + description: Visium slide capture area used for the sample. + - cytaimage: + type: file + description: | + CytAssist instrument captured eosin stained Brightfield tissue image with fiducial + frame in TIFF format. The size of this image is set at 3k in both dimensions and this image should + not be modified any way before passing it as input to either Space Ranger or Loupe Browser. + pattern: "*.{tif,tiff}" + ontologies: [] + - darkimage: + type: file + description: | + Optional for dark background fluorescence microscope image input. Multi-channel, dark-background fluorescence + image as either a single, multi-layer TIFF file or as multiple TIFF or JPEG files. + pattern: "*.{tif,tiff,jpg,jpeg}" + ontologies: [] + - colorizedimage: + type: file + description: | + Required for color composite fluorescence microscope image input. + A color composite of one or more fluorescence image channels saved as a single-page, + single-file color TIFF or JPEG. + pattern: "*.{tif,tiff,jpg,jpeg}" + ontologies: [] + - alignment: + type: file + description: OPTIONAL - Path to manual image alignment. + pattern: "*.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON + - slidefile: + type: file + description: OPTIONAL - Path to slide specifications. + pattern: "*.json" + ontologies: + - edam: http://edamontology.org/format_3464 # JSON + - reference: + type: directory + description: Folder containing all the reference indices needed by Space Ranger + - probeset: + type: file + description: OPTIONAL - Probe set specification. + pattern: "*.csv" + ontologies: + - edam: http://edamontology.org/format_3752 # CSV +output: + outs: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - outs/**: + type: file + description: Files containing the outputs of Space Ranger, see official 10X + Genomics documentation for a complete list + pattern: "outs/*" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML +authors: + - "@grst" +maintainers: + - "@grst" diff --git a/modules/nf-core/spaceranger/count/tests/main.nf.test b/modules/nf-core/spaceranger/count/tests/main.nf.test new file mode 100644 index 0000000..3d65e68 --- /dev/null +++ b/modules/nf-core/spaceranger/count/tests/main.nf.test @@ -0,0 +1,228 @@ +nextflow_process { + + name "Test Process SPACERANGER_COUNT" + script "../main.nf" + config "./nextflow.config" + process "SPACERANGER_COUNT" + + tag "modules" + tag "modules_nfcore" + tag "spaceranger" + tag "spaceranger/count" + tag "spaceranger/mkgtf" + tag "spaceranger/mkref" + + test("spaceranger v1 - homo_sapiens - fasta - gtf - fastq - tif - csv") { + + setup { + run("SPACERANGER_MKGTF") { + script "../../mkgtf/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + """ + } + } + } + + setup { + run("SPACERANGER_MKREF") { + script "../../mkref/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + input[2] = 'homo_sapiens_chr22_reference' + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ + id: 'Visium_FFPE_Human_Ovarian_Cancer' + ], // Meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R2_001.fastq.gz', checkIfExists: true) + ], // Reads + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_image.jpg', checkIfExists: true), // Image + 'V10L13-020', // Slide + 'D1', // Area + [], // Cytaimage + [], // Darkimage + [], // Colorizedimage + [], // Manual alignment (default: automatic alignment) + [], // Slide specification (default: automatic download) + ] + input[1] = SPACERANGER_MKREF.out.reference // Reference + input[2] = [] // Probeset (default: use the one included with Space Ranger) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.versions, + process.out.outs.get(0).get(1).findAll { file(it).name !in [ + 'web_summary.html', + 'scalefactors_json.json', + 'barcodes.tsv.gz', + 'features.tsv.gz', + 'matrix.mtx.gz' + ]} + ).match() + }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'web_summary.html' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'scalefactors_json.json' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'barcodes.tsv.gz' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'features.tsv.gz' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'matrix.mtx.gz' }).exists() } + ) + } + } + + test("spaceranger v1 (stub) - homo_sapiens - fasta - gtf - fastq - tif - csv") { + + setup { + run("SPACERANGER_MKGTF") { + script "../../mkgtf/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + """ + } + } + } + + setup { + run("SPACERANGER_MKREF") { + script "../../mkref/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + input[2] = 'homo_sapiens_chr22_reference' + """ + } + } + } + + options "-stub" + + when { + process { + """ + input[0] = [ + [ + id: 'Visium_FFPE_Human_Ovarian_Cancer' + ], // Meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R2_001.fastq.gz', checkIfExists: true) + ], // Reads + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_image.jpg', checkIfExists: true), // Image + 'V10L13-020', // Slide + 'D1', // Area + [], // Cytaimage + [], // Darkimage + [], // Colorizedimage + [], // Manual alignment (default: automatic alignment) + [], // Slide specification (default: automatic download) + ] + input[1] = SPACERANGER_MKREF.out.reference // Reference + input[2] = [] // Probeset (default: use the one included with Space Ranger) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.versions).match() }, + ) + } + } + + test("spaceranger v2 - homo_sapiens - fasta - gtf - fastq - tif - csv") { + setup { + run("SPACERANGER_MKGTF") { + script "../../mkgtf/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + """ + } + } + } + + setup { + run("SPACERANGER_MKREF") { + script "../../mkref/main.nf" + process { + """ + input[0] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + input[1] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + input[2] = 'homo_sapiens_chr22_reference' + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ + id: 'CytAssist_11mm_FFPE_Human_Glioblastoma_2' + ], // Meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_2_S1_L001_R1_001.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_2_S1_L001_R2_001.fastq.gz', checkIfExists: true) + ], // Reads + [], // Image + 'V52Y10-317', // Slide + 'B1', // Area + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_image.tif', checkIfExists: true), // Cytaimage + [], // Darkimage + [], // Colorizedimage + [], // Manual alignment (default: automatic alignment) + file('https://s3.us-west-2.amazonaws.com/10x.spatial-slides/gpr/V52Y10/V52Y10-317.gpr') // Slide specification (default: automatic download) + ] + input[1] = SPACERANGER_MKREF.out.reference // Reference + input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_probe_set.csv', checkIfExists: true) // Probeset (default: use the one included with Space Ranger) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.versions, + process.out.outs.get(0).get(1).findAll { file(it).name !in [ + 'web_summary.html', + 'scalefactors_json.json', + 'molecule_info.h5', + 'barcodes.tsv.gz', + 'features.tsv.gz', + 'matrix.mtx.gz', + 'cloupe.cloupe' + ]} + ).match() + }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'web_summary.html' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'scalefactors_json.json' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'molecule_info.h5' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'barcodes.tsv.gz' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'features.tsv.gz' }).exists() }, + { assert file(process.out.outs.get(0).get(1).find { file(it).name == 'matrix.mtx.gz' }).exists() } + ) + } + } +} \ No newline at end of file diff --git a/modules/nf-core/spaceranger/count/tests/main.nf.test.snap b/modules/nf-core/spaceranger/count/tests/main.nf.test.snap new file mode 100644 index 0000000..dbfaadf --- /dev/null +++ b/modules/nf-core/spaceranger/count/tests/main.nf.test.snap @@ -0,0 +1,90 @@ +{ + "spaceranger v1 (stub) - homo_sapiens - fasta - gtf - fastq - tif - csv": { + "content": [ + [ + "versions.yml:md5,4abe169f33d7f99d5d9876b189060aae" + ] + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.4" + }, + "timestamp": "2025-02-13T09:02:47.710975472" + }, + "spaceranger v2 - homo_sapiens - fasta - gtf - fastq - tif - csv": { + "content": [ + [ + "versions.yml:md5,4abe169f33d7f99d5d9876b189060aae" + ], + [ + "clusters.csv:md5,221a4554e62ea94b0df8dbf637d2c13c", + "clusters.csv:md5,53ee76645943b5562392aac51d2d9f3f", + "clusters.csv:md5,b791359469683ad19cdb8d1af3de5705", + "clusters.csv:md5,9a4f9148e0e834c1127bf8393ece6330", + "clusters.csv:md5,c11bcc64f870469ab2f136d9272a7a6d", + "clusters.csv:md5,488846bbb469365e199928c7a440320a", + "clusters.csv:md5,5941f7e847d35a4f06d3631e21d2eb9d", + "clusters.csv:md5,d244d405c32766339d2b7a3fa8bf8cee", + "clusters.csv:md5,981386408cd953548994c31253e787de", + "clusters.csv:md5,24c4f13449e5362fcbcd41b9ff413992", + "differential_expression.csv:md5,589c1bd4529f092bb1d332e7da561dad", + "differential_expression.csv:md5,d9d978b398b33ac9687b44531909e0cd", + "differential_expression.csv:md5,4edbc893280f9d03c3de00a503e86f8c", + "differential_expression.csv:md5,316181d501c495384016227309856b09", + "differential_expression.csv:md5,dae49941396609fb08df13b82fe89151", + "differential_expression.csv:md5,4a13ae44c8454dbcb0298eb63df8b8e8", + "differential_expression.csv:md5,eeb02c4afe1f49d5502fb024b25b2c38", + "differential_expression.csv:md5,9a456828fe5d762e6e07383da5c2791d", + "differential_expression.csv:md5,bcbd1504976824e9f4d20a8dd36e2a1f", + "differential_expression.csv:md5,3ad93fc4d52950cfede885dc58cd2823", + "components.csv:md5,811a32dce6c795e958dc4bc635ee53be", + "dispersion.csv:md5,64c2e57ef0ca9a80cce8b952c81b62f5", + "features_selected.csv:md5,bd0c0a20b0b0009df796e8a755d028c1", + "projection.csv:md5,e530c925a185965514fa82f4da83fa81", + "variance.csv:md5,4159711ab5d64e97737fad9d75d945b3", + "projection.csv:md5,ce729f7e237df4570ac3e4a79251df24", + "projection.csv:md5,fa7bdefa8424b233fe6461129ab76d57", + "filtered_feature_bc_matrix.h5:md5,704256e5150522d9cf2e75e7e47221b6", + "metrics_summary.csv:md5,5ece84f5f8e08839749b1c8f2bff6701", + "probe_set.csv:md5,5bfb8f12319be1b2b6c14142537c3804", + "raw_feature_bc_matrix.h5:md5,ac24486662643ea68562c1a51cbbb2bd", + "raw_probe_bc_matrix.h5:md5,8ab08437814506f98e3f10107cfc38ac", + "aligned_fiducials.jpg:md5,51dcc3a32d3d5ca4704f664c8ede81ef", + "cytassist_image.tiff:md5,0fb04a55e5658f4d158d986a334b034d", + "detected_tissue_image.jpg:md5,11c9fa90913b5c6e93cecdb8f53d58db", + "spatial_enrichment.csv:md5,4379bc4fef891b45ff9264ee8c408bd0", + "tissue_hires_image.png:md5,834706fff299024fab48e6366afc9cb9", + "tissue_lowres_image.png:md5,8c1fcb378f7f886301f49ffc4f84360a", + "tissue_positions.csv:md5,930aeb2b790032337d91dd27cc70f135" + ] + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.4" + }, + "timestamp": "2025-02-12T11:24:51.984883864" + }, + "spaceranger v1 - homo_sapiens - fasta - gtf - fastq - tif - csv": { + "content": [ + [ + "versions.yml:md5,4abe169f33d7f99d5d9876b189060aae" + ], + [ + "filtered_feature_bc_matrix.h5:md5,649ac955bcb372b0b767013071cca72c", + "metrics_summary.csv:md5,38774fc5f54873d711b4898a2dd50e72", + "molecule_info.h5:md5,88bb948a426041165b2cc5fe8b180c21", + "raw_feature_bc_matrix.h5:md5,63324ae38fbf28bcc2114f170e0fde5d", + "aligned_fiducials.jpg:md5,f6217ddd707bb189e665f56b130c3da8", + "detected_tissue_image.jpg:md5,c1c7e8741701a576c1ec103c1aaf98ea", + "tissue_hires_image.png:md5,d91f8f176ae35ab824ede87117ac0889", + "tissue_lowres_image.png:md5,475a04208d193191c84d7a3b5d4eb287", + "tissue_positions.csv:md5,7f9cb407b3dd69726a12967b979a5624" + ] + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.4" + }, + "timestamp": "2025-02-12T11:08:30.165324139" + } +} \ No newline at end of file diff --git a/modules/nf-core/spaceranger/count/tests/nextflow.config b/modules/nf-core/spaceranger/count/tests/nextflow.config new file mode 100644 index 0000000..fe9d61a --- /dev/null +++ b/modules/nf-core/spaceranger/count/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: SPACERANGER_COUNT { + ext.args = '--create-bam false' + } +} diff --git a/modules/nf-core/spaceranger/mkgtf/main.nf b/modules/nf-core/spaceranger/mkgtf/main.nf new file mode 100644 index 0000000..86e05cc --- /dev/null +++ b/modules/nf-core/spaceranger/mkgtf/main.nf @@ -0,0 +1,51 @@ +process SPACERANGER_MKGTF { + tag "$gtf" + label 'process_low' + + container "nf-core/spaceranger:3.1.3" + + input: + path gtf + + output: + path "*.gtf" , emit: gtf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "SPACERANGER_MKGTF module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${gtf.baseName}.filtered" + """ + spaceranger \\ + mkgtf \\ + $gtf \\ + ${prefix}.gtf \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spaceranger: \$(spaceranger -V | sed -e "s/spaceranger spaceranger-//g") + END_VERSIONS + """ + + stub: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "SPACERANGER_COUNT module does not support Conda. Please use Docker / Singularity / Podman instead." + } + def prefix = task.ext.prefix ?: "${gtf.baseName}.filtered" + """ + touch ${prefix}.gtf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spaceranger: \$(spaceranger -V | sed -e "s/spaceranger spaceranger-//g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/spaceranger/mkgtf/meta.yml b/modules/nf-core/spaceranger/mkgtf/meta.yml new file mode 100644 index 0000000..e68c4af --- /dev/null +++ b/modules/nf-core/spaceranger/mkgtf/meta.yml @@ -0,0 +1,47 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "spaceranger_mkgtf" +description: Module to build a filtered GTF needed by the 10x Genomics Space Ranger + tool. Uses the spaceranger mkgtf command. +keywords: + - reference + - mkref + - index + - spaceranger +tools: + - "spaceranger": + description: | + Visium Spatial Gene Expression is a next-generation molecular profiling solution for classifying tissue + based on total mRNA. Space Ranger is a set of analysis pipelines that process Visium Spatial Gene Expression + data with brightfield and fluorescence microscope images. Space Ranger allows users to map the whole + transcriptome in formalin fixed paraffin embedded (FFPE) and fresh frozen tissues to discover novel + insights into normal development, disease pathology, and clinical translational research. Space Ranger provides + pipelines for end to end analysis of Visium Spatial Gene Expression experiments. + homepage: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + documentation: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + tool_dev_url: "https://support.10xgenomics.com/spatial-gene-expression/software/pipelines/latest/what-is-space-ranger" + licence: + - "10x Genomics EULA" + identifier: "" +input: + - gtf: + type: file + description: The reference GTF transcriptome file + pattern: "*.gtf" + ontologies: [] +output: + gtf: + - "*.gtf": + type: directory + description: The filtered GTF transcriptome file + pattern: "*.filtered.gtf" + versions: + - versions.yml: + type: file + description: File containing software version + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML +authors: + - "@grst" +maintainers: + - "@grst" diff --git a/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test b/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test new file mode 100644 index 0000000..7091e0a --- /dev/null +++ b/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test @@ -0,0 +1,59 @@ +nextflow_process { + + name "Test Process SPACERANGER_MKGTF" + script "../main.nf" + process "SPACERANGER_MKGTF" + + tag "modules" + tag "modules_nfcore" + tag "spaceranger" + tag "spaceranger/mkgtf" + + test("homo_sapiens - gtf") { + + when { + process { + """ + input[0] = [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.gtf, + process.out.versions, + ).match() } + ) + } + + } + + test("homo_sapiens (stub) - gtf") { + + options "-stub" + + when { + process { + """ + input[0] = [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.versions).match() }, + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test.snap b/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test.snap new file mode 100644 index 0000000..138a739 --- /dev/null +++ b/modules/nf-core/spaceranger/mkgtf/tests/main.nf.test.snap @@ -0,0 +1,29 @@ +{ + "homo_sapiens - gtf": { + "content": [ + [ + "genome.filtered.gtf:md5,50fc877b1c53b36b3b413aff88bda48c" + ], + [ + "versions.yml:md5,2f6c2b1181d43aea5c3fd8095cb181b6" + ] + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.4" + }, + "timestamp": "2025-02-12T16:06:15.384050292" + }, + "homo_sapiens (stub) - gtf": { + "content": [ + [ + "versions.yml:md5,2f6c2b1181d43aea5c3fd8095cb181b6" + ] + ], + "meta": { + "nf-test": "0.9.1", + "nextflow": "24.10.4" + }, + "timestamp": "2025-02-12T16:43:38.384121778" + } +} \ No newline at end of file diff --git a/subworkflows/local/prepare_ref/main.nf b/subworkflows/local/prepare_ref/main.nf index 6660156..2d4dc1b 100644 --- a/subworkflows/local/prepare_ref/main.nf +++ b/subworkflows/local/prepare_ref/main.nf @@ -5,8 +5,9 @@ include { GUNZIP as GUNZIP_FASTA } from '../../../modules/nf-core/gunzip' include { GUNZIP as GUNZIP_GTF } from '../../../modules/nf-core/gunzip' include { GUNZIP as GUNZIP_GFF } from '../../../modules/nf-core/gunzip' -include { UNTAR as UNTAR_STAR_INDEX } from '../../../modules/nf-core/untar' +include { UNTAR as UNTAR_SPACERANGER_REF } from "../../../modules/nf-core/untar" include { GFFREAD } from '../../../modules/nf-core/gffread' +include { SPACERANGER_MKGTF } from '../../../modules/nf-core/spaceranger/mkgtf' include { SPACERANGER_MKREF } from '../../../modules/nf-core/spaceranger/mkref' workflow PREPARE_REF { @@ -28,8 +29,21 @@ workflow PREPARE_REF { if (params.spaceranger_index) { + ch_fasta = Channel.empty() + ch_gtf = Channel.empty() + // Define spaceranger index channel from the user-provided one - ch_spaceranger_index = spaceranger_index + if (params.spaceranger_index ==~ /.*\.tar\.gz$/) { + ref_file = file(params.spaceranger_index) + UNTAR_SPACERANGER_REF ([ + ["id": file(params.spaceranger_index).name.replaceAll(/\.(tar)(\.gz)?$/, '')], + ref_file + ]) + ch_spaceranger_index = UNTAR_SPACERANGER_REF.out.untar.map{ it[1] } + ch_versions = ch_versions.mix(UNTAR_SPACERANGER_REF.out.versions) + } else { + ch_spaceranger_index = file(params.spaceranger_index, type: "dir", checkIfExists: true) + } } else { @@ -65,12 +79,20 @@ workflow PREPARE_REF { ch_fasta = fasta } + // + // Prepare gft file by keeping specific biotypes + // + SPACERANGER_MKGTF( + ch_gtf, + ) + ch_gtf_filtered = SPACERANGER_MKGTF.out.gtf + // // Create Spacer Ranger reference // SPACERANGER_MKREF( ch_fasta, - ch_gtf, + ch_gtf_filtered, file(params.fasta).name.replaceAll(/\.(fa|fasta)(\.gz)?$/, '') ) diff --git a/workflows/spatialomics.nf b/workflows/spatialomics.nf index a6763a6..ad5ebf9 100644 --- a/workflows/spatialomics.nf +++ b/workflows/spatialomics.nf @@ -5,12 +5,15 @@ */ include { FASTQC } from '../modules/nf-core/fastqc/main' include { MULTIQC } from '../modules/nf-core/multiqc/main' +include { SPACERANGER_COUNT } from '../modules/nf-core/spaceranger/count/main' + +include { PREPARE_REF } from '../subworkflows/local/prepare_ref' +include { PREPARE_FASTQ } from '../subworkflows/local/prepare_fastq' + include { paramsSummaryMap } from 'plugin/nf-schema' include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_spatialomics_pipeline' -include { PREPARE_REF } from '../subworkflows/local/prepare_ref' -include { PREPARE_FASTQ } from '../subworkflows/local/prepare_fastq' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -26,6 +29,7 @@ workflow SPATIALOMICS { ch_gtf // value channel: path(gtf) ch_gff // value channel: path(gff) ch_spaceranger_index // value channel: path(spaceranger_index) + ch_probeset // value channel: path(probeset) (optional) main: @@ -53,6 +57,27 @@ workflow SPATIALOMICS { ch_versions = ch_versions.mix(PREPARE_FASTQ.out.versions) ch_multiqc_files = ch_multiqc_files.mix(PREPARE_FASTQ.out.multiqc_files) + ch_reads + .multiMap { meta, fastq -> + reads: [ ["id": meta.id], fastq ] + slide_and_img: [ ["id": meta.id], meta.image, meta.slide, meta.area, meta.cytaimage, meta.darkimage, meta.colorizedimage, meta.alignment, meta.slidefile ] + } + .set { ch_reads_with_meta } + + ch_reads_with_meta.reads.view() + ch_reads_with_meta.slide_and_img.view() + + // + // MODULE: Align and quantify with Space Ranger + // + SPACERANGER_COUNT( + ch_reads_with_meta.reads, + ch_reads_with_meta.slide_and_img, + PREPARE_REF.out.spaceranger_index, + ch_probeset + ) + ch_versions = ch_versions.mix(SPACERANGER_COUNT.out.versions) + // // Collate and save software versions // From 0c4a02191bd3651961d4e712b57ac908f6763850 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 21 Oct 2025 16:35:08 +0200 Subject: [PATCH 02/18] adding index name as parameter --- conf/modules.config | 2 +- subworkflows/local/prepare_ref/main.nf | 11 +++++++---- workflows/spatialomics.nf | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 97c2546..3df6b91 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -61,7 +61,7 @@ process { mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - ext.args = "--create-bam false" + ext.args = "--create-bam true" time = { 240.h * task.attempt } } diff --git a/subworkflows/local/prepare_ref/main.nf b/subworkflows/local/prepare_ref/main.nf index 2d4dc1b..a8f5cb4 100644 --- a/subworkflows/local/prepare_ref/main.nf +++ b/subworkflows/local/prepare_ref/main.nf @@ -17,6 +17,7 @@ workflow PREPARE_REF { gtf // file: /path/to/genome.gtf gff // file: /path/to/genome.gff spaceranger_index // directory: /path/to/spaceranger/index/ (optional!) + reference_name // string: name for the new reference (if building new index) main: @@ -24,6 +25,9 @@ workflow PREPARE_REF { "Must provide a the spaceranger index (--spaceranger_index) \ or a fasta file ('--fasta') and a gtf/gff file ('--gtf'/'--gff') if no index is given!" + assert (params.spaceranger_index) || (reference_name): + "Must provide a reference name (--reference_name) when building a new spaceranger index!" + // Versions collector ch_versions = Channel.empty() @@ -34,15 +38,14 @@ workflow PREPARE_REF { // Define spaceranger index channel from the user-provided one if (params.spaceranger_index ==~ /.*\.tar\.gz$/) { - ref_file = file(params.spaceranger_index) UNTAR_SPACERANGER_REF ([ ["id": file(params.spaceranger_index).name.replaceAll(/\.(tar)(\.gz)?$/, '')], - ref_file + spaceranger_index ]) ch_spaceranger_index = UNTAR_SPACERANGER_REF.out.untar.map{ it[1] } ch_versions = ch_versions.mix(UNTAR_SPACERANGER_REF.out.versions) } else { - ch_spaceranger_index = file(params.spaceranger_index, type: "dir", checkIfExists: true) + ch_spaceranger_index = spaceranger_index } } else { @@ -93,7 +96,7 @@ workflow PREPARE_REF { SPACERANGER_MKREF( ch_fasta, ch_gtf_filtered, - file(params.fasta).name.replaceAll(/\.(fa|fasta)(\.gz)?$/, '') + reference_name ) // Channel to handle SPACERANGER_MKREF output diff --git a/workflows/spatialomics.nf b/workflows/spatialomics.nf index ad5ebf9..3e62a61 100644 --- a/workflows/spatialomics.nf +++ b/workflows/spatialomics.nf @@ -44,6 +44,7 @@ workflow SPATIALOMICS { ch_gtf, ch_gff, ch_spaceranger_index, + params.reference_name ) ch_versions = ch_versions.mix(PREPARE_REF.out.versions) From 25e6d30e15d8fc08b7dd7813fd1302a44a6c659d Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 21 Oct 2025 16:39:57 +0200 Subject: [PATCH 03/18] removing view() --- workflows/spatialomics.nf | 3 --- 1 file changed, 3 deletions(-) diff --git a/workflows/spatialomics.nf b/workflows/spatialomics.nf index 3e62a61..4d848ce 100644 --- a/workflows/spatialomics.nf +++ b/workflows/spatialomics.nf @@ -65,9 +65,6 @@ workflow SPATIALOMICS { } .set { ch_reads_with_meta } - ch_reads_with_meta.reads.view() - ch_reads_with_meta.slide_and_img.view() - // // MODULE: Align and quantify with Space Ranger // From a6d5c7c13c08db3064208a9e4fd67a05ad43e78e Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Mon, 3 Nov 2025 14:46:09 +0100 Subject: [PATCH 04/18] new test for visium --- assets/samplesheet_test.csv | 3 +-- conf/test.config | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/assets/samplesheet_test.csv b/assets/samplesheet_test.csv index 4aa0b09..6e433f0 100644 --- a/assets/samplesheet_test.csv +++ b/assets/samplesheet_test.csv @@ -1,3 +1,2 @@ sample,fastq_1,fastq_2,image,cytaimage,slide,area,darkimage,colorizedimage,manual_alignment,slidefile -Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,,, -Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,,, +Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R2_001.fastq.gz,,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_P2_image.tif,H1-VM2JXXK,A1,,,, diff --git a/conf/test.config b/conf/test.config index 82c4d57..86a2b82 100644 --- a/conf/test.config +++ b/conf/test.config @@ -24,8 +24,10 @@ params { // Input and output input = "${projectDir}/assets/samplesheet_test.csv" - probeset = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_probe_set.csv" - spaceranger_index = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/GRCh38.tar.gz" - + probeset = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/GSM8594568_P2CRC_probe_set.csv" + fasta = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.fa.gz" + gtf = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.gtf.gz" + reference_name = "GRCh38" } + From d7d8366f511cbbb960ee6d1c69c86a447b5a59d6 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Mon, 3 Nov 2025 15:10:08 +0100 Subject: [PATCH 05/18] fixed linting and parameter validation --- main.nf | 2 +- modules.json | 3 +- .../spaceranger/count/spaceranger-count.diff | 29 +++++++++++++++++++ nextflow_schema.json | 21 +++++++++++++- subworkflows/local/prepare_ref/main.nf | 2 ++ 5 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 modules/nf-core/spaceranger/count/spaceranger-count.diff diff --git a/main.nf b/main.nf index 0624405..d19c6b9 100644 --- a/main.nf +++ b/main.nf @@ -25,7 +25,7 @@ include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_spat */ params.fasta = getGenomeAttribute('fasta') -params.gft = getGenomeAttribute('gtf') +params.gtf = getGenomeAttribute('gtf') params.spaceranger_index = getGenomeAttribute('spaceranger_index') /* diff --git a/modules.json b/modules.json index dbc41c1..1f1da73 100644 --- a/modules.json +++ b/modules.json @@ -38,7 +38,8 @@ "spaceranger/count": { "branch": "master", "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/spaceranger/count/spaceranger-count.diff" }, "spaceranger/mkgtf": { "branch": "master", diff --git a/modules/nf-core/spaceranger/count/spaceranger-count.diff b/modules/nf-core/spaceranger/count/spaceranger-count.diff new file mode 100644 index 0000000..9829a15 --- /dev/null +++ b/modules/nf-core/spaceranger/count/spaceranger-count.diff @@ -0,0 +1,29 @@ +Changes in component 'nf-core/spaceranger/count' +'modules/nf-core/spaceranger/count/meta.yml' is unchanged +Changes in 'spaceranger/count/main.nf': +--- modules/nf-core/spaceranger/count/main.nf ++++ modules/nf-core/spaceranger/count/main.nf +@@ -5,7 +5,8 @@ + container "nf-core/spaceranger:3.1.3" + + input: +- tuple val(meta), path(reads), path(image), val(slide), val(area), path(cytaimage), path(darkimage), path(colorizedimage), path(alignment), path(slidefile) ++ tuple val(meta), path("fastqs/${meta.id}_S1_L001_R?_001.fastq.gz") ++ tuple val(meta2), path(image), val(slide), val(area), path(cytaimage), path(darkimage), path(colorizedimage), path(alignment), path(slidefile) + path(reference) + path(probeset) + +@@ -40,7 +41,7 @@ + spaceranger count \\ + --id="${prefix}" \\ + --sample="${meta.id}" \\ +- --fastqs=. \\ ++ --fastqs=fastqs \\ + --transcriptome="${reference}" \\ + --localcores=${task.cpus} \\ + --localmem=${task.memory.toGiga()} \\ + +'modules/nf-core/spaceranger/count/tests/nextflow.config' is unchanged +'modules/nf-core/spaceranger/count/tests/main.nf.test.snap' is unchanged +'modules/nf-core/spaceranger/count/tests/main.nf.test' is unchanged +************************************************************ diff --git a/nextflow_schema.json b/nextflow_schema.json index b919498..a3c2528 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -62,9 +62,28 @@ "mimetype": "text/plain", "pattern": "^\\S+\\.fn?a(sta)?(\\.gz)?$", "description": "Path to FASTA genome file.", - "help_text": "This parameter is *mandatory* if `--genome` is not specified. If you don't have a BWA index available this will be generated for you automatically. Combine with `--save_reference` to save BWA index for future runs.", + "help_text": "This parameter is *mandatory* if `--genome` or `--spaceranger_index` are not specified. If you don't have a Space Ranger index available this will be generated for you automatically.", "fa_icon": "far fa-file-code" }, + "gtf": { + "type": "string", + "format": "file-path", + "exists": true, + "mimetype": "text/plain", + "pattern": "^\\S+\\.gtf(\\.gz)?$", + "description": "Path to GTF annotation file.", + "help_text": "This parameter is mandatory if `--genome` or `--spaceranger_index` are not specified. If you don't have a Space Ranger index available this will be generated for you automatically.", + "errorMessage": "The GTF file must have a .gtf or .gtf.gz extension, must not contain spaces, and must exist.", + "fa_icon": "fas fa-code-branch" + }, + "spaceranger_index": { + "type": "string", + "format": "path", + "description": "Path to a Space Ranger reference folder. Can alternatively be provided as `tar.gz` archive.", + "help_text": "Please see the [10x website](https://support.10xgenomics.com/spatial-gene-expression/software/downloads/latest) to download either of the supported human or mouse references.", + "fa_icon": "fas fa-folder-open", + "exists": true + }, "igenomes_ignore": { "type": "boolean", "description": "Do not load the iGenomes reference config.", diff --git a/subworkflows/local/prepare_ref/main.nf b/subworkflows/local/prepare_ref/main.nf index a8f5cb4..fc0daad 100644 --- a/subworkflows/local/prepare_ref/main.nf +++ b/subworkflows/local/prepare_ref/main.nf @@ -88,6 +88,7 @@ workflow PREPARE_REF { SPACERANGER_MKGTF( ch_gtf, ) + ch_versions = ch_versions.mix(SPACERANGER_MKGTF.out.versions) ch_gtf_filtered = SPACERANGER_MKGTF.out.gtf // @@ -98,6 +99,7 @@ workflow PREPARE_REF { ch_gtf_filtered, reference_name ) + ch_versions = ch_versions.mix(SPACERANGER_MKREF.out.versions) // Channel to handle SPACERANGER_MKREF output ch_spaceranger_index = SPACERANGER_MKREF.out.reference.ifEmpty { From 4643cd49e1ded95cf03865b6d714d89ca7fe85e0 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Mon, 3 Nov 2025 15:46:37 +0100 Subject: [PATCH 06/18] updated test snap and validation schema --- nextflow.config | 2 + nextflow_schema.json | 14 ++ tests/default.nf.test.snap | 427 ++++++++++++++++++++++++++++++++----- 3 files changed, 389 insertions(+), 54 deletions(-) diff --git a/nextflow.config b/nextflow.config index 44b6c82..b21db1b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -17,6 +17,8 @@ params { genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false + reference_name = null + probeset = null // MultiQC options multiqc_config = null diff --git a/nextflow_schema.json b/nextflow_schema.json index a3c2528..1efea2f 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -84,6 +84,20 @@ "fa_icon": "fas fa-folder-open", "exists": true }, + "reference_name": { + "type": "string", + "fa_icon": "fas fa-book", + "description": "Genome assembly label that will be used to name a new index built from fasta and gft files with spaceranger mkref." + }, + "probeset": { + "type": "string", + "format": "file-path", + "mimetype": "text/csv", + "pattern": "^\\S+\\.csv$", + "description": "Location of Space Ranger probeset file.", + "fa_icon": "fas fa-file-csv", + "exists": true + }, "igenomes_ignore": { "type": "boolean", "description": "Do not load the iGenomes reference config.", diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 0eab4d0..eb1a0b7 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -11,11 +11,209 @@ "FQ_LINT": { "fq": "0.12.0 (2024-07-08)" }, + "GUNZIP_FASTA": { + "gunzip": 1.13 + }, + "GUNZIP_GTF": { + "gunzip": 1.13 + }, + "SPACERANGER_COUNT": { + "spaceranger": "3.1.3" + }, + "SPACERANGER_MKGTF": { + "spaceranger": "3.1.3" + }, + "SPACERANGER_MKREF": { + "spaceranger": "3.1.3" + }, "Workflow": { "nfdata-omics/spatialomics": "v0.0.1dev" } }, [ + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_probe_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/cytassist_image.tiff", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/detected_tissue_image.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/scalefactors_json.json", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_hires_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_lowres_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_positions.parquet", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/components.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/dispersion.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/features_selected.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/projection.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/variance.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap/gene_expression_2_components", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap/gene_expression_2_components/projection.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/cloupe.cloupe", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/cytassist_image.tiff", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/detected_tissue_image.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/scalefactors_json.json", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_hires_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_lowres_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_positions.parquet", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/components.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/dispersion.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/features_selected.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/projection.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/variance.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap/gene_expression_2_components", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap/gene_expression_2_components/projection.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/barcodes.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/features.tsv.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/matrix.mtx.gz", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/cytassist_image.tiff", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/detected_tissue_image.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/scalefactors_json.json", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_hires_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_lowres_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_positions.parquet", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/cloupe_008um.cloupe", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/feature_slice.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/metrics_summary.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/molecule_info.h5", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/possorted_genome_bam.bam", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/possorted_genome_bam.bam.bai", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/probe_set.csv", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/cytassist_image.tiff", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/detected_tissue_image.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/tissue_hires_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/tissue_lowres_image.png", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/web_summary.html", "cat", "cat/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz", "cat/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz", @@ -26,6 +224,9 @@ "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2_fastqc.zip", "fq", "fq/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt", + "gunzip", + "gunzip/chr21.fa", + "gunzip/chr21.gtf", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_data/fastqc-status-check-heatmap.txt", @@ -87,72 +288,190 @@ "multiqc/multiqc_report.html", "pipeline_info", "pipeline_info/spatialomics_software_mqc_versions.yml", - "spaceranger", - "spaceranger/GRCh38_chr21", - "spaceranger/GRCh38_chr21/fasta", - "spaceranger/GRCh38_chr21/fasta/genome.fa", - "spaceranger/GRCh38_chr21/fasta/genome.fa.fai", - "spaceranger/GRCh38_chr21/genes", - "spaceranger/GRCh38_chr21/genes/genes.gtf.gz", - "spaceranger/GRCh38_chr21/reference.json", - "spaceranger/GRCh38_chr21/star", - "spaceranger/GRCh38_chr21/star/Genome", - "spaceranger/GRCh38_chr21/star/SA", - "spaceranger/GRCh38_chr21/star/SAindex", - "spaceranger/GRCh38_chr21/star/chrLength.txt", - "spaceranger/GRCh38_chr21/star/chrName.txt", - "spaceranger/GRCh38_chr21/star/chrNameLength.txt", - "spaceranger/GRCh38_chr21/star/chrStart.txt", - "spaceranger/GRCh38_chr21/star/exonGeTrInfo.tab", - "spaceranger/GRCh38_chr21/star/exonInfo.tab", - "spaceranger/GRCh38_chr21/star/geneInfo.tab", - "spaceranger/GRCh38_chr21/star/genomeParameters.txt", - "spaceranger/GRCh38_chr21/star/sjdbInfo.txt", - "spaceranger/GRCh38_chr21/star/sjdbList.fromGTF.out.tab", - "spaceranger/GRCh38_chr21/star/sjdbList.out.tab", - "spaceranger/GRCh38_chr21/star/transcriptInfo.tab" + "reference", + "reference/mkgtf", + "reference/mkgtf/chr21.filtered.gtf", + "reference/mkref", + "reference/mkref/GRCh38", + "reference/mkref/GRCh38/fasta", + "reference/mkref/GRCh38/fasta/genome.fa", + "reference/mkref/GRCh38/fasta/genome.fa.fai", + "reference/mkref/GRCh38/genes", + "reference/mkref/GRCh38/genes/genes.gtf.gz", + "reference/mkref/GRCh38/reference.json", + "reference/mkref/GRCh38/star", + "reference/mkref/GRCh38/star/Genome", + "reference/mkref/GRCh38/star/SA", + "reference/mkref/GRCh38/star/SAindex", + "reference/mkref/GRCh38/star/chrLength.txt", + "reference/mkref/GRCh38/star/chrName.txt", + "reference/mkref/GRCh38/star/chrNameLength.txt", + "reference/mkref/GRCh38/star/chrStart.txt", + "reference/mkref/GRCh38/star/exonGeTrInfo.tab", + "reference/mkref/GRCh38/star/exonInfo.tab", + "reference/mkref/GRCh38/star/geneInfo.tab", + "reference/mkref/GRCh38/star/genomeParameters.txt", + "reference/mkref/GRCh38/star/sjdbInfo.txt", + "reference/mkref/GRCh38/star/sjdbList.fromGTF.out.tab", + "reference/mkref/GRCh38/star/sjdbList.out.tab", + "reference/mkref/GRCh38/star/transcriptInfo.tab" ], [ - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz:md5,ffa0655a818f9c2e1a0d7bc7aa789d56", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz:md5,23d07d8f5333d96fed828203c2d1c840", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt:md5,6515137146b3e44204efea56d4a5d9c9", - "fastqc-status-check-heatmap.txt:md5,4310b189f786b63e554e1db93160a108", - "fastqc_overrepresented_sequences_plot.txt:md5,29526e23692ce67f210bebbbc649b78c", - "fastqc_per_base_n_content_plot.txt:md5,60c30869b5226368bf9e42881e1f06b8", - "fastqc_per_base_sequence_quality_plot.txt:md5,4fdbdc0489bca53bdf3463a7d47154e6", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,6c38ba4c544c7f71f5290c30359658b7", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,1e4db0b910084bffea76ddd16d5935b5", - "fastqc_per_sequence_quality_scores_plot.txt:md5,d5e2d3fe59e5ef3f3664febe74e3549d", - "fastqc_sequence_counts_plot.txt:md5,19494d2928422e419de7a9ea447327f8", - "fastqc_sequence_duplication_levels_plot.txt:md5,b0bb0df056d4a31dcaec480e98d94939", + "filtered_feature_bc_matrix.h5:md5,4dd78df810f819a38d52c5b26be4359e", + "barcodes.tsv.gz:md5,0de501f1b0116db710b76671732f388e", + "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", + "matrix.mtx.gz:md5,a13354c6dbceb8f9c2b6330a4cfefe02", + "raw_feature_bc_matrix.h5:md5,d232789c8fb5dedec327a5fd03b1e0bd", + "barcodes.tsv.gz:md5,eb4db44b78def716639651a69cd07d33", + "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", + "matrix.mtx.gz:md5,65d58b5987279592355861276233a096", + "raw_probe_bc_matrix.h5:md5,1a464bd4efc8f8a3554fbc3953e3becc", + "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", + "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", + "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", + "scalefactors_json.json:md5,f3db579bc2c5effa4455f577c2e4bd08", + "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", + "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", + "tissue_positions.parquet:md5,b6129acee0f9bc9adc5ca62c6f841cb5", + "clusters.csv:md5,65a35ae8ebbd407c36626fa6235bd321", + "clusters.csv:md5,a33bbdae685022eae90bb1d73c7c4257", + "clusters.csv:md5,8b6de557e733aa69621d5879dcaff6c8", + "clusters.csv:md5,95497a9384db4b8675c56c9df3afcc84", + "clusters.csv:md5,e87d0ad0a726b4a98eee49275f6e933b", + "clusters.csv:md5,47f856b9878f48f3f0093304e611d8e3", + "clusters.csv:md5,245fc415d56ca229809edf074015af13", + "clusters.csv:md5,5546143681c9afa3ff667b2227c0948f", + "clusters.csv:md5,553ef5e729bc7133c5f3ca8b35cef76a", + "clusters.csv:md5,214cd90d176fef01bef96dda16d2736d", + "differential_expression.csv:md5,893b5858ffde60a4906d8d6cac527dbf", + "differential_expression.csv:md5,768c97b1e6f038f01920459ce632092f", + "differential_expression.csv:md5,3bf9a22decf0045837cebf36aa26e779", + "differential_expression.csv:md5,8bfe8793c501a1044a2c58b4a4e48a5d", + "differential_expression.csv:md5,178e80007066268744ab5f78f26b2ef8", + "differential_expression.csv:md5,c1a1a955d1ff51c918f5c0a0c0b281b4", + "differential_expression.csv:md5,170def119731047eb6f11fbeb183a1d7", + "differential_expression.csv:md5,591b1904edc24958145d022062adc0c0", + "differential_expression.csv:md5,38281724f342b1a06b2802299b53f8fc", + "differential_expression.csv:md5,3a3e73c077a9e73892ab0db69a5ca353", + "components.csv:md5,47ecb98f7ac75812e2045f5ddc63bbb0", + "dispersion.csv:md5,efb0c31dbdccd89e147562573e2ae5d3", + "features_selected.csv:md5,6b58e87a2890b92d0b3fa36a4acc119d", + "projection.csv:md5,ead841b8e4259f017f41150a6047020c", + "variance.csv:md5,4b7ad844d9cfd4bbd1228485c0ecb632", + "projection.csv:md5,28676dde1bca1c93d613270fcf1fdd0e", + "cloupe.cloupe:md5,6af3904019d1a5069ac78a6d2993ebe1", + "filtered_feature_bc_matrix.h5:md5,db95eaea83b980893ff67935c1e7f078", + "barcodes.tsv.gz:md5,9806a4139ab78d197ef5c1ec9e56096c", + "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", + "matrix.mtx.gz:md5,40cb61ad92c016d7006b8e85525dfcfb", + "raw_feature_bc_matrix.h5:md5,a801b3f3e88ff437e3ab44a4b3ea5042", + "barcodes.tsv.gz:md5,f0511c38af1da1f6dcd67d3260a957c1", + "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", + "matrix.mtx.gz:md5,f2afb597494d5e558c03ef90ecc84a1a", + "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", + "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", + "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", + "scalefactors_json.json:md5,b07f6d6b3788093179b701318bffb7ee", + "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", + "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", + "tissue_positions.parquet:md5,f29fd2a5f98b09788e4266a7f8b10f22", + "clusters.csv:md5,570d8acb516a8f2aef3d381af03cb869", + "clusters.csv:md5,eba3ee532bb25d5353d304d8859d2106", + "clusters.csv:md5,3865cbf532e42a2792af7e6990b054c0", + "clusters.csv:md5,5d28bf7c4e14b04df6620357fe8e5301", + "clusters.csv:md5,e31471ccf1cd3c9cb93da94435855599", + "clusters.csv:md5,c05ab4332ab15d700c7b2d0a29160ee0", + "clusters.csv:md5,25f0c9d5da2a5af8a2e89e9a642b5fda", + "clusters.csv:md5,30d3d453d6ae43b6899d8d76c89d2050", + "clusters.csv:md5,15edfa33572cffe0a20b4e1d0b0c1d2b", + "clusters.csv:md5,cc35ccd2a78e66102865a1bedfe69448", + "differential_expression.csv:md5,9d618ba71741b058de7cfce7bc81f534", + "differential_expression.csv:md5,792de8f173e89d5702b2812ccc46ef03", + "differential_expression.csv:md5,4c64bab0e4c3bf67ae7c3969d4097dd4", + "differential_expression.csv:md5,590af9dac6319ff8d204c66deeb29c2b", + "differential_expression.csv:md5,f7732cdb2e3d736f22bd8640f720e758", + "differential_expression.csv:md5,1bd4431983f5d3c2303591e65f307f8e", + "differential_expression.csv:md5,5133372de47510e137c9086cc0819bbf", + "differential_expression.csv:md5,ea65923f25aab01782dfe441373cc887", + "differential_expression.csv:md5,d159851886649dc66f2cb7d454ec84d7", + "differential_expression.csv:md5,f024afeb3372ea1e0fbc368a542a65ca", + "components.csv:md5,bfa74bc5a08c6a19a3844f6f317bc452", + "dispersion.csv:md5,1ad57c4d5bcf83238843962b4cec9719", + "features_selected.csv:md5,e0d639f7fc07bd7d7cc0fed3854d1872", + "projection.csv:md5,49709d18c42c19530aabbb7ff501f3a7", + "variance.csv:md5,66bc471da9dca8bfd684eabbde99534b", + "projection.csv:md5,0b94a45cf6d850226fe12eeafece60d4", + "filtered_feature_bc_matrix.h5:md5,44efef04f9a7efc0ba02934f9d8faf25", + "barcodes.tsv.gz:md5,78f88e80631e0b27325b96451ccd504f", + "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", + "matrix.mtx.gz:md5,39684d09f169bd705e6a6a25f99d6542", + "raw_feature_bc_matrix.h5:md5,d1c14b3c4f993b936b83e8e0e9ab7ee7", + "barcodes.tsv.gz:md5,a5dfa2eb60e13d36edbe52877b6fd5d9", + "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", + "matrix.mtx.gz:md5,defbdb887d085ee092429cefb3428dc8", + "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", + "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", + "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", + "scalefactors_json.json:md5,0b714d6f65270b2f4c4adbcf7f82209c", + "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", + "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", + "tissue_positions.parquet:md5,c5774db724d3134ec34aa4729dcd69d7", + "cloupe_008um.cloupe:md5,6af3904019d1a5069ac78a6d2993ebe1", + "feature_slice.h5:md5,45426364d694cc107a0e269b748fe730", + "metrics_summary.csv:md5,08e1c9b0b6f10cf1b421d0e3bc8472b4", + "molecule_info.h5:md5,a65f1d8d8d95eda5cf35fd00950faf1c", + "possorted_genome_bam.bam:md5,cffde1b3bbc49ca16706665abb09da97", + "possorted_genome_bam.bam.bai:md5,90d5dcea7191e972f5f145fa6d4a14bc", + "probe_set.csv:md5,a74f1583689de3c9f95164b2fc090194", + "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", + "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", + "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", + "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", + "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", + "web_summary.html:md5,982c35715936d3606020ccbef349cfaa", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz:md5,5ea6777de2e350b258c1cebffedc63d1", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz:md5,bda7775a968d74071a81d4ec4873c576", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt:md5,ce9fb1d512ee9aca91c17226c6e31f6f", + "chr21.fa:md5,a7a8ee17d735d23160137c7793f9f872", + "chr21.gtf:md5,d2db40ac04bf0bce710a304139ca297b", + "fastqc-status-check-heatmap.txt:md5,a40e10921dbcbf44cd7b397576d46e19", + "fastqc_overrepresented_sequences_plot.txt:md5,72fb8e7df1d16db22d4244108391693d", + "fastqc_per_base_n_content_plot.txt:md5,c0225f321a6feaf0d9e431f47033ada2", + "fastqc_per_base_sequence_quality_plot.txt:md5,2126788aa79d12f97661946b52e990c3", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,752257ff1285d7238743d23a5b37f1ec", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,7eb313bb89b4693e34870032f693f6fa", + "fastqc_per_sequence_quality_scores_plot.txt:md5,391eec51723dcecd6ae72c85fd50e03a", + "fastqc_sequence_counts_plot.txt:md5,26a428fe819866dff153983de490f4e4", + "fastqc_sequence_duplication_levels_plot.txt:md5,79c07fa860890c611607352d89d64ea2", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", - "multiqc_fastqc.txt:md5,6c8ca51029ac53d1eb6d9ea10817f8bc", - "multiqc_general_stats.txt:md5,cf51b986de00e0ef3a35b82d16c5e504", - "genome.fa:md5,c675070fcf168d7b64cfadc30b5d7b4d", - "genome.fa.fai:md5,6ea51e1c1231da5e49212ea9f493d703", - "genes.gtf.gz:md5,0f7fd0379e0fc70735f971377b13e50c", - "reference.json:md5,359fd1bfe2b4b01ab3037ac04d1610bf", - "Genome:md5,612664e3cfde5e1b73ad541d93752b31", - "SA:md5,074ae54177bb7b9cb981382f043f36e5", - "SAindex:md5,24ce0c200405447cb9dec1714618e92f", + "multiqc_fastqc.txt:md5,814e07df7cca15a49026ba5af4a25e56", + "multiqc_general_stats.txt:md5,10d8597764dcb14f7b28d70811effeb2", + "chr21.filtered.gtf:md5,d2db40ac04bf0bce710a304139ca297b", + "genome.fa:md5,a7a8ee17d735d23160137c7793f9f872", + "genome.fa.fai:md5,a7e52efeee796ff94ede575403a31586", + "genes.gtf.gz:md5,d2db40ac04bf0bce710a304139ca297b", + "reference.json:md5,5b5a497cd6bd824b68e305176e9f7625", + "Genome:md5,ddad1b8708d0fe4624f0d945f1e53381", + "SA:md5,f01f7cd63c62a6b69ad49a9919653a9a", + "SAindex:md5,fd7b706c62781e92b759d5e8aa5151a7", "chrLength.txt:md5,b0be0a56ddefa84552742c72d4859eac", "chrName.txt:md5,e99d7d1051eee43ceab5563c2d09fcee", "chrNameLength.txt:md5,c985a141685e8431ec27c782816cb744", "chrStart.txt:md5,6925b594ea2eeb964ba87cd6d42ab98f", - "exonGeTrInfo.tab:md5,a36b92eeceaaf921b9d19cd8e806a98e", - "exonInfo.tab:md5,bb892190d1ebdd59bf55652916121479", - "geneInfo.tab:md5,4303e97d841035b5c0fcc3686b2f5a36", - "genomeParameters.txt:md5,1efd18b59cae82e3cc63f9ffc25ff85b", - "sjdbInfo.txt:md5,12fb05dc7cea89735a0c19e1c0df61cb", - "sjdbList.fromGTF.out.tab:md5,d9e4a184cde15a5ab282ff66e740a4a2", - "sjdbList.out.tab:md5,766fbca932681f8666b3a9e5fb3640bd", - "transcriptInfo.tab:md5,ad9baa68c5432908b42693edb9aed02a" + "exonGeTrInfo.tab:md5,19506a649344a3dbb33bfa47d794851b", + "exonInfo.tab:md5,30350358691756b50407c0f8cb6ce5b3", + "geneInfo.tab:md5,67cb5583677c9b6f4c5490c6a89dba87", + "genomeParameters.txt:md5,195a73612305560d9d2c68c046518727", + "sjdbInfo.txt:md5,a544cc53ebf721c5d55d1995abcc907e", + "sjdbList.fromGTF.out.tab:md5,3427299e4047e7ba0404e07fb0ac03ee", + "sjdbList.out.tab:md5,874227af46e44a89ec5fdbe25d3154a5", + "transcriptInfo.tab:md5,a86211e41ef8fd5bcce871ebbbe39638" ] ], "meta": { "nf-test": "0.9.2", "nextflow": "25.04.8" }, - "timestamp": "2025-10-20T14:57:14.219336507" + "timestamp": "2025-11-03T15:37:00.437153276" } } \ No newline at end of file From 88dbd459c12138e80c4810ff065a230b3c02532e Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Mon, 3 Nov 2025 15:50:22 +0100 Subject: [PATCH 07/18] fixing eof line in test.config --- conf/test.config | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conf/test.config b/conf/test.config index 86a2b82..51cb49a 100644 --- a/conf/test.config +++ b/conf/test.config @@ -22,7 +22,7 @@ params { config_profile_name = 'Test profile' config_profile_description = 'Minimal test dataset to check pipeline function' - // Input and output + // Input input = "${projectDir}/assets/samplesheet_test.csv" probeset = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/GSM8594568_P2CRC_probe_set.csv" fasta = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.fa.gz" @@ -30,4 +30,3 @@ params { reference_name = "GRCh38" } - From f5327beb650e377e1f30cc7ef40a1332e3753c2a Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 12:15:18 +0100 Subject: [PATCH 08/18] reorganization of tests --- assets/samplesheet_test.csv | 3 ++- assets/samplesheet_test_long.csv | 2 ++ conf/test.config | 6 ++---- conf/test_long.config | 32 ++++++++++++++++++++++++++++++++ nextflow.config | 1 + 5 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 assets/samplesheet_test_long.csv create mode 100644 conf/test_long.config diff --git a/assets/samplesheet_test.csv b/assets/samplesheet_test.csv index 6e433f0..8e0c992 100644 --- a/assets/samplesheet_test.csv +++ b/assets/samplesheet_test.csv @@ -1,2 +1,3 @@ sample,fastq_1,fastq_2,image,cytaimage,slide,area,darkimage,colorizedimage,manual_alignment,slidefile -Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R2_001.fastq.gz,,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_P2_image.tif,H1-VM2JXXK,A1,,,, +Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L001_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,, +Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R1_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_S1_L002_R2_001.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_tissue_image.btf,https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_image.tif,H1-84QJZFR,D1,,,, diff --git a/assets/samplesheet_test_long.csv b/assets/samplesheet_test_long.csv new file mode 100644 index 0000000..e3c4f7b --- /dev/null +++ b/assets/samplesheet_test_long.csv @@ -0,0 +1,2 @@ +sample,fastq_1,fastq_2,image,cytaimage,slide,area,darkimage,colorizedimage,manual_alignment,slidefile +Visium_HD_Human_Colon_Cancer,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R1_001.fastq.gz,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_chr21_sub40000_P2_S2_L001_R2_001.fastq.gz,,https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_P2_image.tif,H1-VM2JXXK,A1,,,, diff --git a/conf/test.config b/conf/test.config index 51cb49a..268cafb 100644 --- a/conf/test.config +++ b/conf/test.config @@ -24,9 +24,7 @@ params { // Input input = "${projectDir}/assets/samplesheet_test.csv" - probeset = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/GSM8594568_P2CRC_probe_set.csv" - fasta = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.fa.gz" - gtf = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.gtf.gz" - reference_name = "GRCh38" + probeset = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/human-lung-cancer-post-xenium_hd_ffpe/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_probe_set.csv" + spaceranger_index = "https://raw.githubusercontent.com/nf-core/test-datasets/spatialvi/testdata/GRCh38.tar.gz" } diff --git a/conf/test_long.config b/conf/test_long.config new file mode 100644 index 0000000..f893dc5 --- /dev/null +++ b/conf/test_long.config @@ -0,0 +1,32 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 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 nfdata-omics/spatialomics -profile test_long, --outdir + +---------------------------------------------------------------------------------------- +*/ + +process { + resourceLimits = [ + cpus: 2, + memory: '15.GB', + time: '1.h' + ] +} + +params { + config_profile_name = 'Long Test profile' + config_profile_description = 'Minimal test dataset to check pipeline function, with full chromosome and ref building' + + // Input + input = "${projectDir}/assets/samplesheet_test_long.csv" + probeset = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/spatialomics/Visium_HD_Human_Colon_Cancer/GSM8594568_P2CRC_probe_set.csv" + fasta = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.fa.gz" + gtf = "https://raw.githubusercontent.com/nfdata-omics/test-datasets/refs/chr21-cellranger/chr21.gtf.gz" + reference_name = "GRCh38" + +} diff --git a/nextflow.config b/nextflow.config index b21db1b..8b3b04d 100644 --- a/nextflow.config +++ b/nextflow.config @@ -169,6 +169,7 @@ profiles { singularity.runOptions = '--nv' } test { includeConfig 'conf/test.config' } + test_long { includeConfig 'conf/test_long.config' } test_full { includeConfig 'conf/test_full.config' } } From 83d29da814a514e2c0b0f06755dc05a633f4ac8d Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 12:15:47 +0100 Subject: [PATCH 09/18] fix when reference provided as tar --- main.nf | 2 +- subworkflows/local/prepare_ref/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main.nf b/main.nf index d19c6b9..7c86ada 100644 --- a/main.nf +++ b/main.nf @@ -48,7 +48,7 @@ workflow NFDATAOMICS_SPATIALOMICS { ch_fasta = params.fasta ? Channel.value(file(params.fasta, checkIfExists: true)) : Channel.empty() ch_gtf = params.gtf ? Channel.value(file(params.gtf, checkIfExists: true)) : Channel.empty() ch_gff = params.gff ? Channel.value(file(params.gff, checkIfExists: true)) : Channel.empty() - ch_spaceranger_index = params.spaceranger_index ? Channel.value(file(params.spaceranger_index, checkIfExists: true)) : Channel.empty() + ch_spaceranger_index = params.spaceranger_index ? file(params.spaceranger_index, checkIfExists: true) : Channel.empty() ch_probeset = params.probeset ? Channel.value(file(params.probeset, checkIfExists: true)) : Channel.empty() // diff --git a/subworkflows/local/prepare_ref/main.nf b/subworkflows/local/prepare_ref/main.nf index fc0daad..32edef5 100644 --- a/subworkflows/local/prepare_ref/main.nf +++ b/subworkflows/local/prepare_ref/main.nf @@ -39,7 +39,7 @@ workflow PREPARE_REF { // Define spaceranger index channel from the user-provided one if (params.spaceranger_index ==~ /.*\.tar\.gz$/) { UNTAR_SPACERANGER_REF ([ - ["id": file(params.spaceranger_index).name.replaceAll(/\.(tar)(\.gz)?$/, '')], + ["id": params.spaceranger_index.tokenize('/').last().replaceAll(/\.(tar)(\.gz)?$/, '')], spaceranger_index ]) ch_spaceranger_index = UNTAR_SPACERANGER_REF.out.untar.map{ it[1] } From 396945bc774434ed857a946b2692a41ddea6cbcf Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 12:16:10 +0100 Subject: [PATCH 10/18] added snapshot for the default test --- tests/default.nf.test.snap | 370 ++++++++++++++++++------------------- 1 file changed, 180 insertions(+), 190 deletions(-) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index eb1a0b7..a0549ec 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -11,20 +11,11 @@ "FQ_LINT": { "fq": "0.12.0 (2024-07-08)" }, - "GUNZIP_FASTA": { - "gunzip": 1.13 - }, - "GUNZIP_GTF": { - "gunzip": 1.13 - }, "SPACERANGER_COUNT": { "spaceranger": "3.1.3" }, - "SPACERANGER_MKGTF": { - "spaceranger": "3.1.3" - }, - "SPACERANGER_MKREF": { - "spaceranger": "3.1.3" + "UNTAR_SPACERANGER_REF": { + "untar": 1.34 }, "Workflow": { "nfdata-omics/spatialomics": "v0.0.1dev" @@ -49,6 +40,7 @@ "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_probe_bc_matrix.h5", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/aligned_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/cytassist_image.tiff", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/detected_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/scalefactors_json.json", @@ -122,6 +114,7 @@ "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/matrix.mtx.gz", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/aligned_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/cytassist_image.tiff", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/detected_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/scalefactors_json.json", @@ -194,6 +187,7 @@ "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/matrix.mtx.gz", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/aligned_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/cytassist_image.tiff", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/detected_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/scalefactors_json.json", @@ -209,6 +203,7 @@ "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/probe_set.csv", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/aligned_fiducials.jpg", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/aligned_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/cytassist_image.tiff", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/detected_tissue_image.jpg", "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/tissue_hires_image.png", @@ -224,9 +219,6 @@ "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2_fastqc.zip", "fq", "fq/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt", - "gunzip", - "gunzip/chr21.fa", - "gunzip/chr21.gtf", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_data/fastqc-status-check-heatmap.txt", @@ -288,190 +280,188 @@ "multiqc/multiqc_report.html", "pipeline_info", "pipeline_info/spatialomics_software_mqc_versions.yml", - "reference", - "reference/mkgtf", - "reference/mkgtf/chr21.filtered.gtf", - "reference/mkref", - "reference/mkref/GRCh38", - "reference/mkref/GRCh38/fasta", - "reference/mkref/GRCh38/fasta/genome.fa", - "reference/mkref/GRCh38/fasta/genome.fa.fai", - "reference/mkref/GRCh38/genes", - "reference/mkref/GRCh38/genes/genes.gtf.gz", - "reference/mkref/GRCh38/reference.json", - "reference/mkref/GRCh38/star", - "reference/mkref/GRCh38/star/Genome", - "reference/mkref/GRCh38/star/SA", - "reference/mkref/GRCh38/star/SAindex", - "reference/mkref/GRCh38/star/chrLength.txt", - "reference/mkref/GRCh38/star/chrName.txt", - "reference/mkref/GRCh38/star/chrNameLength.txt", - "reference/mkref/GRCh38/star/chrStart.txt", - "reference/mkref/GRCh38/star/exonGeTrInfo.tab", - "reference/mkref/GRCh38/star/exonInfo.tab", - "reference/mkref/GRCh38/star/geneInfo.tab", - "reference/mkref/GRCh38/star/genomeParameters.txt", - "reference/mkref/GRCh38/star/sjdbInfo.txt", - "reference/mkref/GRCh38/star/sjdbList.fromGTF.out.tab", - "reference/mkref/GRCh38/star/sjdbList.out.tab", - "reference/mkref/GRCh38/star/transcriptInfo.tab" + "untar", + "untar/GRCh38", + "untar/GRCh38/fasta", + "untar/GRCh38/fasta/genome.fa", + "untar/GRCh38/fasta/genome.fa.fai", + "untar/GRCh38/genes", + "untar/GRCh38/genes/genes.gtf.gz", + "untar/GRCh38/reference.json", + "untar/GRCh38/star", + "untar/GRCh38/star/Genome", + "untar/GRCh38/star/SA", + "untar/GRCh38/star/SAindex", + "untar/GRCh38/star/chrLength.txt", + "untar/GRCh38/star/chrName.txt", + "untar/GRCh38/star/chrNameLength.txt", + "untar/GRCh38/star/chrStart.txt", + "untar/GRCh38/star/exonGeTrInfo.tab", + "untar/GRCh38/star/exonInfo.tab", + "untar/GRCh38/star/geneInfo.tab", + "untar/GRCh38/star/genomeParameters.txt", + "untar/GRCh38/star/sjdbInfo.txt", + "untar/GRCh38/star/sjdbList.fromGTF.out.tab", + "untar/GRCh38/star/sjdbList.out.tab", + "untar/GRCh38/star/transcriptInfo.tab" ], [ - "filtered_feature_bc_matrix.h5:md5,4dd78df810f819a38d52c5b26be4359e", - "barcodes.tsv.gz:md5,0de501f1b0116db710b76671732f388e", - "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", - "matrix.mtx.gz:md5,a13354c6dbceb8f9c2b6330a4cfefe02", - "raw_feature_bc_matrix.h5:md5,d232789c8fb5dedec327a5fd03b1e0bd", - "barcodes.tsv.gz:md5,eb4db44b78def716639651a69cd07d33", - "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", - "matrix.mtx.gz:md5,65d58b5987279592355861276233a096", - "raw_probe_bc_matrix.h5:md5,1a464bd4efc8f8a3554fbc3953e3becc", - "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", - "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", - "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", - "scalefactors_json.json:md5,f3db579bc2c5effa4455f577c2e4bd08", - "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", - "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", - "tissue_positions.parquet:md5,b6129acee0f9bc9adc5ca62c6f841cb5", - "clusters.csv:md5,65a35ae8ebbd407c36626fa6235bd321", - "clusters.csv:md5,a33bbdae685022eae90bb1d73c7c4257", - "clusters.csv:md5,8b6de557e733aa69621d5879dcaff6c8", - "clusters.csv:md5,95497a9384db4b8675c56c9df3afcc84", - "clusters.csv:md5,e87d0ad0a726b4a98eee49275f6e933b", - "clusters.csv:md5,47f856b9878f48f3f0093304e611d8e3", - "clusters.csv:md5,245fc415d56ca229809edf074015af13", - "clusters.csv:md5,5546143681c9afa3ff667b2227c0948f", - "clusters.csv:md5,553ef5e729bc7133c5f3ca8b35cef76a", - "clusters.csv:md5,214cd90d176fef01bef96dda16d2736d", - "differential_expression.csv:md5,893b5858ffde60a4906d8d6cac527dbf", - "differential_expression.csv:md5,768c97b1e6f038f01920459ce632092f", - "differential_expression.csv:md5,3bf9a22decf0045837cebf36aa26e779", - "differential_expression.csv:md5,8bfe8793c501a1044a2c58b4a4e48a5d", - "differential_expression.csv:md5,178e80007066268744ab5f78f26b2ef8", - "differential_expression.csv:md5,c1a1a955d1ff51c918f5c0a0c0b281b4", - "differential_expression.csv:md5,170def119731047eb6f11fbeb183a1d7", - "differential_expression.csv:md5,591b1904edc24958145d022062adc0c0", - "differential_expression.csv:md5,38281724f342b1a06b2802299b53f8fc", - "differential_expression.csv:md5,3a3e73c077a9e73892ab0db69a5ca353", - "components.csv:md5,47ecb98f7ac75812e2045f5ddc63bbb0", - "dispersion.csv:md5,efb0c31dbdccd89e147562573e2ae5d3", - "features_selected.csv:md5,6b58e87a2890b92d0b3fa36a4acc119d", - "projection.csv:md5,ead841b8e4259f017f41150a6047020c", - "variance.csv:md5,4b7ad844d9cfd4bbd1228485c0ecb632", - "projection.csv:md5,28676dde1bca1c93d613270fcf1fdd0e", - "cloupe.cloupe:md5,6af3904019d1a5069ac78a6d2993ebe1", - "filtered_feature_bc_matrix.h5:md5,db95eaea83b980893ff67935c1e7f078", - "barcodes.tsv.gz:md5,9806a4139ab78d197ef5c1ec9e56096c", - "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", - "matrix.mtx.gz:md5,40cb61ad92c016d7006b8e85525dfcfb", - "raw_feature_bc_matrix.h5:md5,a801b3f3e88ff437e3ab44a4b3ea5042", - "barcodes.tsv.gz:md5,f0511c38af1da1f6dcd67d3260a957c1", - "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", - "matrix.mtx.gz:md5,f2afb597494d5e558c03ef90ecc84a1a", - "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", - "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", - "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", - "scalefactors_json.json:md5,b07f6d6b3788093179b701318bffb7ee", - "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", - "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", - "tissue_positions.parquet:md5,f29fd2a5f98b09788e4266a7f8b10f22", - "clusters.csv:md5,570d8acb516a8f2aef3d381af03cb869", - "clusters.csv:md5,eba3ee532bb25d5353d304d8859d2106", - "clusters.csv:md5,3865cbf532e42a2792af7e6990b054c0", - "clusters.csv:md5,5d28bf7c4e14b04df6620357fe8e5301", - "clusters.csv:md5,e31471ccf1cd3c9cb93da94435855599", - "clusters.csv:md5,c05ab4332ab15d700c7b2d0a29160ee0", - "clusters.csv:md5,25f0c9d5da2a5af8a2e89e9a642b5fda", - "clusters.csv:md5,30d3d453d6ae43b6899d8d76c89d2050", - "clusters.csv:md5,15edfa33572cffe0a20b4e1d0b0c1d2b", - "clusters.csv:md5,cc35ccd2a78e66102865a1bedfe69448", - "differential_expression.csv:md5,9d618ba71741b058de7cfce7bc81f534", - "differential_expression.csv:md5,792de8f173e89d5702b2812ccc46ef03", - "differential_expression.csv:md5,4c64bab0e4c3bf67ae7c3969d4097dd4", - "differential_expression.csv:md5,590af9dac6319ff8d204c66deeb29c2b", - "differential_expression.csv:md5,f7732cdb2e3d736f22bd8640f720e758", - "differential_expression.csv:md5,1bd4431983f5d3c2303591e65f307f8e", - "differential_expression.csv:md5,5133372de47510e137c9086cc0819bbf", - "differential_expression.csv:md5,ea65923f25aab01782dfe441373cc887", - "differential_expression.csv:md5,d159851886649dc66f2cb7d454ec84d7", - "differential_expression.csv:md5,f024afeb3372ea1e0fbc368a542a65ca", - "components.csv:md5,bfa74bc5a08c6a19a3844f6f317bc452", - "dispersion.csv:md5,1ad57c4d5bcf83238843962b4cec9719", - "features_selected.csv:md5,e0d639f7fc07bd7d7cc0fed3854d1872", - "projection.csv:md5,49709d18c42c19530aabbb7ff501f3a7", - "variance.csv:md5,66bc471da9dca8bfd684eabbde99534b", - "projection.csv:md5,0b94a45cf6d850226fe12eeafece60d4", - "filtered_feature_bc_matrix.h5:md5,44efef04f9a7efc0ba02934f9d8faf25", - "barcodes.tsv.gz:md5,78f88e80631e0b27325b96451ccd504f", - "features.tsv.gz:md5,94bb77b14dffd444bfcffd828c84e677", - "matrix.mtx.gz:md5,39684d09f169bd705e6a6a25f99d6542", - "raw_feature_bc_matrix.h5:md5,d1c14b3c4f993b936b83e8e0e9ab7ee7", - "barcodes.tsv.gz:md5,a5dfa2eb60e13d36edbe52877b6fd5d9", - "features.tsv.gz:md5,4ab9e3b29c73296728a6525a28660704", - "matrix.mtx.gz:md5,defbdb887d085ee092429cefb3428dc8", - "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", - "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", - "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", - "scalefactors_json.json:md5,0b714d6f65270b2f4c4adbcf7f82209c", - "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", - "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", - "tissue_positions.parquet:md5,c5774db724d3134ec34aa4729dcd69d7", - "cloupe_008um.cloupe:md5,6af3904019d1a5069ac78a6d2993ebe1", - "feature_slice.h5:md5,45426364d694cc107a0e269b748fe730", - "metrics_summary.csv:md5,08e1c9b0b6f10cf1b421d0e3bc8472b4", - "molecule_info.h5:md5,a65f1d8d8d95eda5cf35fd00950faf1c", - "possorted_genome_bam.bam:md5,cffde1b3bbc49ca16706665abb09da97", - "possorted_genome_bam.bam.bai:md5,90d5dcea7191e972f5f145fa6d4a14bc", + "filtered_feature_bc_matrix.h5:md5,0c04bf2ea059df078bec3e765b1f3105", + "barcodes.tsv.gz:md5,b24a9f7bb39f2dcd4e662cbe1eaf7763", + "features.tsv.gz:md5,53092c021f35473a120886f08871c246", + "matrix.mtx.gz:md5,d1ecd2fb7cf480e5bfc3414e6c7b1de1", + "raw_feature_bc_matrix.h5:md5,cc100e1940be13298e293960cf2b1fa5", + "barcodes.tsv.gz:md5,789306c4252f46be30e2dcc9ebfe91a9", + "features.tsv.gz:md5,cf40b533d41bbb2f197ed8d75b3a9a67", + "matrix.mtx.gz:md5,1f130be805f03ee6cd6dcd094fee14d2", + "raw_probe_bc_matrix.h5:md5,24b422f16dd3ee066996545141d16316", + "aligned_fiducials.jpg:md5,edde03debc796feed00857c268c6f917", + "aligned_tissue_image.jpg:md5,aa844ffd606a7070c5d0de847c723b76", + "cytassist_image.tiff:md5,1328dd8ea02922375719f38e3de516ca", + "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", + "scalefactors_json.json:md5,6c3cc8f4a05b2d6a23e1e20ee0a01a19", + "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", + "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", + "tissue_positions.parquet:md5,f2c8f9936e5228ff2039aef143ea88e9", + "clusters.csv:md5,d4d0ca34ccd1259963b74a76bdf9b0f3", + "clusters.csv:md5,474edba1d0ea761243ea8a11dacffbd3", + "clusters.csv:md5,7bdd979786bf8d3e604b46df7639529e", + "clusters.csv:md5,3eb561e3800ad198c138deda84d389d1", + "clusters.csv:md5,d22c14592230fa3c438b3c4eb5e8a4da", + "clusters.csv:md5,9c6b5209737c23afa9ca7f4d32fb72fe", + "clusters.csv:md5,fe1056a04988d5f775d97c9e6d35ce74", + "clusters.csv:md5,2784e4e76ac20f912dec24e2c362d214", + "clusters.csv:md5,4f5fa1622a41fccb3a36167963247875", + "clusters.csv:md5,4877555fb827480317cdca9f85309d67", + "differential_expression.csv:md5,f14db6a829c7b65a5652e387f81801b8", + "differential_expression.csv:md5,9117294c879f9047452e1296f13221ee", + "differential_expression.csv:md5,06746aa3c918d0b9f715591bf6bb940a", + "differential_expression.csv:md5,5ad1bf02052f07618ee7ed4c842e7a94", + "differential_expression.csv:md5,483808c3b3a6cdad274ca795616be715", + "differential_expression.csv:md5,893e66660bd50c1bb78fb5d34f46a4be", + "differential_expression.csv:md5,31167d10756517bd7a19c1602efd6597", + "differential_expression.csv:md5,6ef899cb4dd1f2f424d9c52293b9b88a", + "differential_expression.csv:md5,32c54cd9fefe50c5cbb305c6f87232ee", + "differential_expression.csv:md5,03a1c90d247012bc695391ebb57b1757", + "components.csv:md5,c0fa4e916f7c7f5e2a994c7ce0e2926c", + "dispersion.csv:md5,825408c9678100049f0244361138a844", + "features_selected.csv:md5,7fcad5f834af732ca287ad6ce3901b37", + "projection.csv:md5,cf8f37dcfe6c718b28a8c13c9eca6dc6", + "variance.csv:md5,fc0451575fe03683e19bfc7e1981be3c", + "projection.csv:md5,61af621c1e89a2d8d67c74f2d412d548", + "cloupe.cloupe:md5,34e3fbea7223136ba13c99c51d7a357f", + "filtered_feature_bc_matrix.h5:md5,6363415f0bfdbdae9a3eab5c8d838ae8", + "barcodes.tsv.gz:md5,2f707eec36c8c8478071836e375c589d", + "features.tsv.gz:md5,53092c021f35473a120886f08871c246", + "matrix.mtx.gz:md5,a127fb34124de78334c89568f9cb0f6e", + "raw_feature_bc_matrix.h5:md5,9bf24de28e22e54c325cbc678c1c2bf0", + "barcodes.tsv.gz:md5,a957a85f886ee2faa4c3c9b7283390d7", + "features.tsv.gz:md5,cf40b533d41bbb2f197ed8d75b3a9a67", + "matrix.mtx.gz:md5,a9d3761e7a168aaf8c9acae92c649c60", + "aligned_fiducials.jpg:md5,edde03debc796feed00857c268c6f917", + "aligned_tissue_image.jpg:md5,aa844ffd606a7070c5d0de847c723b76", + "cytassist_image.tiff:md5,1328dd8ea02922375719f38e3de516ca", + "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", + "scalefactors_json.json:md5,4ce0b83ceb37ea83dfa9546f46512fd0", + "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", + "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", + "tissue_positions.parquet:md5,7da6c10b7858c1b7eef4412e9418a81c", + "clusters.csv:md5,33e68b2ac4f23b949f6e06065bac5e13", + "clusters.csv:md5,2bdb92f776afbb8d16fd05cbb7642ac9", + "clusters.csv:md5,cacfbe32cdd8bfa4ff4f43afbbadd2bd", + "clusters.csv:md5,23a5200080ffc313c226598cc9ebc013", + "clusters.csv:md5,28bd7a610bc231179044d4f803e03c83", + "clusters.csv:md5,28a973fba1b2e537b2ed329d307f96d8", + "clusters.csv:md5,4d3f82fc468cc2f66c5cba9f99644d0d", + "clusters.csv:md5,4a6a4eb5b1e7347e879a75e620207399", + "clusters.csv:md5,b72fba5accda209349a74161cd80b66e", + "clusters.csv:md5,56e786b7caf256f3fdae080599b9df19", + "differential_expression.csv:md5,e88934c82df8feda578464705407d6a1", + "differential_expression.csv:md5,f86baad8d3b85c9a662df80566114b4b", + "differential_expression.csv:md5,1ec1a899a52b55bf76cf2e8642f7f87e", + "differential_expression.csv:md5,326a23b2785d65689865e4cad56bf85f", + "differential_expression.csv:md5,8e0b189ad6685485927bc13388722eff", + "differential_expression.csv:md5,797413d66d7a14e09e750dfae793ab47", + "differential_expression.csv:md5,006b412987feecd73ab1e322869489b0", + "differential_expression.csv:md5,dfb5f98340cba636ca16f236603dbef4", + "differential_expression.csv:md5,b304a7500e32f090e7705f730a10e2b0", + "differential_expression.csv:md5,fb3f5bc3776ac2e6d67decdcb32dcd24", + "components.csv:md5,1df663a266f1a2fd0796862148aba19b", + "dispersion.csv:md5,7a3d38d43bc8d6b328de90cfbe90660c", + "features_selected.csv:md5,708baf61d4532a9aab66d2446475ab7c", + "projection.csv:md5,cee8321db30438b58cd200d78dea2647", + "variance.csv:md5,a0c5fe923c91ac9b51dfa4fb9f570500", + "projection.csv:md5,7dc88f726fbde3712f11ea02f057f6ac", + "filtered_feature_bc_matrix.h5:md5,5c1578fe690b046a2335e864312fca41", + "barcodes.tsv.gz:md5,ec696f2a78ecb6aa4ff17afad0ebe075", + "features.tsv.gz:md5,53092c021f35473a120886f08871c246", + "matrix.mtx.gz:md5,8c9e0abfb0426a48db10062fd7344cbd", + "raw_feature_bc_matrix.h5:md5,8902051359ec4289f646d928fb544c82", + "barcodes.tsv.gz:md5,9513855a385313d295d275f0caaa63e6", + "features.tsv.gz:md5,cf40b533d41bbb2f197ed8d75b3a9a67", + "matrix.mtx.gz:md5,adf9f0f95131da595d6fb640e4b227ca", + "aligned_fiducials.jpg:md5,edde03debc796feed00857c268c6f917", + "aligned_tissue_image.jpg:md5,aa844ffd606a7070c5d0de847c723b76", + "cytassist_image.tiff:md5,1328dd8ea02922375719f38e3de516ca", + "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", + "scalefactors_json.json:md5,82571fd942409abcfb7b0bd17fa63faf", + "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", + "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", + "tissue_positions.parquet:md5,36c859a18ff9c86cd1279ac96c433627", + "cloupe_008um.cloupe:md5,34e3fbea7223136ba13c99c51d7a357f", + "feature_slice.h5:md5,3be11985be80bee6bae0ec7721280c8a", + "metrics_summary.csv:md5,bade113e17b62be4e41cd3c98b6e1c81", + "molecule_info.h5:md5,a71fd0a61e37b870fb77f1cb4269efdb", + "possorted_genome_bam.bam:md5,c9e1bfe554e6762bae55bf733cb9f221", + "possorted_genome_bam.bam.bai:md5,76e1653a2f2620e3e6dfb4fee4d4171d", "probe_set.csv:md5,a74f1583689de3c9f95164b2fc090194", - "aligned_fiducials.jpg:md5,0dc851301d56a3f07461859708d0a61e", - "cytassist_image.tiff:md5,31ae39c49e9c7cd5e2e57b35716b6226", - "detected_tissue_image.jpg:md5,608365a653ccd04233e9793c1f61dc43", - "tissue_hires_image.png:md5,5f2ffe75da94ba30cc4768ad8347412a", - "tissue_lowres_image.png:md5,21904e9bfe6a26aa8cba7701f6de5eae", - "web_summary.html:md5,982c35715936d3606020ccbef349cfaa", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz:md5,5ea6777de2e350b258c1cebffedc63d1", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz:md5,bda7775a968d74071a81d4ec4873c576", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt:md5,ce9fb1d512ee9aca91c17226c6e31f6f", - "chr21.fa:md5,a7a8ee17d735d23160137c7793f9f872", - "chr21.gtf:md5,d2db40ac04bf0bce710a304139ca297b", - "fastqc-status-check-heatmap.txt:md5,a40e10921dbcbf44cd7b397576d46e19", - "fastqc_overrepresented_sequences_plot.txt:md5,72fb8e7df1d16db22d4244108391693d", - "fastqc_per_base_n_content_plot.txt:md5,c0225f321a6feaf0d9e431f47033ada2", - "fastqc_per_base_sequence_quality_plot.txt:md5,2126788aa79d12f97661946b52e990c3", - "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,752257ff1285d7238743d23a5b37f1ec", - "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,7eb313bb89b4693e34870032f693f6fa", - "fastqc_per_sequence_quality_scores_plot.txt:md5,391eec51723dcecd6ae72c85fd50e03a", - "fastqc_sequence_counts_plot.txt:md5,26a428fe819866dff153983de490f4e4", - "fastqc_sequence_duplication_levels_plot.txt:md5,79c07fa860890c611607352d89d64ea2", + "aligned_fiducials.jpg:md5,edde03debc796feed00857c268c6f917", + "aligned_tissue_image.jpg:md5,aa844ffd606a7070c5d0de847c723b76", + "cytassist_image.tiff:md5,1328dd8ea02922375719f38e3de516ca", + "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", + "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", + "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", + "web_summary.html:md5,c319a8dc7b2f4ddda795f4ac23b414db", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz:md5,ffa0655a818f9c2e1a0d7bc7aa789d56", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz:md5,23d07d8f5333d96fed828203c2d1c840", + "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt:md5,9d29644c14ccc39eb5dde2d6d6b66398", + "fastqc-status-check-heatmap.txt:md5,4310b189f786b63e554e1db93160a108", + "fastqc_overrepresented_sequences_plot.txt:md5,29526e23692ce67f210bebbbc649b78c", + "fastqc_per_base_n_content_plot.txt:md5,60c30869b5226368bf9e42881e1f06b8", + "fastqc_per_base_sequence_quality_plot.txt:md5,4fdbdc0489bca53bdf3463a7d47154e6", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,6c38ba4c544c7f71f5290c30359658b7", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,1e4db0b910084bffea76ddd16d5935b5", + "fastqc_per_sequence_quality_scores_plot.txt:md5,d5e2d3fe59e5ef3f3664febe74e3549d", + "fastqc_sequence_counts_plot.txt:md5,19494d2928422e419de7a9ea447327f8", + "fastqc_sequence_duplication_levels_plot.txt:md5,b0bb0df056d4a31dcaec480e98d94939", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", - "multiqc_fastqc.txt:md5,814e07df7cca15a49026ba5af4a25e56", - "multiqc_general_stats.txt:md5,10d8597764dcb14f7b28d70811effeb2", - "chr21.filtered.gtf:md5,d2db40ac04bf0bce710a304139ca297b", - "genome.fa:md5,a7a8ee17d735d23160137c7793f9f872", - "genome.fa.fai:md5,a7e52efeee796ff94ede575403a31586", - "genes.gtf.gz:md5,d2db40ac04bf0bce710a304139ca297b", - "reference.json:md5,5b5a497cd6bd824b68e305176e9f7625", - "Genome:md5,ddad1b8708d0fe4624f0d945f1e53381", - "SA:md5,f01f7cd63c62a6b69ad49a9919653a9a", - "SAindex:md5,fd7b706c62781e92b759d5e8aa5151a7", - "chrLength.txt:md5,b0be0a56ddefa84552742c72d4859eac", - "chrName.txt:md5,e99d7d1051eee43ceab5563c2d09fcee", - "chrNameLength.txt:md5,c985a141685e8431ec27c782816cb744", - "chrStart.txt:md5,6925b594ea2eeb964ba87cd6d42ab98f", - "exonGeTrInfo.tab:md5,19506a649344a3dbb33bfa47d794851b", - "exonInfo.tab:md5,30350358691756b50407c0f8cb6ce5b3", - "geneInfo.tab:md5,67cb5583677c9b6f4c5490c6a89dba87", - "genomeParameters.txt:md5,195a73612305560d9d2c68c046518727", - "sjdbInfo.txt:md5,a544cc53ebf721c5d55d1995abcc907e", - "sjdbList.fromGTF.out.tab:md5,3427299e4047e7ba0404e07fb0ac03ee", - "sjdbList.out.tab:md5,874227af46e44a89ec5fdbe25d3154a5", - "transcriptInfo.tab:md5,a86211e41ef8fd5bcce871ebbbe39638" + "multiqc_fastqc.txt:md5,6c8ca51029ac53d1eb6d9ea10817f8bc", + "multiqc_general_stats.txt:md5,cf51b986de00e0ef3a35b82d16c5e504", + "genome.fa:md5,f315020d899597c1b57e5fe9f60f4c3e", + "genome.fa.fai:md5,3520cd30e1b100e55f578db9c855f685", + "genes.gtf.gz:md5,50fc877b1c53b36b3b413aff88bda48c", + "reference.json:md5,0574f4395bb98647a69feccde59fc656", + "Genome:md5,22102926fadf5890e905ca71b2da3f35", + "SA:md5,bcf3e1a855783105150b46c905465333", + "SAindex:md5,b93fb07d342e6c32a00ebc4311c0ad38", + "chrLength.txt:md5,c81f40f27e72606d7d07097c1d56a5b5", + "chrName.txt:md5,5ae68a67b70976ee95342a7451cb5af1", + "chrNameLength.txt:md5,b190587cae0531f3cf25552d8aa674db", + "chrStart.txt:md5,bc73df776dd3d5bb9cfcbcba60880519", + "exonGeTrInfo.tab:md5,72d4dd88d25e3c5b0bb72b12b4ac99a8", + "exonInfo.tab:md5,0d560290fab688b7268d88d5494bf9fe", + "geneInfo.tab:md5,8b608537307443ffaee4927d2b428805", + "genomeParameters.txt:md5,a5ca08289b86e0d906683587cbc1049c", + "sjdbInfo.txt:md5,5690ea9d9f09f7ff85b7fd47bd234903", + "sjdbList.fromGTF.out.tab:md5,8760c33e966dad0b39f440301ebbdee4", + "sjdbList.out.tab:md5,9e4f991abbbfeb3935a2bb21b9e258f1", + "transcriptInfo.tab:md5,0c3a5adb49d15e5feff81db8e29f2e36" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.8" + "nextflow": "25.04.3" }, - "timestamp": "2025-11-03T15:37:00.437153276" + "timestamp": "2025-11-04T12:06:58.900086215" } } \ No newline at end of file From eecb71166a7f7d4c15a9ae882566e315022e86df Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 13:24:10 +0100 Subject: [PATCH 11/18] Increase resource limits for CPUs and memory --- conf/test.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/test.config b/conf/test.config index 268cafb..8d049f3 100644 --- a/conf/test.config +++ b/conf/test.config @@ -12,8 +12,8 @@ process { resourceLimits = [ - cpus: 2, - memory: '15.GB', + cpus: 4, + memory: '16.GB', time: '1.h' ] } From e4944a6a7b46edbc7c7d2e6f0b66db3fc5e491d3 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 13:26:20 +0100 Subject: [PATCH 12/18] Reduce memory limit from 16GB to 12GB --- conf/test.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test.config b/conf/test.config index 8d049f3..00e70c1 100644 --- a/conf/test.config +++ b/conf/test.config @@ -13,7 +13,7 @@ process { resourceLimits = [ cpus: 4, - memory: '16.GB', + memory: '12.GB', time: '1.h' ] } From 158593c3cff7e9a7b621daea8fea050b1ca614bb Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 14:08:21 +0100 Subject: [PATCH 13/18] fixing output organization --- conf/modules.config | 61 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 3df6b91..ba3c64f 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -18,8 +18,34 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: FASTQC { - ext.args = '--quiet' + withName: 'GUNZIP_FASTA' { + publishDir = [ + enabled: false + ] + } + + withName: 'GUNZIP_GTF' { + publishDir = [ + enabled: false + ] + } + + withName: 'GUNZIP_GFF' { + publishDir = [ + enabled: false + ] + } + + withName: 'UNTAR_SPACERANGER_REF' { + publishDir = [ + enabled: false + ] + } + + withName: 'GFFREAD' { + publishDir = [ + enabled: false + ] } withName: SPACERANGER_MKGTF { @@ -55,11 +81,36 @@ process { ] } + withName: 'CAT_FASTQ' { + publishDir = [ + enabled: false + ] + } + + withName: 'FQ_LINT' { + publishDir = [ + enabled: false + ] + } + + withName: FASTQC { + ext.args = '--quiet' + } + withName: SPACERANGER_COUNT { publishDir = [ - path: { "${params.outdir}/${meta.id}/count" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + [ + path: { "${params.outdir}/count/" }, + mode: params.publish_dir_mode, + pattern: "outs/web_summary.html", + saveAs: { "${meta.id}_web_summary.html" } + ], + [ + path: { "${params.outdir}/count/${meta.id}" }, + mode: params.publish_dir_mode, + pattern: "outs/*", + saveAs: { filename.split('/')[1] } + ] ] ext.args = "--create-bam true" time = { 240.h * task.attempt } From 0ee8d6de60f9ef1a27a3230a425b33c7d9f6e14f Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 16:09:07 +0100 Subject: [PATCH 14/18] fix closure in SPACERANGER_COUNT --- conf/modules.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules.config b/conf/modules.config index ba3c64f..1727ba4 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -109,7 +109,7 @@ process { path: { "${params.outdir}/count/${meta.id}" }, mode: params.publish_dir_mode, pattern: "outs/*", - saveAs: { filename.split('/')[1] } + saveAs: { filename -> filename.split('/')[1] } ] ] ext.args = "--create-bam true" From fb8e04a8b65d25a23397d5831e49126b9276da87 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 16:09:26 +0100 Subject: [PATCH 15/18] unstable output from cellranger excluded from test --- tests/.nftignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/.nftignore b/tests/.nftignore index e128a12..c88901e 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -10,3 +10,6 @@ multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html fastqc/*_fastqc.{html,zip} pipeline_info/*.{html,json,txt,yml} +count/*/*.cloupe +count/*/molecule_info.h5 +count/*web_summary.html From b887354d0a3fd5c6bee0fde76aeebd1d6abea384 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 17:56:15 +0100 Subject: [PATCH 16/18] copying all subfolders from spaceranger output --- conf/modules.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 1727ba4..65816b7 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -108,8 +108,8 @@ process { [ path: { "${params.outdir}/count/${meta.id}" }, mode: params.publish_dir_mode, - pattern: "outs/*", - saveAs: { filename -> filename.split('/')[1] } + pattern: "outs/**", + saveAs: { filename -> filename.contains('/') ? filename.substring(filename.indexOf('/') + 1) : filename } ] ] ext.args = "--create-bam true" From a987f12a69dfdadc49153add24fb5aff78773555 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Tue, 4 Nov 2025 19:37:12 +0100 Subject: [PATCH 17/18] removed loupe files from test --- tests/.nftignore | 2 +- tests/default.nf.test.snap | 436 ++++++++++++++++--------------------- 2 files changed, 192 insertions(+), 246 deletions(-) diff --git a/tests/.nftignore b/tests/.nftignore index c88901e..b15cfe6 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -10,6 +10,6 @@ multiqc/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/multiqc_report.html fastqc/*_fastqc.{html,zip} pipeline_info/*.{html,json,txt,yml} -count/*/*.cloupe +count/**.cloupe count/*/molecule_info.h5 count/*web_summary.html diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index a0549ec..7ccfeb9 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -22,203 +22,198 @@ } }, [ - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/filtered_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/raw_probe_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/aligned_fiducials.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/aligned_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/cytassist_image.tiff", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/detected_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/scalefactors_json.json", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_hires_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_lowres_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_002um/spatial/tissue_positions.parquet", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/components.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/dispersion.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/features_selected.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/projection.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/variance.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap/gene_expression_2_components", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/analysis/umap/gene_expression_2_components/projection.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/cloupe.cloupe", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/filtered_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/raw_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/aligned_fiducials.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/aligned_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/cytassist_image.tiff", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/detected_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/scalefactors_json.json", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_hires_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_lowres_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_008um/spatial/tissue_positions.parquet", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/components.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/dispersion.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/features_selected.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/projection.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/variance.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap/gene_expression_2_components", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/analysis/umap/gene_expression_2_components/projection.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/filtered_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/barcodes.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/features.tsv.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/raw_feature_bc_matrix/matrix.mtx.gz", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/aligned_fiducials.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/aligned_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/cytassist_image.tiff", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/detected_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/scalefactors_json.json", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_hires_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_lowres_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/binned_outputs/square_016um/spatial/tissue_positions.parquet", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/cloupe_008um.cloupe", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/feature_slice.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/metrics_summary.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/molecule_info.h5", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/possorted_genome_bam.bam", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/possorted_genome_bam.bam.bai", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/probe_set.csv", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/aligned_fiducials.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/aligned_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/cytassist_image.tiff", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/detected_tissue_image.jpg", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/tissue_hires_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/spatial/tissue_lowres_image.png", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/count/outs/web_summary.html", - "cat", - "cat/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz", - "cat/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz", + "count", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/filtered_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/filtered_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/filtered_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/filtered_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/raw_probe_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/aligned_fiducials.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/aligned_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/cytassist_image.tiff", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/detected_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/scalefactors_json.json", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/tissue_hires_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/tissue_lowres_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_002um/spatial/tissue_positions.parquet", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_graphclust/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/components.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/dispersion.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/features_selected.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/projection.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/pca/gene_expression_10_components/variance.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/umap", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/umap/gene_expression_2_components", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/analysis/umap/gene_expression_2_components/projection.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/cloupe.cloupe", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/filtered_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/filtered_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/filtered_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/filtered_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/raw_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/raw_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/raw_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/raw_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/raw_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/aligned_fiducials.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/aligned_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/cytassist_image.tiff", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/detected_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/scalefactors_json.json", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/tissue_hires_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/tissue_lowres_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_008um/spatial/tissue_positions.parquet", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_graphclust/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_10_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_2_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_3_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_4_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_5_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_6_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_7_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_8_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/clustering/gene_expression_kmeans_9_clusters/clusters.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_graphclust/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_10_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_2_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_3_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_4_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_5_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_6_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_7_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_8_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/diffexp/gene_expression_kmeans_9_clusters/differential_expression.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/components.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/dispersion.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/features_selected.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/projection.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/pca/gene_expression_10_components/variance.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/umap", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/umap/gene_expression_2_components", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/analysis/umap/gene_expression_2_components/projection.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/filtered_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/filtered_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/filtered_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/filtered_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/filtered_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/raw_feature_bc_matrix", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/raw_feature_bc_matrix.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/raw_feature_bc_matrix/barcodes.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/raw_feature_bc_matrix/features.tsv.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/raw_feature_bc_matrix/matrix.mtx.gz", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/aligned_fiducials.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/aligned_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/cytassist_image.tiff", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/detected_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/scalefactors_json.json", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/tissue_hires_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/tissue_lowres_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/binned_outputs/square_016um/spatial/tissue_positions.parquet", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/cloupe_008um.cloupe", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/feature_slice.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/metrics_summary.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/molecule_info.h5", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/possorted_genome_bam.bam", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/possorted_genome_bam.bam.bai", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/probe_set.csv", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/aligned_fiducials.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/aligned_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/cytassist_image.tiff", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/detected_tissue_image.jpg", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/tissue_hires_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/spatial/tissue_lowres_image.png", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2/web_summary.html", + "count/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_web_summary.html", "fastqc", "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1_fastqc.html", "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1_fastqc.zip", "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2_fastqc.html", "fastqc/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2_fastqc.zip", - "fq", - "fq/Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_data/fastqc-status-check-heatmap.txt", @@ -279,31 +274,7 @@ "multiqc/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", "multiqc/multiqc_report.html", "pipeline_info", - "pipeline_info/spatialomics_software_mqc_versions.yml", - "untar", - "untar/GRCh38", - "untar/GRCh38/fasta", - "untar/GRCh38/fasta/genome.fa", - "untar/GRCh38/fasta/genome.fa.fai", - "untar/GRCh38/genes", - "untar/GRCh38/genes/genes.gtf.gz", - "untar/GRCh38/reference.json", - "untar/GRCh38/star", - "untar/GRCh38/star/Genome", - "untar/GRCh38/star/SA", - "untar/GRCh38/star/SAindex", - "untar/GRCh38/star/chrLength.txt", - "untar/GRCh38/star/chrName.txt", - "untar/GRCh38/star/chrNameLength.txt", - "untar/GRCh38/star/chrStart.txt", - "untar/GRCh38/star/exonGeTrInfo.tab", - "untar/GRCh38/star/exonInfo.tab", - "untar/GRCh38/star/geneInfo.tab", - "untar/GRCh38/star/genomeParameters.txt", - "untar/GRCh38/star/sjdbInfo.txt", - "untar/GRCh38/star/sjdbList.fromGTF.out.tab", - "untar/GRCh38/star/sjdbList.out.tab", - "untar/GRCh38/star/transcriptInfo.tab" + "pipeline_info/spatialomics_software_mqc_versions.yml" ], [ "filtered_feature_bc_matrix.h5:md5,0c04bf2ea059df078bec3e765b1f3105", @@ -349,7 +320,6 @@ "projection.csv:md5,cf8f37dcfe6c718b28a8c13c9eca6dc6", "variance.csv:md5,fc0451575fe03683e19bfc7e1981be3c", "projection.csv:md5,61af621c1e89a2d8d67c74f2d412d548", - "cloupe.cloupe:md5,34e3fbea7223136ba13c99c51d7a357f", "filtered_feature_bc_matrix.h5:md5,6363415f0bfdbdae9a3eab5c8d838ae8", "barcodes.tsv.gz:md5,2f707eec36c8c8478071836e375c589d", "features.tsv.gz:md5,53092c021f35473a120886f08871c246", @@ -408,10 +378,8 @@ "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", "tissue_positions.parquet:md5,36c859a18ff9c86cd1279ac96c433627", - "cloupe_008um.cloupe:md5,34e3fbea7223136ba13c99c51d7a357f", "feature_slice.h5:md5,3be11985be80bee6bae0ec7721280c8a", "metrics_summary.csv:md5,bade113e17b62be4e41cd3c98b6e1c81", - "molecule_info.h5:md5,a71fd0a61e37b870fb77f1cb4269efdb", "possorted_genome_bam.bam:md5,c9e1bfe554e6762bae55bf733cb9f221", "possorted_genome_bam.bam.bai:md5,76e1653a2f2620e3e6dfb4fee4d4171d", "probe_set.csv:md5,a74f1583689de3c9f95164b2fc090194", @@ -421,10 +389,7 @@ "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", - "web_summary.html:md5,c319a8dc7b2f4ddda795f4ac23b414db", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_1.merged.fastq.gz:md5,ffa0655a818f9c2e1a0d7bc7aa789d56", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2_2.merged.fastq.gz:md5,23d07d8f5333d96fed828203c2d1c840", - "Visium_HD_Human_Lung_Cancer_HD_Only_Experiment2.fq_lint.txt:md5,9d29644c14ccc39eb5dde2d6d6b66398", + "web_summary.html:md5,43a960f3933c57e192bc7087bb9bef0c", "fastqc-status-check-heatmap.txt:md5,4310b189f786b63e554e1db93160a108", "fastqc_overrepresented_sequences_plot.txt:md5,29526e23692ce67f210bebbbc649b78c", "fastqc_per_base_n_content_plot.txt:md5,60c30869b5226368bf9e42881e1f06b8", @@ -436,32 +401,13 @@ "fastqc_sequence_duplication_levels_plot.txt:md5,b0bb0df056d4a31dcaec480e98d94939", "multiqc_citations.txt:md5,4c806e63a283ec1b7e78cdae3a923d4f", "multiqc_fastqc.txt:md5,6c8ca51029ac53d1eb6d9ea10817f8bc", - "multiqc_general_stats.txt:md5,cf51b986de00e0ef3a35b82d16c5e504", - "genome.fa:md5,f315020d899597c1b57e5fe9f60f4c3e", - "genome.fa.fai:md5,3520cd30e1b100e55f578db9c855f685", - "genes.gtf.gz:md5,50fc877b1c53b36b3b413aff88bda48c", - "reference.json:md5,0574f4395bb98647a69feccde59fc656", - "Genome:md5,22102926fadf5890e905ca71b2da3f35", - "SA:md5,bcf3e1a855783105150b46c905465333", - "SAindex:md5,b93fb07d342e6c32a00ebc4311c0ad38", - "chrLength.txt:md5,c81f40f27e72606d7d07097c1d56a5b5", - "chrName.txt:md5,5ae68a67b70976ee95342a7451cb5af1", - "chrNameLength.txt:md5,b190587cae0531f3cf25552d8aa674db", - "chrStart.txt:md5,bc73df776dd3d5bb9cfcbcba60880519", - "exonGeTrInfo.tab:md5,72d4dd88d25e3c5b0bb72b12b4ac99a8", - "exonInfo.tab:md5,0d560290fab688b7268d88d5494bf9fe", - "geneInfo.tab:md5,8b608537307443ffaee4927d2b428805", - "genomeParameters.txt:md5,a5ca08289b86e0d906683587cbc1049c", - "sjdbInfo.txt:md5,5690ea9d9f09f7ff85b7fd47bd234903", - "sjdbList.fromGTF.out.tab:md5,8760c33e966dad0b39f440301ebbdee4", - "sjdbList.out.tab:md5,9e4f991abbbfeb3935a2bb21b9e258f1", - "transcriptInfo.tab:md5,0c3a5adb49d15e5feff81db8e29f2e36" + "multiqc_general_stats.txt:md5,cf51b986de00e0ef3a35b82d16c5e504" ] ], "meta": { "nf-test": "0.9.2", "nextflow": "25.04.3" }, - "timestamp": "2025-11-04T12:06:58.900086215" + "timestamp": "2025-11-04T18:51:17.325765047" } } \ No newline at end of file From 63bb9a44e26898e00faf5109cedb237821945734 Mon Sep 17 00:00:00 2001 From: Matteo Bonfanti Date: Wed, 5 Nov 2025 16:38:49 +0100 Subject: [PATCH 18/18] removing web summary from snap --- tests/.nftignore | 2 +- tests/default.nf.test.snap | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/.nftignore b/tests/.nftignore index b15cfe6..d62a97a 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -12,4 +12,4 @@ fastqc/*_fastqc.{html,zip} pipeline_info/*.{html,json,txt,yml} count/**.cloupe count/*/molecule_info.h5 -count/*web_summary.html +count/**web_summary.html diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 7ccfeb9..782279a 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -389,7 +389,6 @@ "detected_tissue_image.jpg:md5,d4ba1f337bbf9a6d4028139b8acb2411", "tissue_hires_image.png:md5,e86177781b07119c5a680ea4af1d1d0d", "tissue_lowres_image.png:md5,9aad2a56128c450c76fabbb44fb4c85a", - "web_summary.html:md5,43a960f3933c57e192bc7087bb9bef0c", "fastqc-status-check-heatmap.txt:md5,4310b189f786b63e554e1db93160a108", "fastqc_overrepresented_sequences_plot.txt:md5,29526e23692ce67f210bebbbc649b78c", "fastqc_per_base_n_content_plot.txt:md5,60c30869b5226368bf9e42881e1f06b8", @@ -406,8 +405,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.3" + "nextflow": "25.04.8" }, - "timestamp": "2025-11-04T18:51:17.325765047" + "timestamp": "2025-11-05T15:21:34.914957103" } } \ No newline at end of file