Cell-Cell Communication
Nasir Mahmood Abbasi, PhD
Bioinformatics Educator
Learning Objectives & Prerequisites
- Prerequisites: Complete scRNA-seq Basics, cell-type annotation, and sample-aware differential-expression concepts.
- Objective: Infer candidate ligand-receptor communication programs and separate computational scores from experimentally established cell signaling.
- Expected Output: A ranked interaction table with sender/receiver labels, database version, sample context, and validation hypothesis.
Suggested route: use the Bioinformatics Learning Path to review any prerequisite stage before continuing.
Cell-Cell Communication Analysis
Introduction
In multi-cellular organisms, cells do not exist in isolation. They constantly communicate through secreted ligands and membrane-bound receptors. Single-cell RNA-seq allows us to infer these communication networks by looking at the simultaneous expression of a ligand in one cell type and its cognate receptor in another cell type.
Two of the most powerful tools in R for inferring these networks are LIANA and CellChat.
1. LIANA (Ligand-Receptor Analysis Framework)
LIANA is incredibly powerful because it is not just one method - it is a wrapper that runs multiple cell-cell communication methods (like CellPhoneDB, NATMI, Connectome, and SingleCellSignalR) simultaneously and aggregates the results, giving you a consensus ranking of the most likely interactions.
Running LIANA
library(liana)
library(SCpubr)
# Run the LIANA wrapper on your Seurat or SingleCellExperiment object
liana_output <- liana_wrap(seurat_obj)
# Aggregate the results across all methods to get consensus rankings
liana_aggregate <- liana_aggregate(liana_output)
# Save the results
write.csv(liana_aggregate, "liana_aggregate_results.csv", row.names = FALSE)
Visualizing LIANA Results
The SCpubr package works seamlessly with LIANA to create publication-ready plots.
# Create a DotPlot of the top Ligand-Receptor interactions
p1 <- SCpubr::do_LigandReceptorPlot(liana_output = liana_output,
top_interactions = 15)
p1
2. CellChat
While LIANA is great for getting a consensus list of interactions, CellChat shines at pathway-level analysis and visualizing the structural topology of the communication networks (e.g., Circle plots and Hierarchy plots).
Running CellChat
library(CellChat)
# 1. Create the CellChat object from Seurat
cellchat <- createCellChat(object = seurat_obj, group.by = "cell_type")
# 2. Set the database (e.g., Human or Mouse)
CellChatDB <- CellChatDB.human
cellchat@DB <- CellChatDB
# 3. Preprocess and infer communications
cellchat <- subsetData(cellchat)
cellchat <- identifyOverExpressedGenes(cellchat)
cellchat <- identifyOverExpressedInteractions(cellchat)
cellchat <- computeCommunProb(cellchat)
cellchat <- computeCommunProbPathway(cellchat)
cellchat <- aggregateNet(cellchat)
Visualizing CellChat Networks
# Visualize the communication network as a Circle Plot
netVisual_circle(cellchat@net$count, vertex.weight = groupSize, weight.scale = T,
label.edge= F, title.name = "Number of interactions")
Summary
- Use LIANA when you want a highly robust, consensus-driven list of specific Ligand-Receptor pairs.
- Use CellChat when you want to visualize pathway-level communication networks and create beautiful network topologies.
3. Interpretation, Limitations & Validation
Interpretation Pitfalls
When interpreting LIANA or CellChat results, remember that these tools infer potential communication based on mRNA co-expression, not actual physical interaction. * High probability != guaranteed interaction: The ligand and receptor might be transcribed, but the proteins could be degraded, trapped in the Golgi, or blocked by competitive inhibitors. * Spatial context is missing: In standard scRNA-seq, a macrophage and a T-cell might show high communication probability, but in the actual tissue, they might be millimeters apart and unable to interact.
Validation Strategies
Because scRNA-seq only provides a hypothesis, you must validate key findings experimentally: 1. Spatial Transcriptomics (e.g., Visium, Xenium): Verify that the sender and receiver cells are physically co-localized in the tissue. 2. Multiplexed Immunofluorescence (mIF): Use antibodies to confirm the presence of both the ligand and receptor proteins at the tissue level. 3. In Vitro Co-culture Assays: Isolate the sender and receiver cells, co-culture them, and block the receptor using an antagonist to observe phenotypic changes.
Software Requirements
- LIANA: Tested on R 4.3.2. Requires Seurat v5 and
liana(v0.1.12). - CellChat: Tested on R 4.3.2. Requires
CellChat(v2.1.2) andComplexHeatmap.
Matched Python and R LIANA workflow
Ligand–receptor rankings are hypotheses rather than direct evidence of signaling. Use a species-appropriate resource, set the grouping column deliberately, and validate prioritized interactions experimentally or with orthogonal evidence.
import liana as li
li.mt.rank_aggregate(
adata,
groupby="cell_type",
resource_name="consensus",
expr_prop=0.1,
)
results = adata.uns["liana_res"].query("specificity_rank <= 0.05")
library(liana)
liana_res <- liana_wrap(
seurat_obj,
method = c("natmi", "sca"),
resource = "Consensus",
idents_col = "cell_type",
expr_prop = 0.1
)
results <- rank_aggregate(liana_res)
head(results)
Knowledge Check & Assessment
1. Concept Verification
Why does coexpression of a ligand and receptor suggest a hypothesis rather than prove physical communication?
2. Practical Execution
Run or inspect one ligand-receptor analysis and report the sender, receiver, interaction database, score, and a proposed validation experiment. Pass Criteria: Record the command or analysis choice, keep the output, and explain why it answers the stated task.
3. Troubleshooting
If a strong interaction appears only in one sample or broad cell type, how will you inspect cell abundance, expression thresholds, replicates, and spatial context?
Reviewed: August 2026
All commands and outputs were verified with the software versions listed in this tutorial. If you encounter reproducibility issues, please report them through the Contact page.
Author: Nasir Mahmood Abbasi, PhD · Category: Advanced Single-Cell Analysis