OSCR

Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering.

Code ↔ Paper

20 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 20 matches
  1. [1] § Methods › Consensus clustering algorithms ↔ Consensus_scalability/Consensus_Benchmark_plotting.ipynb, lines 103–121 · score 0.94 · STARmap_plus, abc_atlas_wmb_thalamus, cosmx_lung, SergioSalas, visium_breast_cancer_SEDR, xenium mouse brain
  2. [2] § Methods › GT granularity analysis ↔ Figure_2_GT_Analysis/Figure_All.r, lines 41–90 · score 0.85 · getTopHVGs, border spot, runPCA, quality control, kNN, mitochondrial
  3. [3] § Methods › Datasets › MERFISH mouse brain thalamus (abc_atlas_wmb_thalamus) ↔ data/abc_atlas_wmb_thalamus/abc_atlas_wmb_thalamus.py, lines 57–124 · score 0.76 · mouse brain, gene expression, coronal, wmb, ZI, thalamus
  4. [4] § Methods › Datasets › Xenium human breast cancer dataset (xenium-ffpe-bc-idc) ↔ data/xenium-breast-cancer/xenium-breast-cancer.py, lines 45–123 · score 0.72 · Xenium breast cancer, human breast, FFPE, patient, cells, gene
  5. [5] § Methods › Consensus clustering algorithms ↔ data/abc_atlas_wmb_thalamus/abc_atlas_wmb_thalamus.py, lines 57–124 · score 0.72 · abc atlas wmb, mouse brain, plus, thalamus
  6. [6] § Methods › Datasets › Xenium human breast cancer dataset (xenium-ffpe-bc-idc) ↔ data/xenium-ffpe-bc-idc/xenium-ffpe-bc-idc.py, lines 116–155 · score 0.68 · human breast, FFPE, idc, Xenium, v1, bc
  7. [7] § Methods › Datasets › Visium chicken heart (visium_chicken_heart) ↔ data/visium_chicken_heart/chicken_heart.py, lines 18–138 · score 0.66 · Visium chicken heart, GEO, clustering
  8. [8] § Methods › Datasets › Stereo-seq mouse embryo dataset (stereoseq_mouse_embryo) ↔ data/stereoseq_mouse_embryo/stereoseq_mouse_embryo.py, lines 16–36 · score 0.66 · mouse embryo, Stereo seq, e16, e9, clustering
  9. [9] § Methods › GT granularity analysis ↔ method/BayesSpace/BayesSpace.r, lines 166–205 · score 0.64 · getTopHVGs, runPCA, scater, scran, cells, genes
  10. [10] § Methods › Datasets › Visium HD human colorectal cancer dataset (visium_hd_cancer_colon) ↔ data/visium_hd_cancer_colon/visium_hd_cancer_colon.py, lines 67–125 · score 0.63 · Visium HD human, colon, cancer
  11. [11] § Methods › Visium HD consensus analysis ↔ Figure_5_VisiumHD_Consensus/Fig_5_EGF_Consensus.r, lines 56–144 · score 0.55 · consensus calling, tree, pairwise, HD, subset, LCA
  12. [12] § Methods › GT granularity analysis ↔ Consensus_scalability/Consensus_Benchmark_plotting.ipynb, lines 103–121 · score 0.55 · Visium breast cancer, Xenium mouse brain, cluster
  13. [13] § Methods › Datasets › Visium human breast cancer (visium_breast_cancer_SEDR) ↔ data/visium_breast_cancer_SEDR/visium_breast_cancer_SEDR.py, lines 47–93 · score 0.54 · breast cancer, sedr, tissue, Visium
  14. [14] § Results › An extensible framework for running and evaluating SAC methods ↔ metric/CHAOS/CHAOS.r, lines 82–108 · score 0.53 · chaos score, spatial location, metrics, clustering
  15. [15] § Methods › GT annotation of the Visium HD human colorectal cancer dataset ↔ data/visium_hd_cancer_colon/visium_hd_cancer_colon.py, lines 128–140 · score 0.52 · Visium HD human, nuclei, cancer, tissue
  16. [16] § Results › Consensus with expert in the loop › Detecting neoplastic progression stages in colorectal cancer (case study 2) ↔ figure1-ABE/utils.R, lines 1–33 · score 0.52 · DR SC, CellCharter, STAGATE, Seurat, cells
  17. [17] § Results › Consensus with expert in the loop › Detecting neoplastic progression stages in colorectal cancer (case study 2) ↔ data/visium_hd_cancer_colon/visium_hd_cancer_colon.py, lines 67–125 · score 0.52 · human colon, Visium HD, cancer
  18. [18] § Methods › Datasets › Visium human brain LIBD DLPFC dataset 1 (libd_dlpfc) ↔ figure3-libd-consensus/spacehack-figure-3.qmd, lines 74–171 · score 0.52 · Visium human, LIBD DLPFC, gene
  19. [19] § Methods › Datasets › Visium human brain LIBD DLPFC dataset 1 (libd_dlpfc) ↔ data/libd_dlpfc/libd_dlpfc.r, lines 57–140 · score 0.52 · spatialLIBD, LIBD DLPFC, Visium, gene
  20. [20] § Methods › Consensus clustering algorithms ↔ consensus/03_Consensus_weighted/Consensus_weighted.r, lines 295–358 · score 0.50 · binary matrices, consensus clusters, weighted, loss

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

