Home

Awesome

SpaTalk

R >4.0 DOI jupyter DOI

A cell-cell communication inference approach for spatially resolved transcriptomic data

<img src='https://github.com/ZJUFanLab/SpaTalk/blob/main/img/SpaTalk.png'>

Spatially resolved transcriptomics (ST) provides the informative details of genes and retained the crucial spatial information, which have enabled the uncovering of spatial architecture in intact organs, shedding light on the spatially resolved cell-cell communications mediating tissue homeostasis, development and disease. However, inference of cell-cell communications for ST data remains a great challenge. Here, we present SpaTalk, a spatially resolved cell-cell communication inference method relying on the graph network and knowledge graph to model ligand-receptor-target signaling network between the spatially proximal cells, which were decomposed from the ST data through the non-negative linear model and spatial mapping between single-cell RNA-seq and ST data. SpaTalk is a reliable method that can help scientists uncover the spatially resolved cell-cell communications for either single-cell or spot-based ST data universally, providing new insights into the understanding of spatial cellular dynamics in tissues.

Install

> install.packages(pkgs = 'devtools')
> devtools::install_github('linxihui/NNLM')
> devtools::install_github('ZJUFanLab/SpaTalk')

# or download the repository as ZIP
> devtools::install_local("/path/to/SpaTalk-main.zip")

Usage

SpaTalk method consists of two components, wherein the first is to dissect the cell-type composition of ST data and the second is to infer the spatially resolved cell-cell communications over the decomposed single-cell ST data. Classification and description of SpaTalk functions are shown in the wiki page and tutorial

# st_data: A matrix containing counts of st data
# st_meta: A data.frame containing x and y
# sc_data: A matrix containing counts of scRNA-seq data as the reference
# sc_celltype:  A character containing the cell types for scRNA-seq data

> obj <- createSpaTalk(st_data, st_meta, species)
> 
> obj
An object of class SpaTalk 
996 genes across 509 spots (0 lrpair)
> 
> obj <- dec_celltype(obj, sc_data, sc_celltype)
# obj: SpaTalk object containg ST and scRNA-seq data
# lrpairs: A data.frame of the system data containing ligand-receptor pairs
# pathways: A data.frame of the system data containing gene-gene interactions and pathways
# celltype_sender
# celltype_receiver

> obj <- find_lr_path(object = obj, lrpairs = lrpairs, pathways = pathways)

> obj <- dec_cci(obj, celltype_sender, celltype_receiver)

OR

> obj <- dec_cci_all(object)

# score in obj@lrpair is the combined score
> str(obj@lrpair)
'data.frame':	9 obs. of  9 variables:
 $ ligand            : chr  "Inhba" "Inhba" "Sst" "Apoe" ...
 $ receptor          : chr  "Acvr1c" "Acvr1c" "Sstr2" "Sdc4" ...
 $ species           : chr  "Mouse" "Mouse" "Mouse" "Mouse" ...
 $ celltype_sender   : chr  "eL6" "Astro" "SST" "Smc" ...
 $ celltype_receiver : chr  "PVALB" "eL2_3" "PVALB" "Astro" ...
 $ lr_co_exp_num     : num  8 8 2 31 21 5 16 4 5
 $ lr_co_ratio       : num  0.216 0.092 0.286 0.912 0.618 ...
 $ lr_co_ratio_pvalue: num  0.001 0.042 0.009 0 0 0.028 0 0.001 0.001
 $ score             : num  0.855 0.837 0.707 0.709 0.709 ...

# score in obj@tf is the intra-cellular score
> str(obj@tf)
'data.frame':	8 obs. of  7 variables:
 $ celltype_sender  : chr  "eL6" "Astro" "SST" "Smc" ...
 $ celltype_receiver: chr  "PVALB" "eL2_3" "PVALB" "Astro" ...
 $ receptor         : chr  "Acvr1c" "Acvr1c" "Sstr2" "Sdc4" ...
 $ tf               : chr  "Smad3" "Smad3" "Smad3" "Smad3" ...
 $ n_hop            : num  1 1 3 3 1 3 1 1
 $ n_target         : num  1 1 1 1 2 1 2 2
 $ score            : num  1 1 0.0565 0.0405 1 0.0871 1 1

Note

CellTalkDB v1.0 KEGG pathway Reactome pathway AnimalTFDB v3.0

SpaTalk uses the ligand-receptor interactions (LRIs) from CellTalkDB, pathways from KEGG and Reactome, and transcrptional factors (TFs) from AnimalTFDB by default. In the current version:

Please refer to the tutorial vignette with demo data processing steps. Detailed functions see the document

News

About

SpaTalk was developed by Xin Shao. Should you have any questions, please contact Xin Shao at xin_shao@zju.edu.cn

Please cite us as "Shao, X., et al. Knowledge-graph-based cell-cell communication inference for spatially resolved transcriptomic data with SpaTalk. Nat Commun 13, 4429 (2022). https://doi.org/10.1038/s41467-022-32111-8"