Reference-free cell-type deconvolution of multi-cellular spatially resolved transcriptomics data

View the Project on GitHub JEFworks-Lab/STdeconvolve


R build status

STdeconvolve enables reference-free cell-type deconvolution of multi-cellular pixel-resolution spatially resolved transcriptomics data

The overall approach is now published in Nature Communications


STdeconvolve is an unsupervised machine learning approach to deconvolve multi-cellular pixel-resolution spatial transcriptomics datasets in order to recover the putative transcriptomic profiles of cell-types and their proportional representation within spatially resolved pixels without reliance on external single-cell transcriptomics references.


## load built in data
pos <- mOB$pos
cd <- mOB$counts
annot <- mOB$annot
## remove pixels with too few genes
counts <- cleanCounts(cd, min.lib.size = 100)
## feature select for genes
corpus <- restrictCorpus(counts, removeAbove=1.0, removeBelow = 0.05)
## choose optimal number of cell-types
ldas <- fitLDA(t(as.matrix(corpus)), Ks = seq(2, 9, by = 1))
## get best model results
optLDA <- optimalModel(models = ldas, opt = "min")
## extract deconvolved cell-type proportions (theta) and transcriptional profiles (beta)
results <- getBetaTheta(optLDA, perc.filt = 0.05, betaScale = 1000)
deconProp <- results$theta
deconGexp <- results$beta
## visualize deconvolved cell-type proportions
vizAllTopics(deconProp, pos,
             groups = annot, 
             group_cols = rainbow(length(levels(annot))),

More details can be found in the tutorials.



To install STdeconvolve, we recommend using remotes:


STdeconvolve is also now available through Bioconductor.

Note that through Bioconductor (release 3.15), the R version must be >=4.2.

if (!require("BiocManager", quietly = TRUE))

# The following initializes usage of Bioc devel



We welcome any bug reports, enhancement requests, general questions, and other contributions. To submit a bug report or enhancement request, please use the STdeconvolve GitHub issues tracker. For more substantial contributions, please fork this repo, push your changes to your fork, and submit a pull request with a good commit message.

Reproducing Analyses

Links below point to code outlining the preprocessing of datasets used for analyses in the manuscript.

Examples of STdeconvolve being used in “the wild”

We are extremely excited and humbled that STdeconvolve is being applied by members of the scientific community! Examples of these applications will be listed here when available to give other users an idea of how this tool is being used.