Python · 199 lines · 7 KB · MIT · 3 matches

  1. #!/usr/bin/env python
  2. # Made by Paul Kiessling [email hidden]
  3. import os
  4. import argparse
  5. import tempfile
  6. import shutil
  7. from spatialdata_io import visium_hd
  8. import pandas as pd
  9. import scipy
  10. import json
  11. from pypdl import Downloader
  12. LINKS = {
  13. "https://cf.10xgenomics.com/samples/spatial-exp/3.0.0/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_tissue_image.btf": "83bea5bc5761ccac5e54f7dc9b36d1d2",
  14. "https://cf.10xgenomics.com/samples/spatial-exp/3.0.0/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_feature_slice.h5": "ba5db688c27fa4b7203dc4f40c240453",
  15. "https://cf.10xgenomics.com/samples/spatial-exp/3.0.0/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_spatial.tar.gz": "18c123015ecad7dbb17e5862b427c21a",
  16. "https://cf.10xgenomics.com/samples/spatial-exp/3.0.0/Visium_HD_Human_Colon_Cancer/Visium_HD_Human_Colon_Cancer_binned_outputs.tar.gz": "2a8a0df135d3d77ed77a465882f0bb2f",
  17. "https://zenodo.org/records/11402686/files/segmented_nuclei.zip": "952134e629e3861af44f70ccfc555a9d",
  18. "https://zenodo.org/records/11402686/files/2um_squares_annotation.csv": "f074d2a88b87bbd2d92d210bf9635849",
  19. "https://zenodo.org/records/11402686/files/8um_squares_annotation.csv": "e7eb740df3072cf7df505d61e8b62a9d",
  20. "https://zenodo.org/records/11402686/files/16um_squares_annotation.csv": "0c3644e6b6dcc9fa00d135bde6b8413b",
  21. }
  22. META_DICT = {"technology": "Visium HD"}
  23. LICENSE = """
  24. """
  25. def download_links(links, temp_dir):
  26. headers = {
  27. "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
  28. }
  29. dl = Downloader(headers=headers)
  30. for link, checksum in links.items():
  31. print(f"Downloading {link}")
  32. file = dl.start(
  33. url=link,
  34. file_path=temp_dir,
  35. segments=10,
  36. display=True,
  37. multithread=True,
  38. block=True,
  39. retries=3,
  40. )
  41. if not file.validate_hash(checksum, "md5"):
  42. raise ValueError(f"File {file} is corrupted")
  43. # Extract the tar.gz files
  44. for file in os.listdir(temp_dir):
  45. if file.endswith(".tar.gz") or file.endswith(".zip"):
  46. shutil.unpack_archive(os.path.join(temp_dir, file), temp_dir)
  47. # Move binned folders to parent directory for visium_hd reader
  48. source_folder = os.path.join(temp_dir, "binned_outputs")
  49. parent_folder = os.path.dirname(source_folder)
  50. for folder in os.listdir(source_folder):
  51. item_path = os.path.join(source_folder, folder)
  52. if os.path.isdir(item_path):
  53. destination_path = os.path.join(parent_folder, folder)
  54. shutil.move(item_path, destination_path)
  55. def process_adata(input_path, output_folder):
  56. results = {
  57. "square_002um": "2um_squares_annotation.csv",
  58. "square_008um": "8um_squares_annotation.csv",
  59. "square_016um": "16um_squares_annotation.csv",
  60. }
  61. for result in results.keys():
  62. os.makedirs(
  63. os.path.join(output_folder, f"visium_hd_cancer_colon_{result}"),
  64. exist_ok=True,
  65. )
  66. sdata = visium_hd(input_path)
  67. for result, annotation_file in results.items():
  68. table = sdata.tables[result]
  69. table.var_names_make_unique()
  70. domain_annotation = pd.read_table(
  71. os.path.join(input_path, annotation_file),
  72. index_col=0,
  73. header=None,
  74. names=["annot_type"],
  75. )
  76. complete_path = os.path.join(output_folder, f"visium_hd_cancer_colon_{result}")
  77. # Obs
  78. obs = table.obs.copy()
  79. obs["selected"] = "true"
  80. # A few bins are outside the image + disconnected, so we remove them
  81. obs.loc[
  82. domain_annotation.loc[:, "annot_type"] == "Outside", "selected"
  83. ] = "false"
  84. obs.rename(columns={"array_row": "row", "array_col": "col"}, inplace=True)
  85. obs.to_csv(f"{complete_path}/observations.tsv", sep="\t", index_label="")
  86. # Features
  87. vars = table.var.copy()
  88. vars["selected"] = "true"
  89. vars.to_csv(f"{complete_path}/features.tsv", sep="\t", index_label="")
  90. # Coordinates
  91. coords = pd.DataFrame(table.obsm["spatial"], columns=["x", "y"])
  92. coords.index = table.obs.index
  93. coords.to_csv(f"{complete_path}/coordinates.tsv", sep="\t", index_label="")
  94. # Matrix
  95. scipy.io.mmwrite(f"{complete_path}/counts.mtx", table.X)
  96. # Write labels.tsv
  97. labels = domain_annotation.loc[:, "annot_type"]
  98. labels.index = table.obs.index
  99. labels = labels.rename("label")
  100. labels.to_csv(f"{complete_path}/labels.tsv", sep="\t", index_label="")
  101. # Move image files
  102. shutil.copy(
  103. os.path.join(input_path, "Visium_HD_Human_Colon_Cancer_tissue_image.btf"),
  104. os.path.join(complete_path, "H_E.tiff"),
  105. )
  106. def process_nuclei(input_path, output_folder):
  107. input = os.path.join(input_path, "output")
  108. output = os.path.join(output_folder, "visium_hd_cancer_colon_segmented_nuclei")
  109. os.makedirs(output, exist_ok=True)
  110. for filename in os.listdir(input):
  111. file_path = os.path.join(input, filename)
  112. if os.path.isfile(file_path):
  113. shutil.move(file_path, os.path.join(output, filename))
  114. shutil.copy(
  115. os.path.join(input_path, "Visium_HD_Human_Colon_Cancer_tissue_image.btf"),
  116. os.path.join(output, "H_E.tiff"),
  117. )
  118. def write_json(dict, output_path):
  119. with open(output_path, "w") as json_file:
  120. json.dump(dict, json_file)
  121. def main():
  122. # Set up command-line argument parser
  123. parser = argparse.ArgumentParser(
  124. description="Convert Visium HD data to Spacehack format."
  125. )
  126. # Add arguments for output folder
  127. parser.add_argument(
  128. "-o", "--out_dir", help="Output directory to write files to.", required=True
  129. )
  130. # Parse the command-line arguments
  131. args = parser.parse_args()
  132. # Download and process
  133. with tempfile.TemporaryDirectory() as temp_dir: #
  134. download_links(LINKS, temp_dir)
  135. os.makedirs(args.out_dir, exist_ok=True)
  136. sample_df = {
  137. "patient": [1, 1, 1, 1],
  138. "sample": [0, 0, 0, 0],
  139. "position": [1, 1, 1, 1],
  140. "replicate": [1, 1, 1, 1],
  141. "n_clusters": [6, 6, 6, 6],
  142. "directory": [
  143. "visium_hd_cancer_colon_segmented_nuclei",
  144. "visium_hd_cancer_colon_square_002um",
  145. "visium_hd_cancer_colon_square_008um",
  146. "visium_hd_cancer_colon_square_016um",
  147. ],
  148. }
  149. sample_df = pd.DataFrame(sample_df)
  150. # Segmented Nuclei are already in the correct format
  151. process_nuclei(temp_dir, args.out_dir)
  152. process_adata(temp_dir, args.out_dir)
  153. # write json
  154. write_json(META_DICT, f"{args.out_dir}/experiment.json")
  155. # write samples.tsv
  156. sample_df.to_csv(f"{args.out_dir}/samples.tsv", sep="\t", index_label=False)
  157. # write LICENSE
  158. with open(f"{args.out_dir}/LICENSE.md", "w") as file:
  159. file.write(LICENSE)
  160. if __name__ == "__main__":
  161. main()

