From c458c4f04555bcea1c89bd7d84b3fdcc91e1819a Mon Sep 17 00:00:00 2001 From: Kraftfahrzeughaftpflichtversicherung Date: Fri, 24 Oct 2025 15:13:39 +0200 Subject: [PATCH 1/5] mapmycells first batch --- .../mapmycells/config.vsh.yaml | 40 ++++++++++ .../mapmycells/script.py | 78 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 src/methods_cell_type_annotation/mapmycells/config.vsh.yaml create mode 100644 src/methods_cell_type_annotation/mapmycells/script.py diff --git a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml new file mode 100644 index 00000000..1c7507f1 --- /dev/null +++ b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml @@ -0,0 +1,40 @@ +name: mapmycells +label: "mapmycells" +summary: "Mapping of annotations from single-cell to spatial using moscot" +description: "Mapping of annotations from single-cell to spatial using moscot" +links: + documentation: 'https://github.com/AllenInstitute/cell_type_mapper' + repository: 'https://github.com/AllenInstitute/cell_type_mapper' +references: + doi: "10.1038/s41586-023-06812-z" + +__merge__: /src/api/comp_method_cell_type_annotation.yaml + +arguments: + - name: --temp + type: string + default: './temp/mapmycells/' + description: "Temporary directory for mapmycells intermediate files" + +resources: + - type: python_script + path: script.py + +engines: + - type: docker + image: openproblems/base_python:1 + __merge__: + - /src/base/setup_spatialdata_partial.yaml + - /src/base/setup_txsim_partial.yaml + setup: + - type: python + pypi: + - numpy + - git+https://github.com/AllenInstitute/cell_type_mapper.git + - type: native + +runners: + - type: executable + - type: nextflow + directives: + label: [ hightime, midcpu, veryhighmem, gpu ] \ No newline at end of file diff --git a/src/methods_cell_type_annotation/mapmycells/script.py b/src/methods_cell_type_annotation/mapmycells/script.py new file mode 100644 index 00000000..129618db --- /dev/null +++ b/src/methods_cell_type_annotation/mapmycells/script.py @@ -0,0 +1,78 @@ +import spatialdata as sd +import anndata as ad +import os +import subprocess +import json +## VIASH START +par = { + 'input_spatial_normalized_counts': 'resources_test/task_ist_preprocessing/mouse_brain_combined/spatial_normalized_counts.h5ad', + 'input_scrnaseq_reference': '.task_ist_preprocessing/resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/', + "temp": './temp/mapmycells/', + "output": 'output.h5ad' +} +## VIASH END + +#sdata = sd.read_zarr(par["input"]) +if not os.path.exists(par["temp"]): + os.makedirs(par["temp"]) + +adata = ad.read_h5ad(par['input_scrnaseq_reference']) +adata.X = adata.layers['counts'] +adata.write_h5ad(f'{par["temp"]}sc_adata_processed.h5ad') + + +hierarchy_string = '["cell_type"]' + +command = [ + "python", + "-m", + "cell_type_mapper.cli.precompute_stats_scrattch", + "--h5ad_path", + f'{par["temp"]}sc_adata_processed.h5ad', + "--hierarchy", + hierarchy_string, + "--output_path", + f'{par["temp"]}precomputed_stats.h5ad' + ] + +subprocess.run(command) + +genes= adata.var.index.values.tolist() +data = { + "None": genes +} +genes_file_path = os.path.join(par["temp"],"genes.json") +with open(genes_file_path, "w") as json_file: + json.dump(data, json_file, indent=2) + +command = [ + "python", + "-m", + "cell_type_mapper.cli.from_specified_markers", + "--query_path", + #args.spatial, + "--type_assignment.normalization", + "raw", + + "--precomputed_stats.path", + f'{par["temp"]}precomputed_stats.h5ad', + "--query_markers.serialized_lookup", + genes_file_path, + "--csv_result_path", + #os.path.join(args.temp_dir,"results.csv"), + "--extended_result_path", + #os.path.join(args.temp_dir,"extended_results.json"), + #mapping onto a tree with only one taxonomic level; no bootstrapping + "--flatten", + "True", + "--type_assignment.bootstrap_iteration", + "1", + "--type_assignment.bootstrap_factor", + "1.0" + + ] + +#subprocess.run(command) + +outputsdata = adata +outputsdata.write_h5ad(par['output']) \ No newline at end of file From b222da29a3b03834f05f59551d2903a15abb1e43 Mon Sep 17 00:00:00 2001 From: Kraftfahrzeughaftpflichtversicherung Date: Mon, 27 Oct 2025 15:06:32 +0100 Subject: [PATCH 2/5] 2nd batch of changes --- .../mapmycells/config.vsh.yaml | 11 ++- .../mapmycells/script.py | 82 +++++++++++++++---- 2 files changed, 74 insertions(+), 19 deletions(-) diff --git a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml index 1c7507f1..f208969d 100644 --- a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml +++ b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml @@ -11,10 +11,19 @@ references: __merge__: /src/api/comp_method_cell_type_annotation.yaml arguments: + - name: --input + type: string + default: './resources_test/common/2023_10x_mouse_brain_xenium_rep1/dataset.zarr' + description: "Path to raw counts" - name: --temp type: string - default: './temp/mapmycells/' + default: './task_ist_preprocessing/temp/mapmycells/' description: "Temporary directory for mapmycells intermediate files" + - name: --cell_type_column + type: string + default: 'celltype' + description: "Column with cell type labels" + resources: - type: python_script diff --git a/src/methods_cell_type_annotation/mapmycells/script.py b/src/methods_cell_type_annotation/mapmycells/script.py index 129618db..1b2c2747 100644 --- a/src/methods_cell_type_annotation/mapmycells/script.py +++ b/src/methods_cell_type_annotation/mapmycells/script.py @@ -3,26 +3,57 @@ import os import subprocess import json +import pandas as pd ## VIASH START par = { 'input_spatial_normalized_counts': 'resources_test/task_ist_preprocessing/mouse_brain_combined/spatial_normalized_counts.h5ad', - 'input_scrnaseq_reference': '.task_ist_preprocessing/resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/', - "temp": './temp/mapmycells/', - "output": 'output.h5ad' + 'input_scrnaseq_reference': './resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/dataset.h5ad', + "temp": './task_ist_preprocessing/temp/mapmycells/', + 'cell_type_column': 'celltype', + "output": 'output.h5ad' } ## VIASH END -#sdata = sd.read_zarr(par["input"]) + if not os.path.exists(par["temp"]): os.makedirs(par["temp"]) +sdata= ad.read_h5ad(par['input_spatial_normalized_counts']) adata = ad.read_h5ad(par['input_scrnaseq_reference']) -adata.X = adata.layers['counts'] -adata.write_h5ad(f'{par["temp"]}sc_adata_processed.h5ad') + +if "counts" in adata.layers: + adata.X = adata.layers["counts"] + +mapping = dict(zip(adata.var["feature_name"], adata.var["feature_id"])) +sdata.var.index = sdata.var.index.map(mapping) +adata.var_names_make_unique() +sdata.var.index = sdata.var.index.astype(str) +sdata.var_names_make_unique() +common_genes = list(set(sdata.var.index).intersection(adata.var.index)) + +adata = adata[:, common_genes] + + + +sc_path = f'{par["temp"]}sc_adata_processed.h5ad' +if os.path.exists(sc_path): + os.remove(sc_path) +adata.write_h5ad(sc_path) + +# 🧹 Check before writing sp_processed.h5ad +sp_path = f'{par["temp"]}sp_processed.h5ad' +if os.path.exists(sp_path): + os.remove(sp_path) +sdata[:, common_genes].write_h5ad(sp_path) + hierarchy_string = '["cell_type"]' +precomputed_path = f'{par["temp"]}precomputed_stats.h5ad' +if os.path.exists(precomputed_path): + os.remove(precomputed_path) + command = [ "python", "-m", @@ -37,31 +68,33 @@ subprocess.run(command) -genes= adata.var.index.values.tolist() -data = { - "None": genes -} + + +data = {"None": common_genes} genes_file_path = os.path.join(par["temp"],"genes.json") +if os.path.exists(genes_file_path): + os.remove(genes_file_path) + with open(genes_file_path, "w") as json_file: json.dump(data, json_file, indent=2) + command = [ "python", "-m", "cell_type_mapper.cli.from_specified_markers", "--query_path", - #args.spatial, + f'{par["temp"]}sp_processed.h5ad', "--type_assignment.normalization", - "raw", - + "log2CPM", "--precomputed_stats.path", f'{par["temp"]}precomputed_stats.h5ad', "--query_markers.serialized_lookup", genes_file_path, "--csv_result_path", - #os.path.join(args.temp_dir,"results.csv"), + os.path.join(par["temp"],"results.csv"), "--extended_result_path", - #os.path.join(args.temp_dir,"extended_results.json"), + os.path.join(par["temp"], "extended_results.json"), #mapping onto a tree with only one taxonomic level; no bootstrapping "--flatten", "True", @@ -71,8 +104,21 @@ "1.0" ] + +results_csv = os.path.join(par["temp"], "results.csv") +if os.path.exists(results_csv): + os.remove(results_csv) + +extended_json = os.path.join(par["temp"], "extended_results.json") +if os.path.exists(extended_json): + os.remove(extended_json) + -#subprocess.run(command) +subprocess.run(command) + +label_name = 'cell_type' +annotation_df = pd.read_csv(f'{par["temp"]}results.csv', skiprows=3) + +sdata.obs[par['cell_type_column']] = annotation_df['cell_type_name'] -outputsdata = adata -outputsdata.write_h5ad(par['output']) \ No newline at end of file +sdata.write_h5ad(par['output']) \ No newline at end of file From f55b3158d2194866d4a81df939565e5021715833 Mon Sep 17 00:00:00 2001 From: Kraftfahrzeughaftpflichtversicherung Date: Wed, 29 Oct 2025 14:36:14 +0100 Subject: [PATCH 3/5] code to test --- .../mapmycells/config.vsh.yaml | 6 +- .../mapmycells/script.py | 88 ++++++++----------- 2 files changed, 36 insertions(+), 58 deletions(-) diff --git a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml index f208969d..f74773aa 100644 --- a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml +++ b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml @@ -15,13 +15,9 @@ arguments: type: string default: './resources_test/common/2023_10x_mouse_brain_xenium_rep1/dataset.zarr' description: "Path to raw counts" - - name: --temp - type: string - default: './task_ist_preprocessing/temp/mapmycells/' - description: "Temporary directory for mapmycells intermediate files" - name: --cell_type_column type: string - default: 'celltype' + default: 'cell_type' description: "Column with cell type labels" diff --git a/src/methods_cell_type_annotation/mapmycells/script.py b/src/methods_cell_type_annotation/mapmycells/script.py index 1b2c2747..46c91270 100644 --- a/src/methods_cell_type_annotation/mapmycells/script.py +++ b/src/methods_cell_type_annotation/mapmycells/script.py @@ -1,24 +1,24 @@ -import spatialdata as sd import anndata as ad import os import subprocess import json import pandas as pd +from pathlib import Path ## VIASH START par = { 'input_spatial_normalized_counts': 'resources_test/task_ist_preprocessing/mouse_brain_combined/spatial_normalized_counts.h5ad', - 'input_scrnaseq_reference': './resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/dataset.h5ad', - "temp": './task_ist_preprocessing/temp/mapmycells/', - 'cell_type_column': 'celltype', + 'input_scrnaseq_reference': 'resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/dataset.h5ad', + 'cell_type_column': 'cell_type', "output": 'output.h5ad' } -## VIASH END +meta = { "temp_dir": './tmp/'} +## VIASH END -if not os.path.exists(par["temp"]): - os.makedirs(par["temp"]) +TMP_DIR = Path(meta["temp_dir"] or "/tmp/") +TMP_DIR.mkdir(parents=True, exist_ok=True) -sdata= ad.read_h5ad(par['input_spatial_normalized_counts']) +sdata = ad.read_h5ad(par['input_spatial_normalized_counts']) adata = ad.read_h5ad(par['input_scrnaseq_reference']) if "counts" in adata.layers: @@ -32,93 +32,75 @@ common_genes = list(set(sdata.var.index).intersection(adata.var.index)) adata = adata[:, common_genes] - - - -sc_path = f'{par["temp"]}sc_adata_processed.h5ad' -if os.path.exists(sc_path): - os.remove(sc_path) +sc_path = os.path.join(meta["temp_dir"],"sc_adata_processed.h5ad") adata.write_h5ad(sc_path) - -# 🧹 Check before writing sp_processed.h5ad -sp_path = f'{par["temp"]}sp_processed.h5ad' -if os.path.exists(sp_path): - os.remove(sp_path) +sp_path = os.path.join(meta["temp_dir"],"sp_processed.h5ad") sdata[:, common_genes].write_h5ad(sp_path) -hierarchy_string = '["cell_type"]' - -precomputed_path = f'{par["temp"]}precomputed_stats.h5ad' -if os.path.exists(precomputed_path): - os.remove(precomputed_path) +precomputed_path = os.path.join(meta["temp_dir"],"precomputed_stats.h5ad") command = [ "python", "-m", "cell_type_mapper.cli.precompute_stats_scrattch", "--h5ad_path", - f'{par["temp"]}sc_adata_processed.h5ad', + sc_path, "--hierarchy", - hierarchy_string, + "['cell_type']", "--output_path", - f'{par["temp"]}precomputed_stats.h5ad' + precomputed_path ] subprocess.run(command) - - data = {"None": common_genes} -genes_file_path = os.path.join(par["temp"],"genes.json") -if os.path.exists(genes_file_path): - os.remove(genes_file_path) - +genes_file_path = os.path.join(meta["temp_dir"],"genes.json") with open(genes_file_path, "w") as json_file: json.dump(data, json_file, indent=2) - - command = [ "python", "-m", "cell_type_mapper.cli.from_specified_markers", "--query_path", - f'{par["temp"]}sp_processed.h5ad', + sp_path, "--type_assignment.normalization", "log2CPM", "--precomputed_stats.path", - f'{par["temp"]}precomputed_stats.h5ad', + precomputed_path, "--query_markers.serialized_lookup", genes_file_path, "--csv_result_path", - os.path.join(par["temp"],"results.csv"), + os.path.join(meta["temp_dir"],"results.csv"), "--extended_result_path", - os.path.join(par["temp"], "extended_results.json"), - #mapping onto a tree with only one taxonomic level; no bootstrapping + os.path.join(meta["temp_dir"], "extended_results.json"), "--flatten", "True", "--type_assignment.bootstrap_iteration", "1", "--type_assignment.bootstrap_factor", "1.0" - + ] -results_csv = os.path.join(par["temp"], "results.csv") -if os.path.exists(results_csv): - os.remove(results_csv) +subprocess.run(command) +annotation_df = pd.read_csv(os.path.join(meta["temp_dir"],"results.csv"), skiprows=3) +sdata.obs[par['cell_type_column']] = list(annotation_df['cell_type_label']) -extended_json = os.path.join(par["temp"], "extended_results.json") -if os.path.exists(extended_json): - os.remove(extended_json) - -subprocess.run(command) -label_name = 'cell_type' -annotation_df = pd.read_csv(f'{par["temp"]}results.csv', skiprows=3) +# Loop through all files in the folder +for file_path in [ + sc_path, + sp_path, + precomputed_path, + genes_file_path, + os.path.join(meta["temp_dir"],"results.csv"), + os.path.join(meta["temp_dir"], "extended_results.json") +]: + if os.path.isfile(file_path): + os.remove(file_path) -sdata.obs[par['cell_type_column']] = annotation_df['cell_type_name'] -sdata.write_h5ad(par['output']) \ No newline at end of file +sdata.write_h5ad(par['output']) From 5641cbad343aeaee8603e0d3b067c1546d5b0962 Mon Sep 17 00:00:00 2001 From: LouisK92 Date: Thu, 11 Dec 2025 18:21:29 +0100 Subject: [PATCH 4/5] Assume gene symbols in both adatas in mapmycells script --- .../mapmycells/config.vsh.yaml | 12 +- .../mapmycells/script.py | 104 +++++++++--------- 2 files changed, 53 insertions(+), 63 deletions(-) diff --git a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml index f74773aa..e37a79d3 100644 --- a/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml +++ b/src/methods_cell_type_annotation/mapmycells/config.vsh.yaml @@ -9,16 +9,6 @@ references: doi: "10.1038/s41586-023-06812-z" __merge__: /src/api/comp_method_cell_type_annotation.yaml - -arguments: - - name: --input - type: string - default: './resources_test/common/2023_10x_mouse_brain_xenium_rep1/dataset.zarr' - description: "Path to raw counts" - - name: --cell_type_column - type: string - default: 'cell_type' - description: "Column with cell type labels" resources: @@ -42,4 +32,4 @@ runners: - type: executable - type: nextflow directives: - label: [ hightime, midcpu, veryhighmem, gpu ] \ No newline at end of file + label: [ hightime, midcpu, highmem] \ No newline at end of file diff --git a/src/methods_cell_type_annotation/mapmycells/script.py b/src/methods_cell_type_annotation/mapmycells/script.py index 46c91270..d9e9c760 100644 --- a/src/methods_cell_type_annotation/mapmycells/script.py +++ b/src/methods_cell_type_annotation/mapmycells/script.py @@ -7,9 +7,9 @@ ## VIASH START par = { 'input_spatial_normalized_counts': 'resources_test/task_ist_preprocessing/mouse_brain_combined/spatial_normalized_counts.h5ad', - 'input_scrnaseq_reference': 'resources_test/common/2023_yao_mouse_brain_scrnaseq_10xv2/dataset.h5ad', - 'cell_type_column': 'cell_type', - "output": 'output.h5ad' + 'input_scrnaseq_reference': 'resources_test/task_ist_preprocessing/mouse_brain_combined/scrnaseq_reference.h5ad', + 'celltype_key': 'cell_type', + "output": 'spatial_with_celltypes.h5ad' } meta = { "temp_dir": './tmp/'} @@ -18,40 +18,40 @@ TMP_DIR = Path(meta["temp_dir"] or "/tmp/") TMP_DIR.mkdir(parents=True, exist_ok=True) -sdata = ad.read_h5ad(par['input_spatial_normalized_counts']) -adata = ad.read_h5ad(par['input_scrnaseq_reference']) +adata_sp = ad.read_h5ad(par['input_spatial_normalized_counts']) +adata_sc = ad.read_h5ad(par['input_scrnaseq_reference']) -if "counts" in adata.layers: - adata.X = adata.layers["counts"] +if "counts" in adata_sc.layers: + adata_sc.X = adata_sc.layers["counts"] -mapping = dict(zip(adata.var["feature_name"], adata.var["feature_id"])) -sdata.var.index = sdata.var.index.map(mapping) -adata.var_names_make_unique() -sdata.var.index = sdata.var.index.astype(str) -sdata.var_names_make_unique() -common_genes = list(set(sdata.var.index).intersection(adata.var.index)) +adata_sp.var_names = adata_sp.var_names.astype(str) +adata_sc.var_names = adata_sc.var_names.astype(str) +adata_sp.var_names_make_unique() +adata_sc.var_names_make_unique() -adata = adata[:, common_genes] +common_genes = list(set(adata_sp.var.index).intersection(adata_sc.var.index)) + +adata_sc = adata_sc[:, common_genes] sc_path = os.path.join(meta["temp_dir"],"sc_adata_processed.h5ad") -adata.write_h5ad(sc_path) +adata_sc.write_h5ad(sc_path) sp_path = os.path.join(meta["temp_dir"],"sp_processed.h5ad") -sdata[:, common_genes].write_h5ad(sp_path) +adata_sp[:, common_genes].write_h5ad(sp_path) precomputed_path = os.path.join(meta["temp_dir"],"precomputed_stats.h5ad") command = [ - "python", - "-m", - "cell_type_mapper.cli.precompute_stats_scrattch", - "--h5ad_path", - sc_path, - "--hierarchy", - "['cell_type']", - "--output_path", - precomputed_path - ] + "python", + "-m", + "cell_type_mapper.cli.precompute_stats_scrattch", + "--h5ad_path", + sc_path, + "--hierarchy", + "['cell_type']", + "--output_path", + precomputed_path +] subprocess.run(command) @@ -59,38 +59,38 @@ genes_file_path = os.path.join(meta["temp_dir"],"genes.json") with open(genes_file_path, "w") as json_file: json.dump(data, json_file, indent=2) + command = [ - "python", - "-m", - "cell_type_mapper.cli.from_specified_markers", - "--query_path", - sp_path, - "--type_assignment.normalization", - "log2CPM", - "--precomputed_stats.path", - precomputed_path, - "--query_markers.serialized_lookup", - genes_file_path, - "--csv_result_path", - os.path.join(meta["temp_dir"],"results.csv"), - "--extended_result_path", - os.path.join(meta["temp_dir"], "extended_results.json"), - "--flatten", - "True", - "--type_assignment.bootstrap_iteration", - "1", - "--type_assignment.bootstrap_factor", - "1.0" - - ] + "python", + "-m", + "cell_type_mapper.cli.from_specified_markers", + "--query_path", + sp_path, + "--type_assignment.normalization", + "log2CPM", + "--precomputed_stats.path", + precomputed_path, + "--query_markers.serialized_lookup", + genes_file_path, + "--csv_result_path", + os.path.join(meta["temp_dir"],"results.csv"), + "--extended_result_path", + os.path.join(meta["temp_dir"], "extended_results.json"), + "--flatten", + "True", + "--type_assignment.bootstrap_iteration", + "1", + "--type_assignment.bootstrap_factor", + "1.0" +] subprocess.run(command) annotation_df = pd.read_csv(os.path.join(meta["temp_dir"],"results.csv"), skiprows=3) -sdata.obs[par['cell_type_column']] = list(annotation_df['cell_type_label']) +adata_sp.obs[par['celltype_key']] = list(annotation_df['cell_type_label']) -# Loop through all files in the folder +# Delete all temporary files for file_path in [ sc_path, sp_path, @@ -103,4 +103,4 @@ os.remove(file_path) -sdata.write_h5ad(par['output']) +adata_sp.write_h5ad(par['output']) From b40ac76e442d6931bc6a6e0e584e015595e7f44f Mon Sep 17 00:00:00 2001 From: LouisK92 Date: Thu, 11 Dec 2025 18:31:13 +0100 Subject: [PATCH 5/5] Add mapmycells to workflow and scripts --- scripts/run_benchmark/run_full_seqeracloud.sh | 1 + scripts/run_benchmark/run_test_local.sh | 1 + src/workflows/run_benchmark/config.vsh.yaml | 3 ++- src/workflows/run_benchmark/main.nf | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/run_benchmark/run_full_seqeracloud.sh b/scripts/run_benchmark/run_full_seqeracloud.sh index 33a5bc42..05d10ce7 100755 --- a/scripts/run_benchmark/run_full_seqeracloud.sh +++ b/scripts/run_benchmark/run_full_seqeracloud.sh @@ -67,6 +67,7 @@ celltype_annotation_methods: - ssam - tacco - moscot + - mapmycells expression_correction_methods: - no_correction - gene_efficiency_correction diff --git a/scripts/run_benchmark/run_test_local.sh b/scripts/run_benchmark/run_test_local.sh index 94783b7b..8aeac7ff 100755 --- a/scripts/run_benchmark/run_test_local.sh +++ b/scripts/run_benchmark/run_test_local.sh @@ -57,6 +57,7 @@ celltype_annotation_methods: - ssam # - tacco # - moscot + # - mapmycells expression_correction_methods: - no_correction # - gene_efficiency_correction diff --git a/src/workflows/run_benchmark/config.vsh.yaml b/src/workflows/run_benchmark/config.vsh.yaml index c9316847..29104273 100644 --- a/src/workflows/run_benchmark/config.vsh.yaml +++ b/src/workflows/run_benchmark/config.vsh.yaml @@ -98,7 +98,7 @@ argument_groups: A list of cell type annotation methods to run. type: string multiple: true - default: "ssam:tacco:moscot" + default: "ssam:tacco:moscot:mapmycells" - name: "--expression_correction_methods" description: | A list of expression correction methods to run. @@ -168,6 +168,7 @@ dependencies: - name: methods_cell_type_annotation/ssam - name: methods_cell_type_annotation/tacco - name: methods_cell_type_annotation/moscot + - name: methods_cell_type_annotation/mapmycells - name: methods_expression_correction/no_correction - name: methods_expression_correction/gene_efficiency_correction - name: methods_expression_correction/resolvi_correction diff --git a/src/workflows/run_benchmark/main.nf b/src/workflows/run_benchmark/main.nf index 3c18294c..9ec2c892 100644 --- a/src/workflows/run_benchmark/main.nf +++ b/src/workflows/run_benchmark/main.nf @@ -374,7 +374,8 @@ workflow run_wf { cta_methods = [ ssam, tacco, - moscot + moscot, + mapmycells ] cta_ch = normalization_ch