scMetaLink is an R package for inferring metabolite-mediated cell-cell communication from single-cell and spatial transcriptomics data.
š Documentation: https://Zaoqu-Liu.github.io/scMetaLink/
Metabolites serve as critical signaling molecules in the cellular microenvironment. While tools like CellChat and CellPhoneDB have advanced our understanding of ligand-receptor interactions, the metabolic dimension of intercellular communication remains underexplored. scMetaLink addresses this gap by integrating enzyme expression, transporter activity, and receptor-metabolite interactions to reconstruct metabolite-mediated communication networks.
scMetaLink utilizes MetalinksDB, containing:
install.packages("scMetaLink", repos = "https://zaoqu-liu.r-universe.dev")
# Install devtools if needed
if (!require("devtools")) install.packages("devtools")
devtools::install_github("Zaoqu-Liu/scMetaLink")
library(scMetaLink)
# Create scMetaLink object
obj <- createScMetaLink(
expression_data = expr_matrix,
cell_meta = cell_metadata,
cell_type_column = "cell_type"
)
# Infer metabolite production and sensing
obj <- inferProduction(obj)
obj <- inferSensing(obj)
# Compute communication with significance testing
obj <- computeCommunication(obj, n_permutations = 1000)
obj <- filterSignificantInteractions(obj, pvalue_threshold = 0.05)
# Visualize results
plotCommunicationHeatmap(obj)
plotCommunicationCircle(obj)For Seurat users:
result <- runScMetaLinkSeurat(seurat_obj, cell_type_column = "cell_type")scMetaLink supports spatial transcriptomics data with distance-weighted communication analysis.
library(scMetaLink)
# Load spatial data
data(st_expr)
data(st_meta)
data(st_scalefactors)
# Create spatial scMetaLink object
obj <- createScMetaLinkFromSpatial(
expression_data = st_expr,
spatial_coords = st_meta[, c("x", "y")],
cell_meta = st_meta,
cell_type_column = "cell_type",
scale_factors = st_scalefactors
)
# Infer production and sensing
obj <- inferProduction(obj)
obj <- inferSensing(obj)
# Compute spatially-weighted communication
obj <- computeSpatialCommunication(
obj,
method = "knn", # K-nearest neighbors (recommended for Visium)
k_neighbors = 6, # Hexagonal grid neighbors
n_permutations = 1000
)
# Filter and visualize
obj <- filterSignificantInteractions(obj)
plotSpatialCellTypes(obj)
plotSpatialCommunicationNetwork(obj)
plotSpatialFeature(obj, metabolite = "L-Lactic acid", type = "production")where denotes biosynthetic enzymes for metabolite , is the evidence weight, and represents secretion potential.
| Tutorial | Description |
|---|---|
| Quick Start | Basic workflow |
| Theory | Mathematical framework |
| Production & Sensing | Inference details |
| Communication | Statistical analysis |
| Spatial Analysis | Spatial transcriptomics |
| Lactate Signaling | Lactate-mediated communication |
| Visualization | Plotting functions |
| Applications | Case studies |
If you use scMetaLink in your research, please cite:
Liu Z, et al. (2026). scMetaLink: Inferring metabolite-mediated cell-cell
communication from single-cell and spatial transcriptomics data.