visium_hd_cancer_colon.py at commit dac468d, under MIT · at the source

Overview

Authors: Jieran Sun1, Kirti Biharie2,3, Peiying Cai4, Niklas Müller-Bötticher5, Paul Kiessling6, Meghan A. Turner7, Søren Helweg Dam8,9, Florian Heyl10,11, Sarusan Kathirchelvan4, Martin Emons4, Samuel Gunz4, Sven Twardziok5, Amin El-Heliebi12, Martin Zacharias13, SpaceHack 2.0 participants, Roland Eils5, Marcel Reinders3, Raphael Gottardo1, Christoph Kuppe6, Brian Long7, Ahmed Mahfouz2,3, Mark D. Robinson4, Naveed Ishaque5
13 affiliations
  1. Biomedical Data Science Center, Centre Hospitalier Universitaire Vaudois,Lausanne, Switzerland
  2. Department of Human Genetics, Leiden University Medical Center,Leiden, the Netherlands
  3. Delft Bioinformatics Lab, Delft University of Technology,Delft, the Netherlands
  4. Department of Molecular Life Sciences and SIB Swiss Institute of Bioinformatics, University of Zurich,Zurich, Switzerland
  5. Berlin Institute of Health at Charité - Universitätsmedizin Berlin, Center of Digital,Berlin, Germany
  6. Department of Nephrology, Rheumatology, and Clinical Immunology, University Hospital RWTH Aachen,Aachen, Germany
  7. Allen Institute for Brain Science,Seattle, WA USA
  8. DTU Health Tech, Technical University of Denmark, Ørsteds Plads,Kongens Lyngby, Denmark
  9. LEO Foundation Skin Immunology Research Center, Department of Immunology and Microbiology, University of Copenhagen,Copenhagen, Denmark
  10. German Cancer Research Center (DKFZ), Division of Computational Genomics and Systems Genetics,Heidelberg, Germany
  11. The German Human Genome-Phenome Archive, Heidelberg, Germany
  12. Division of Cell Biology, Histology and Embryology, Gottfried Schatz Research Center, Medical University of Graz,Graz, Austria
  13. Diagnostic and Research Institute of Pathology, Medical University of Graz,Graz, Austria
