Skip to main content

Spatial transcriptomics benchmarking and annotation toolkit.

Project description

REVISE

REVISE (REconstruction via Vision-integrated Spatial Estimation) is a unified framework for reconstructing Spatially-inferred Virtual Cells (SVCs) by integrating spatial transcriptomics (ST) data, histological imaging, and matched single-cell RNA-seq references.

Visit our documentation for installation, tutorials, examples and more. Download Sim2Real benchmark, generated results and Real application data in Zenodo. Put them into raw_data dir if you want to reproduce our results.

You can also check out our podcast and watch our intro videos for a quick overview.

Motivation

Current ST technologies are limited by six key confounding factors (CFs) that hinder the reconstruction of biologically coherent single-cell units:

ST limitations

Current ST limitations

  • Spatially heterogeneous CFs: image segmentation artifacts, bin-to-cell assignment errors
  • Spatially homogeneous CFs: spot size, batch effects, gene panel limitations, gene dropout

REVISE addresses these limitations through a topology-aware hierarchical optimal transport (OT) framework, generating two complementary types of virtual cells:

  • sp-SVC: leverages spatial priors to correct spatially heterogeneous CFs and preserve local tissue architecture
  • sc-SVC: integrates scRNA-seq references to restore transcriptome-wide coverage and correct dropout

REVISE Overview

Overview of the REVISE framework

Highlights

  • Unified Framework: Handles six CFs across three ST platforms (sST, iST, hST)
  • Dual SVC Modes: sp-SVC for spatial refinement, sc-SVC for molecular completeness
  • Benchmark Module: Reproducible evaluation pipelines for simulated or public datasets
  • Application Module: Annotation, reconstruction, and downstream analyses for real ST data

SVC Applications

sp-SVC Applications

  • Recovers spatially resolved gene and pathway signals from Visium HD data
  • Identifies localized transcriptional programs (e.g., EMT at tumor leading edge)
  • Enhances spatial autocorrelation and clustering coherence

sc-SVC Applications

  • Reconstructs whole-transcriptome profiles for Xenium data
  • Defines fine-grained immune subtypes (T cells, TAMs, CAFs)
  • Reveals spatially organized cell-cell communication and clinical associations

SVC Applications

Biological insights enabled by SVC reconstruction

Quick Start

Install the Python package via pip:

pip install revise-svc

If you want to use REVISE for a real ST application, please import these class:

# sp-SVC, usually for hST platforms (e.g., Visium HD)
from revise.application import SpSVC

# sc-SVC, usually for iST platforms (e.g., Xenium) and sST platforms (e.g., Visium)
from revise.application import ScSVC

If you want to use REVISE for benchmark (such as in our Sim2Real-ST benchmark setting), please import these class:

# For two spa-hetero CFs: segmentation error and bin2cell
from revise.benchmark import SpSVC

# For two spa-homo CFs: spot size and batch effect
from revise.benchmark import ScSVCSr

# For two spa-homo CFs: gene panel limitation and dropout
from revise.benchmark import ScSVCImpute

Example

Run benchmark settings (sp-SVC)

Please make sure that you have downloaded Sim2Real-ST benchmark datasets from Zenodo.

import scanpy as sc
import revise.benchmark as benchmark
from revise.benchmark import SpSVC
from revise.conf import BenchmarkSegConf

# Initialize the config class for sp-SVC, check the detailed API at https://revise-svc.readthedocs.io/en/latest/source/api/generated/revise.conf.application_sp_conf.ApplicationSpConf.html
config = BenchmarkSegConf(
    sample_name=YOUR_OWN_SAMPLE_NAME,
    annotate_mode="pot",
    raw_data_path=YOUR_OWN_DATA_PATH,
    result_root_path=YOUR_OWN_RESULT_PATH,
    cell_type_col="Level1",
    confidence_col="Confidence",
    unknown_key="Unknown",
    st_file=YOUR_OWN_ST_FILE,
    gt_svc_file=YOUR_OWN_GT_SVC_FILE,
    sc_ref_file=YOUR_OWN_SC_REF_FILE,
    seg_method="seg_1",
)
adata_st = sc.read_h5ad(config.st_file_path)
adata_gt_svc = sc.read_h5ad(config.gt_svc_file_path)
adata_sc_ref = sc.read_h5ad(config.sc_ref_file_path)
svc = SpSVC(adata_st, adata_sc_ref, config, adata_gt_svc, None)
benchmark.main(svc)

