Comprehensive assistance with LIANA+ cell-cell communication analysis framework for single-cell, spatially-resolved, and multi-modal omics data.
When to Use This Skill
This skill should be triggered when:
Data Analysis Tasks
Analyzing single-cell RNA-seq data for ligand-receptor interactions
Processing spatially-resolved transcriptomics data with spatial coordinates
Working with multi-modal omics data (e.g., CITE-seq, metabolite data)
Performing cell-cell communication inference across different conditions
Running differential expression analysis for communication networks
Building spatial neighborhood relationships between cells/spots
Specific LIANA+ Features
(CellPhoneDB, CellChat, NATMI, Connectome, etc.)
Verwandte Skills
Using individual CCC methods
Running rank aggregation to combine multiple methods
Creating visualizations (dotplots, tileplots, circle plots)
Processing ligand-receptor resources and custom databases
Implementing MISTy models for spatially-informed multi-view learning
Calculating bivariate metrics for spatial interactions
Managing multi-sample data with tensor-cell2cell or MOFA+
Working with metabolite-receptor interactions via MetalinksDB
Method Development
Comparing different CCC inference methods
Customizing ligand-receptor resources for specific organisms
Implementing spatial analysis workflows
Debugging LIANA+ pipelines and error handling
Optimizing parameters for communication inference
Quick Reference
Core Setup and Data Loading
Example 1 (Basic imports and setup):
import liana as li
import scanpy as sc
import omnipath as op
import decoupler as dc
# Load example data
adata = sc.datasets.pbmc68k_reduced()
Example 2 (Multi-modal data setup):
import numpy as np
import pandas as pd
import scanpy as sc
import liana as li
import mudata as mu
from matplotlib import pyplot as plt
# Load CITE-seq data
prot = sc.read('citeseq_prot.h5ad')
rna = sc.read('citeseq_rna.h5ad')
Running Cell-Cell Communication Methods
Example 3 (Individual method - CellPhoneDB):
from liana.method import cellphonedb
cellphonedb(adata,
groupby='bulk_labels',
resource_name='consensus',
expr_prop=0.1,
verbose=True,
key_added='cpdb_res')
from liana.method import MistyData, genericMistyData, lrMistyData
# Create and run MISTy model
misty = MistyData(adata, intra_groupby='cell_type', extra_groupby='spatial')
misty.run_model()
Example 9 (Multi-view tensor analysis):
# Convert LIANA results to tensor for cell2cell analysis
tensor = li.multi.to_tensor_c2c(adata,
sample_key='sample_id',
score_key='magnitude_rank',
liana_res=adata.uns['liana_res'])
Utility Functions
Example 10 (Data transformation):
# Extract obsm to new AnnData
new_adata = li.utils.obsm_to_adata(adata, obsm_key='spatial')
# Handle negative values
positive_data = li.utils.neg_to_zero(data_matrix, cutoff=0)
# Interpolate data to common space
interpolated = li.utils.interpolate_adata(adata1, adata2)
Key Concepts
Core LIANA+ Components
Ligand-Receptor Methods: Statistical approaches to infer CCC from transcriptomics data
Resources: Prior knowledge databases of ligand-receptor interactions (consensus, CellPhoneDB, etc.)
Magnitude Score: Strength of interaction (e.g., mean expression)
Specificity Score: How specific an interaction is to particular cell type pairs
Rank Aggregation: Combining multiple methods using Robust Rank Aggregation (RRA)
Data Structures
AnnData: Standard single-cell data structure with .X, .obs, .var, .uns
MuData: Multi-modal data structure for multiple omics layers
Spatial Connectivities: Neighborhood relationships between cells/spots
Analysis Types
Steady-state CCC: Standard ligand-receptor inference from single-cell data