Journal: Nature methods, volume 23, issue 9, pages 1814-1826
Dates: received 19 June 2025; accepted 17 July 2026; published online 24 August 2026; in print 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1038/s41592-026-03194-8 · PMID 42637977 · PMCID PMC13541621 · OpenAlex W4411721301
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: genetics / omics (modality), human (organism), methods / tools (subfield)
Methods: Statistics, Smoothing, state filtering, decompositions, Machine learning, Connectivity
Keywords: Statistical methods, Computational biology and bioinformatics, Transcriptomics
MeSH: Benchmarking*, Brain, Brain Neoplasms, Cluster Analysis, Clustering Algorithms, Consensus, Humans, Reproducibility of Results, Spatial Transcriptomics (* major topic)
Topic: Single-cell and spatial transcriptomics (Molecular Biology, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: Deutsche Forschungsgemeinschaft (DFG) (35081457); Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) (01KD2443, 031L0265); Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung (Swiss National Science Foundation) (320030 215550, 320030_215550); NINDS (U19NS123714); Bundesministerium für ­Forschung, Technologie und Raumfahrt (BMFTR) 01KD2206A; Nederlandse Organisatie voor Wetenschappelijk Onderzoek (024.004.012); University Research Priority Program Evolution in Action at the University of Zurich
Citations: cited by 2 papers (Europe PMC); 97 references in the paper

