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.21.tar.gz (47.8 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.21-py3-none-any.whl (66.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: revise_svc-0.0.21.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.15

File hashes

Hashes for revise_svc-0.0.21.tar.gz
Algorithm Hash digest
SHA256 d53635a26f48fcb377287d058eca24e5688f1536c7dd0dd55e206cd434f02770
MD5 e46d90cd9d946caebacfbb8960236360
BLAKE2b-256 5fac7bc1fcf3d6d553598fc20e26ae721772dc8ba03bcb73166eb00f97f13ba1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: revise_svc-0.0.21-py3-none-any.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.15

File hashes

Hashes for revise_svc-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 a40a7fc58ec2651fe366cd3d61b8dd390f5a10c2eb087a3e17d13b3bb2ac385e
MD5 dd5c7987b843ffbf1da510b61e6b875d
BLAKE2b-256 f681d21c1087d294b8214c8da449e83ba3f151520d8e1bdd87d820929e68c5f0

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