Infer ligand-receptor interactions and cell-cell communication networks from single-cell RNA-seq data using the LIANA+ framework. Identifies potential signaling events between cell types based on gene expression patterns and curated ligand-receptor interaction databases.
Infer ligand-receptor interactions and cell-cell communication networks from single-cell RNA-seq data using the LIANA+ framework. Identifies potential signaling events between cell types based on gene expression patterns and curated ligand-receptor interaction databases.
[CellCellCommunication]
cache = true
[CellCellCommunication.in]
sobjfile = ["path/to/seurat_object.rds"] # Seurat (.rds, .h5seurat) or AnnData (.h5ad)
[CellCellCommunication.envs]
# Method selection
method = "cellchat" # Default inference method
# Cell type grouping
groupby = "ident" # Column name for cell type labels (default: Seurat ident)
# Species selection
species = "human" # "human" or "mouse"
# Filtering parameters
expr_prop = 0.1 # Minimum expression proportion (0.0-1.0)
min_cells = 5 # Minimum cells per cell type
# Statistical parameters
n_perms = 1000 # Permutations for permutation testing
seed = 1337 # Random seed for reproducibility
# Computational resources
ncores = 1 # Number of parallel cores
# Advanced options
subset = "" # Expression to subset cells (e.g., "adata.obs.group == 'control'")
split_by = "" # Column to run analysis separately and combine
assay = "RNA" # Assay to use for Seurat objects
LIANA+ provides multiple methods for cell-cell communication inference:
| Method | Description | Magnitude Score | Specificity Score |
|---|---|---|---|
CellChat | Mass-action-based communication probability | lr_means | cellchat_pvals |
CellPhoneDB | Permutation-based significance | lr_means | cellphone_pvals |
Connectome | Interaction-specific scoring | - | - |
log2FC | Log-fold change based | - | - |
NATMI | Network analysis | - | - |
SingleCellSignalR | Database-driven scoring | - | - |
Rank_Aggregate | Aggregates multiple methods | - | - |
Geometric_Mean | Geometric mean scoring | - | - |
Default method: cellchat (recommended for most analyses)
# Human (default)
species = "human" # Uses 'consensus' resource (CellPhoneDB, CellChat, ICELLNET, etc.)
# Mouse
species = "mouse" # Uses 'mouseconsensus' resource
resource_name)consensus (human default): Combines multiple curated resourcescellchatdb: CellChat database interactionscellphonedb: CellPhoneDB interactionsmouseconsensus (mouse default): Mouse-specific consensusicellnet, connectomedb2020, ramilowski2015, lrdb, and more[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/seurat_object.rds"]
[CellCellCommunication.envs]
# Use defaults: method=cellchat, species=human, groupby=ident
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/pbmc_seurat.rds"]
[CellCellCommunication.envs]
method = "cellchat"
species = "human"
groupby = "cell_type" # Use annotated cell types
expr_prop = 0.1
min_cells = 10
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/mouse_seurat.rds"]
[CellCellCommunication.envs]
species = "mouse"
method = "cellchat"
groupby = "seurat_clusters"
expr_prop = 0.15
min_cells = 8
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/combined_seurat.rds"]
[CellCellCommunication.envs]
split_by = "condition" # Run separately per condition, then combine
method = "cellchat"
groupby = "cell_type"
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/seurat_object.rds"]
[CellCellCommunication.envs]
subset = "adata.obs.tissue == 'tumor'"
subset_using = "python"
method = "cellchat"
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["intermediate/seuratclustering/SeuratClustering/sample.seurat.qs"]
[CellCellCommunication.envs]
method = "cellchat"
groupby = "ident"
expr_prop = 0.1
ncores = 4
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/disease_vs_healthy.rds"]
[CellCellCommunication.envs]
split_by = "disease_status"
method = "cellchat"
groupby = "cell_type"
expr_prop = 0.1
min_cells = 10
[CellCellCommunication]
[CellCellCommunication.in]
sobjfile = ["path/to/seurat_object.rds"]
[CellCellCommunication.envs]
method = "cellchat"
expr_prop = 0.2 # Higher expression threshold
min_cells = 20 # More cells required
species = "human" or species = "mouse" to match your organismgroupby column must exist in metadata; use CellTypeAnnotation or SeuratClustering resultsexpr_prop between 0.0-1.0; recommended 0.1 for human, 0.15 for mousemin_cells minimum cells per type; recommended 5-10 cells per typeSolutions: Lower expr_prop (e.g., 0.1→0.05), reduce min_cells, check groupby column, verify species parameter
Solutions: Verify species matches organism, ensure gene symbols in correct format (human: uppercase, mouse: title case)
Solutions: Increase ncores, reduce n_perms for permutation methods, use faster cellchat method
Solutions: Reduce ncores, use subset to analyze specific cell types, merge rare cell types
Solutions: Increase expr_prop, check cell type annotations, consider spatial context of data