Abstract

Spatial omics technologies have revolutionized the study of tissue architecture and cellular heterogeneity by integrating molecular profiles with spatial localization. In spatially resolved transcriptomics, delineating higher-order anatomical structures is critical for understanding how cellular organization affects function. However, the reliability of current benchmarks of spatially aware clustering (SAC) methods is undermined by their narrow focus on Visium and brain tissue datasets and the incorrect interpretation of manual annotation as ground truth. Here we present SACCELERATOR, a community-driven, extensible framework that standardizes data formatting, method integration and metric evaluation, enabling rapid inclusion of new methods and datasets. Our analysis revealed substantial limitations in the generalizability and reproducibility of SAC methods and shows that anatomical labels commonly used as ground truths are often biased, error prone and unsuitable for benchmarking. Rather than ranking methods, we propose a consensus-guided workflow where descriptive spatial metrics highlight high-entropy regions of method disagreement, enabling targeted feedback for tissue experts. Applied to brain and cancer datasets, this approach uncovered biologically meaningful patterns overlooked by individual SAC methods and manual annotations, highlighting the need for iterative, expert-in-the-loop evaluation.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repositories

Its files are read in the Code ↔ Paper reader above, with 20 matches between paragraphs and lines of code.

SpatialHackathon/SACCELERATOR

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: dac468d9af18868c867b236e31f6c82f0f29a0fa, 24 August 2026
Languages: Python (66), R (35), Shell (13)
Size: 410 files, 114 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, CITATION.cff, environment (docs/requirements.txt, data/her2st-breast-cancer/environment.yml, data/STARmap-2018-mouse-cortex/environment.yml, data/xenium-mouse-brain-SergioSalas/environment.yml), continuous integration, documentation
Not found: tests
Tools: pandas (62 files), SciPy (50 files), anndata (35 files), Scanpy (27 files), NumPy (26 files), scikit-learn (15 files), Pillow (13 files), PyTorch (10 files), SingleCellExperiment (7 files), Seurat (6 files), Squidpy (6 files), tidyverse (5 files), Matplotlib (3 files), igraph (2 files), rpy2 (2 files), seaborn (2 files), NiBabel (1 file), PyTorch Geometric (1 file), TensorFlow (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
116 files

SpatialHackathon/SpaceHack2023_study

License: MIT
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Commit: 047667cd711097cba6a365cfc2a0027ae8c578e9, 3 November 2025
Languages: R (6), Jupyter (3), Quarto (2)
Size: 39 files, 11 scripts
Software Heritage: not archived
Found in: “Code availability”
Holds: README, license file, 5 notebooks
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: ggplot2 (6 files), tidyverse (6 files), cowplot (5 files), limma (4 files), pheatmap (4 files), reshape2 (4 files), igraph (2 files), data.table (1 file), ggpubr (1 file), Matplotlib (1 file), pandas (1 file), SciPy (1 file), seaborn (1 file)
Availability: 1 check, the latest on 27 September 2026: the link answers
  • 27 September 2026: the link answers
13 files

Zenodo 15487520

License: CC-BY-4.0
State: the link answers, verified on 27 September 2026
Evidence: files inventoried
Size: 21 files
Software Heritage: not checked
Found in: the references
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
  • 27 September 2026: the link answers (HTTP 200)
At the source:

Code availability

The SACCELERATOR workflow and all relevant code to run the analysis are available as open-source software via GitHub at https://github.com/SpatialHackathon/SACCELERATOR. All code for reproducing results presented in this study, including figures and collected ARIs for the meta benchmark, is available via GitHub at https://github.com/SpatialHackathon/SpaceHack2023_study.

Reproduced under the paper's license (CC BY), from the paper cited above.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 125 scripts, each with its path and the digest of its content;
  • 20 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

Datasets cited

Data availability

Links to raw data are provided in the ‘Datasets’ section (Supplementary Table 1). All filtered data, intermediate results and final results are available via Zenodo at https://zenodo.org/records/15487519 (ref. 97).

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 2, 28 September 2026

  • Publisher: n/a → Nature Portfolio

Version 1, 27 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 23 authors, 3 keywords, 9 MeSH terms, 7 funders, 92 references.

Cite

This paper

Sun, J., Biharie, K., Cai, P., Müller-Bötticher, N., Kiessling, P., Turner, M. A., Dam, S. H., Heyl, F., Kathirchelvan, S., Emons, M., Gunz, S., Twardziok, S., El-Heliebi, A., Zacharias, M., SpaceHack 2.0 participants, Eils, R., Reinders, M., Gottardo, R., Kuppe, C., . . . Ishaque, N. (2026). Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering. Nature methods, 23(9), 1814-1826. https://doi.org/10.1038/s41592-026-03194-8

BibTeX

@article{sun2026beyond,
author = {Sun, Jieran and Biharie, Kirti and Cai, Peiying and Müller-Bötticher, Niklas and Kiessling, Paul and Turner, Meghan A. and Dam, Søren Helweg and Heyl, Florian and Kathirchelvan, Sarusan and Emons, Martin and Gunz, Samuel and Twardziok, Sven and El-Heliebi, Amin and Zacharias, Martin and {SpaceHack 2.0 participants} and Eils, Roland and Reinders, Marcel and Gottardo, Raphael and Kuppe, Christoph and Long, Brian and Mahfouz, Ahmed and Robinson, Mark D. and Ishaque, Naveed},
title = {{Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering}},
journal = {Nature methods},
year = {2026},
month = aug,
volume = {23},
number = {9},
pages = {1814--1826},
publisher = {Nature Portfolio},
issn = {1548-7091},
doi = {10.1038/s41592-026-03194-8},
url = {https://doi.org/10.1038/s41592-026-03194-8},
pmid = {42637977},
pmcid = {PMC13541621}
}

RIS

TY - JOUR
AU - Sun, Jieran
AU - Biharie, Kirti
AU - Cai, Peiying
AU - Müller-Bötticher, Niklas
AU - Kiessling, Paul
AU - Turner, Meghan A.
AU - Dam, Søren Helweg
AU - Heyl, Florian
AU - Kathirchelvan, Sarusan
AU - Emons, Martin
AU - Gunz, Samuel
AU - Twardziok, Sven
AU - El-Heliebi, Amin
AU - Zacharias, Martin
AU - SpaceHack 2.0 participants
AU - Eils, Roland
AU - Reinders, Marcel
AU - Gottardo, Raphael
AU - Kuppe, Christoph
AU - Long, Brian
AU - Mahfouz, Ahmed
AU - Robinson, Mark D.
AU - Ishaque, Naveed
TI - Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering
T2 - Nature methods
J2 - Nat Methods
PY - 2026
DA - 2026/08/24
VL - 23
IS - 9
SP - 1814
EP - 1826
SN - 1548-7091
PB - Nature Portfolio
DO - 10.1038/s41592-026-03194-8
UR - https://doi.org/10.1038/s41592-026-03194-8
LA - en
ER -

CSL-JSON

{
"id": "10.1038/s41592-026-03194-8",
"type": "article-journal",
"title": "Beyond benchmarking: an expert-guided consensus approach to spatially aware clustering",
"container-title": "Nature methods",
"author": [
{
"family": "Sun",
"given": "Jieran"
},
{
"family": "Biharie",
"given": "Kirti"
},
{
"family": "Cai",
"given": "Peiying"
},
{
"family": "Müller-Bötticher",
"given": "Niklas"
},
{
"family": "Kiessling",
"given": "Paul"
},
{
"family": "Turner",
"given": "Meghan A."
},
{
"family": "Dam",
"given": "Søren Helweg"
},
{
"family": "Heyl",
"given": "Florian"
},
{
"family": "Kathirchelvan",
"given": "Sarusan"
},
{
"family": "Emons",
"given": "Martin"
},
{
"family": "Gunz",
"given": "Samuel"
},
{
"family": "Twardziok",
"given": "Sven"
},
{
"family": "El-Heliebi",
"given": "Amin"
},
{
"family": "Zacharias",
"given": "Martin"
},
{
"literal": "SpaceHack 2.0 participants"
},
{
"family": "Eils",
"given": "Roland"
},
{
"family": "Reinders",
"given": "Marcel"
},
{
"family": "Gottardo",
"given": "Raphael"
},
{
"family": "Kuppe",
"given": "Christoph"
},
{
"family": "Long",
"given": "Brian"
},
{
"family": "Mahfouz",
"given": "Ahmed"
},
{
"family": "Robinson",
"given": "Mark D."
},
{
"family": "Ishaque",
"given": "Naveed"
}
],
"container-title-short": "Nat Methods",
"volume": "23",
"issue": "9",
"page": "1814-1826",
"DOI": "10.1038/s41592-026-03194-8",
"PMID": "42637977",
"PMCID": "PMC13541621",
"ISSN": "1548-7091",
"publisher": "Nature Portfolio",
"URL": "https://doi.org/10.1038/s41592-026-03194-8",
"language": "en",
"issued": {
"date-parts": [
[
2026,
8,
24
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.21203/rs.3.rs-9676637/v1 [code]
A Comprehensive Benchmarking of Spatial Deconvolution and Domain Detection Methods across Diverse Tissues and Spatial Transcriptomic Technologies
Journal: Research Square (preprint)
In common: Squidpy, rpy2, PyTorch Geometric, 17 other tools, methods / tools, genetics / omics, 14 references
[2] doi:10.1093/bioinformatics/btag540 [code]
Deciphering spatial heterogeneity by multimodal spatial transcriptomics modelling with SpatialModal.
Journal: Bioinformatics (Oxford, England)
In common: Squidpy, rpy2, PyTorch Geometric, 10 other tools, methods / tools, genetics / omics, 11 references
[3] doi:10.1186/s13073-026-01704-z [code]
Gene expression profiling enables refined parcellation of cortical layers in the heterogeneous human cerebral cortex.
Journal: Genome medicine
In common: SingleCellExperiment, anndata, Scanpy, 15 other tools, genetics / omics, 8 references
[4] doi:10.1016/j.xcrm.2026.102766 [code]
A longitudinal single-cell and spatial multiomic atlas of pediatric high-grade glioma.
Journal: Cell reports. Medicine
In common: rpy2, SingleCellExperiment, limma, 19 other tools, genetics / omics, 2 references
[5] doi:10.1002/advs.77003 [code]
SemanticST: A Scalable Multi-Contextual Graph Learning Framework for Uncovering Spatial Niches and Robust Multi-Sample Integration in Spatial Transcriptomics.
Journal: Advanced science (Weinheim, Baden-Wurttemberg, Germany)
In common: rpy2, PyTorch Geometric, anndata, 8 other tools, methods / tools, genetics / omics, 12 references
[6] doi:10.1038/s41467-026-71759-4 [code]
CellNiche represents cellular microenvironments in atlas-scale spatial omics data with contrastive learning.
Journal: Nature communications
In common: Squidpy, PyTorch Geometric, anndata, 8 other tools, 12 references
[7] doi:10.1016/j.cpblue.2026.100007 [code]
An integrated single-cell and spatial proteotranscriptomics atlas of fibroblast-driven immunoregulation within the human adult oral cavity.
Journal: Cell press blue
In common: rpy2, PyTorch Geometric, SingleCellExperiment, 18 other tools, 1 reference
[8] doi:10.1002/imt2.70163 [code]
Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.
Journal: iMeta
In common: SingleCellExperiment, limma, anndata, 17 other tools, genetics / omics, 2 references
[9] doi:10.1093/bib/bbag298 [code]
Empowering multifaceted analysis of spatial transcriptomics data with RGAST.
Journal: Briefings in bioinformatics
In common: rpy2, PyTorch Geometric, anndata, 8 other tools, methods / tools, genetics / omics, 10 references
[10] doi:10.1038/s44320-026-00208-7 [code]
Interpretable deep generative ensemble learning for single-cell omics with Hydra.
Journal: Molecular systems biology
In common: SingleCellExperiment, limma, anndata, 15 other tools, 4 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.