Run application settings

import scanpy as sc
from revise.application import SpSVC
from revise.conf import ApplicationSpConf

config = ApplicationSpConf(
    sample_name=YOUR_OWN_SAMPLE_NAME,
    annotate_mode="pot",
    raw_data_path=YOUR_OWN_DATA_PATH,
    result_root_path=YOUR_OWN_RESULT_PATH,
    cell_type_col="Level1",
    confidence_col="Confidence",
    unknown_key="Unknown",
    st_file=YOUR_OWN_ST_FILE,
    sc_ref_file=YOUR_OWN_SC_REF_FILE,
)

adata_st = sc.read_h5ad(config.st_file_path)
adata_sc_ref = sc.read_h5ad(config.sc_ref_file_path)
svc = SpSVC(adata_st, adata_sc_ref, config=config, logger=None)
svc.global_anchoring()
svc.local_refinement()

Reproducibility

If you want to reproduce our results based on the Sim2Real-ST benchmark setting, you can run single bash script as following:

# for bin2cell
bash ./reproduce/benchmark/benchmark_bin2cell.sh

# for batch effect 
bash ./reproduce/benchmark/benchmark_batch_effect.sh

...

Or you can use our merged benchmark_main.sh script as following:

bash benchmark_main.sh

Repository Layout

  • revise/application: SVC workflows for real datasets.
  • revise/benchmark: SVC variants for benchmarking studies.
  • revise/methods: Algorithm implementations and model components.
  • revise/tools: Distance metrics, logging helpers, and general utilities.
  • conf: Example configurations and experiment parameters.

revise-svc exposes SVC interfaces with matching conf files: every SVC derives from BaseSVC, which defines initialization plus the abstract global_anchoring and local_refinement methods. BaseSVCAnchor extends BaseSVC and provides the shared global_anchoring used by all SVCs. SVCs are grouped into application and benchmark: application implements SpSVC and ScSVC; benchmark implements SpSVC, ScSVCImpute, and ScSVCSr. SpSVC targets segmentation and bin2cell confounding factors; ScSVCImpute targets gene panel and gene dropout; ScSVCSr targets batch effect and spot size. Conf implementations mirror the SVCs one-to-one, with parameters available on the website.

REVISE Workflow

License

REVISE is released under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

revise_svc-0.0.9.tar.gz (44.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

revise_svc-0.0.9-py3-none-any.whl (61.4 kB view details)

Uploaded Python 3

File details

Details for the file revise_svc-0.0.9.tar.gz.

File metadata

  • Download URL: revise_svc-0.0.9.tar.gz
  • Upload date:
  • Size: 44.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for revise_svc-0.0.9.tar.gz
Algorithm Hash digest
SHA256 8668c1775ece7a0811a8fb650574a09c94f3a63afeb9c2bc5bad77613b5cca90
MD5 3e96300e50de9242c6231bc4833ff202
BLAKE2b-256 a7fde338958e27e25c0022bb53009d73a12e44e8621fb8cbc9a0bb089063afc6

See more details on using hashes here.

File details

Details for the file revise_svc-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: revise_svc-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 61.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.20

File hashes

Hashes for revise_svc-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 830685b42756fb99bcf0240023135d878f29b3fa050c14791c836ce299806a45
MD5 2a3793422538305b1bea9924b7adfbf6
BLAKE2b-256 06ee27cf5f91350b33cfec8a9bc92dbb38f3e0b7c31ba78c84ebd469a2a6c5c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page