Package: SPOTlight 1.17.0

Marc Elosua-Bayes

SPOTlight: `SPOTlight`: Spatial Transcriptomics Deconvolution

`SPOTlight` provides a method to deconvolute spatial transcriptomics spots using a seeded NMF approach along with visualization tools to assess the results. Spatially resolved gene expression profiles are key to understand tissue organization and function. However, novel spatial transcriptomics (ST) profiling techniques lack single-cell resolution and require a combination with single-cell RNA sequencing (scRNA-seq) information to deconvolute the spatially indexed datasets. Leveraging the strengths of both data types, we developed SPOTlight, a computational tool that enables the integration of ST with scRNA-seq data to infer the location of cell types and states within a complex tissue. SPOTlight is centered around a seeded non-negative matrix factorization (NMF) regression, initialized using cell-type marker genes and non-negative least squares (NNLS) to subsequently deconvolute ST capture locations (spots).

Authors:Marc Elosua-Bayes [aut, cre], Zachary DeBruine [aut], Helena L. Crowell [aut]

SPOTlight_1.17.0.tar.gz
SPOTlight_1.17.0.zip(r-4.7-x86_64)SPOTlight_1.17.0.zip(r-4.7-arm64)SPOTlight_1.17.0.zip(r-4.6-x86_64)SPOTlight_1.17.0.zip(r-4.6-arm64)SPOTlight_1.17.0.zip(r-4.5-x86_64)
SPOTlight_1.17.0.tgz(r-4.6-x86_64)SPOTlight_1.17.0.tgz(r-4.6-arm64)SPOTlight_1.17.0.tgz(r-4.5-x86_64)SPOTlight_1.17.0.tgz(r-4.5-arm64)
SPOTlight_1.17.0.tar.gz(r-4.7-arm64)SPOTlight_1.17.0.tar.gz(r-4.7-x86_64)SPOTlight_1.17.0.tar.gz(r-4.6-arm64)SPOTlight_1.17.0.tar.gz(r-4.6-x86_64)
SPOTlight_1.17.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
SPOTlight/json (API)

# Install 'SPOTlight' in R:
install.packages('SPOTlight', repos = c('https://bioc.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/marcelosua/spotlight/issues

Uses libs:
  • c++– GNU Standard C++ Library v3
  • openmp– GCC OpenMP (GOMP) support library

On BioConductor:SPOTlight-1.17.0(bioc 3.24)SPOTlight-1.16.0(bioc 3.23)

singlecellspatialstatisticalmethodcppopenmp

7.55 score 216 stars 321 scripts 1.0k downloads 11 exports 38 dependencies

Last updated from:ad59a485ef. Checks:1 NOTE, 14 ERROR, 1 OK. Indexed: yes.

TargetResultTimeFilesSyslog
bioc-checksNOTE172
linux-devel-arm64ERROR272
linux-devel-x86_64ERROR459
source / vignettesERROR387
linux-release-arm64ERROR295
linux-release-x86_64ERROR504
macos-release-arm64ERROR316
macos-release-x86_64ERROR620
macos-oldrel-arm64ERROR228
macos-oldrel-x86_64ERROR657
windows-devel-arm64ERROR411
windows-devel-x86_64ERROR439
windows-release-arm64ERROR481
windows-release-x86_64ERROR330
windows-oldrel-x86_64ERROR335
wasm-releaseOK167

Exports:getMGSmockSCmockSPplotCorrelationMatrixplotImageplotInteractionsplotSpatialScatterpieplotTopicProfilesrunDeconvolutionSPOTlighttrainNMF

Dependencies:abindBiobaseBiocGenericsclicpp11DelayedArrayfarvergenericsGenomicRangesggplot2gluegtableIRangesisobandlabelinglatticelifecycleMatrixMatrixGenericsmatrixStatsR6RColorBrewerRcppRcppEigenrlangS4ArraysS4VectorsS7scalesSeqinfoSingleCellExperimentSparseArraysparseMatrixStatsSummarizedExperimentvctrsviridisLitewithrXVector

Readme and manuals

Help Manual

Help pageTopics
.init_nmf <- function(x, groups, mgs, n_top = NULL, gene_id = "gene", group_id = "cluster", weight_id = "weight") # check validity of input arguments if (is.null(n_top)) n_top <- max(table(mgs[[group_id]])) stopifnot( is.character(gene_id), length(gene_id) == 1, is.character(group_id), length(group_id) == 1, is.character(weight_id), length(weight_id) == 1, c(gene_id, group_id, weight_id) is.numeric(n_top), length(n_top) == 1, round(n_top) == n_top) ng <- nrow(x) nc <- ncol(x) names(ks) <- ks <- unique(groups) # subset 'n_top' features mgs <- split(mgs, mgs[[group_id]]) mgs <- lapply(mgs, function(df) o <- order(df[[weight_id]], decreasing = TRUE) n <- ifelse(nrow(df) < n_top, nrow(df), n_top) df[o, ][seq_len(n), ] ) # subset unique features mgs <- lapply(ks, function(k) g1 <- mgs[[k]][[gene_id]] g2 <- unlist(lapply(mgs[ks != k], `[[`, gene_id)) mgs[[k]][!g1 ) # W is of dimension (#groups)x(#features) with W(i,j) # equal to weight if j is marker for i, and ~0 otherwise W <- vapply(ks, function(k) w <- numeric(ng) + 1e-12 names(w) <- rownames(x) ws <- mgs[[k]][[weight_id]] w[mgs[[k]][[gene_id]]] <- ws return(w) , numeric(ng)) # there is no need to initialize H tp <- paste0("topic_", seq_len(length(ks))) dimnames(W) <- list(rownames(x), tp) return(W) Filter features from expression matrix.filter
Synthetic single-cell, mixture and marker datadata getMGS mockSC mockSP
Plot Correlation MatrixplotCorrelationMatrix
Plot JP(E)G/PNG/Raster/RGB imagesplotImage
Plot group interactionsplotHeatmap plotInteractions plotNetwork
Spatial scatterpieplotSpatialScatterpie
Plot NMF topic profilesplotTopicProfiles
Run Deconvolution using NNLS modelrunDeconvolution
Deconvolution of mixture using single-cell dataSPOTlight
train NMF modeltrainNMF