ccc-skill

Domain expertise for cell-cell communication (CCC) analysis. Intent-to-tool routing, workflow patterns, code templates, and pitfall warnings for LIANA+, CellPhoneDB, CellChat, NicheNet, COMMOT, Squidpy, MEBOCOST, DIALOGUE, and 10+ additional tools across scRNA-seq and spatial transcriptomics data.

Cell-Cell Communication Analysis Skill

You are an expert in cell-cell communication (CCC) inference from single-cell and spatial transcriptomics. Use this skill to select the right tool, design the workflow, and generate correct code.

Decision Tree

Use this decision tree to recommend the right tool(s). Multiple tools can be combined.

Step 1: What is the primary analysis goal?

GoalRecommended Tool(s)Guide
Ligand-receptor inference (steady-state)LIANA+ rank_aggregate or CellPhoneDBliana.md, cellphonedb.md
LR with signaling pathway hierarchyCellChatcellchat.md
Ligand → downstream target gene predictionNicheNet / MultiNicheNetnichenet.md
Spatial CCC with distance decayCOMMOT or LIANA+ bivariatecommot.md, liana.md
Spatial CCC within scanpy/scverse pipelineSquidpy sq.gr.ligrec()squidpy.md
Spatial CCC + H&E morphologystLearn — docs
Spatial CCC + knowledge graph pathway cascadeSpaTalk — GitHub
Spatial signaling direction / vector fieldsCOMMOTcommot.md
Multi-sample / multi-condition comparisonLIANA+ tensor/MOFA+, CellChat merged, MultiNicheNetliana.md, cellchat.md, nichenet.md
Cross-context CCC pattern discovery (tensor)cell2cell / Tensor-cell2cell — GitHub
Differential CCC network analysisCrossTalkeR — GitHub
Differential CCC with aging focusscDiffCom — GitHub
Multi-view spatial learningLIANA+ MISTyliana.md
Metabolite-mediated CCC (non-protein)MEBOCOSTmebocost.md
Multicellular coordination programsDIALOGUEdialogue.md
Causal signal flow inference (post-CCC)FlowSig — GitHub
GRN + TF perturbation (downstream of CCC)CellOracle — GitHub
Multi-omic GRN (scRNA+scATAC)SCENIC+ — GitHub
Single-cell resolution CCC (not aggregated)NICHES or Scriabin — NICHES, Scriabin
Neural-specific CCC (brain data)NeuronChat — GitHub

Step 2: What data type?

Data TypeCompatible Tools
scRNA-seq (Python/AnnData)LIANA+, CellPhoneDB, MEBOCOST, Squidpy
scRNA-seq (R/Seurat)CellChat, NicheNet, DIALOGUE, NICHES, Scriabin
Spatial spot-based (Visium)LIANA+ bivariate, COMMOT, CellChat v2, Squidpy, stLearn, SpaTalk
Spatial single-cell (MERFISH, Xenium)COMMOT, LIANA+ bivariate/inflow, CellChat v3
Multi-modal (MuData)LIANA+
Multi-sample comparisonLIANA+ tensor/MOFA+, CellChat merged, MultiNicheNet, cell2cell, scDiffCom
Brain / neuronalNeuronChat (specialized LR database)

Step 3: Language preference?

LanguageTools
PythonLIANA+, CellPhoneDB, COMMOT, Squidpy, MEBOCOST, CellOracle, SCENIC+, FlowSig, stLearn, cell2cell
RCellChat, NicheNet/MultiNicheNet, DIALOGUE, NICHES, Scriabin, SpaTalk, CrossTalkeR, scDiffCom, NeuronChat

Tools with Full Guides (8)

ToolLanguageGuideUnique Strength
LIANA+Pythonliana.mdMulti-method meta-analysis + spatial + tensor/MOFA+
CellPhoneDBPythoncellphonedb.mdCurated DB + heteromeric complexes + v5 scoring
CellChatRcellchat.mdPathway hierarchy + rich visualization + comparison
NicheNetRnichenet.mdLigand→TF→target prediction + MultiNicheNet
COMMOTPythoncommot.mdOptimal transport spatial CCC + vector fields
SquidpyPythonsquidpy.mdscverse ecosystem LR analysis, zero-friction spatial
MEBOCOSTPythonmebocost.mdMetabolite-mediated CCC (non-protein signals)
DIALOGUERdialogue.mdMulticellular programs (cross-cell-type coordination)

Additional Tools (brief reference)

These tools are referenced in the decision tree but do not have dedicated guides. Use official documentation.

ToolLanguageStarsWhen to UseLink
CellOraclePython440GRN + in silico TF perturbation → predict cell state after signalGitHub
SCENIC+Python251Multi-omic GRN (scRNA+scATAC) → regulatory context of CCCGitHub
stLearnPython244Spatial CCC combining H&E morphology + expressionGitHub
MultiNicheNetR185Multi-sample differential CCC (pseudobulk + edgeR)GitHub
ScriabinR106Single-cell resolution CCC, atlas-scaleGitHub
FlowSigPython86Causal flow inference on top of CCC outputs (post-analysis)GitHub
cell2cellPython79Tensor decomposition across contexts (time/tissue/disease)GitHub
SpaTalkR76Spatial + knowledge graph LR→target pathway cascadeGitHub
NICHESR58Single-cell resolution niche interactions (cell-pair objects)GitHub
CrossTalkeRR/Python49Differential CCC network visualization + centralityGitHub
NeuronChatR45Neural-specific LR database (synaptic, gap junction, neuromodulator)GitHub
scDiffComR25Differential CCC with built-in 5K LR database, aging atlasGitHub

Universal CCC Principles

LR Database Selection

  • consensus (LIANA+ default): union of multiple databases — broadest coverage, recommended for discovery
  • CellPhoneDB: manually curated, strong on heteromeric complexes — best for confidence
  • CellChatDB: pathway-annotated — best when you need pathway-level grouping
  • Omnipath (Squidpy default): comprehensive multi-source integration
  • Custom: always an option; filter to expressed genes for performance

Preprocessing Requirements (all tools)

  • Normalized, log-transformed expression (NOT raw counts, NOT scaled/z-scored)
  • Cell type annotations in metadata
  • For spatial: coordinates in the correct unit system

Interpreting Results

  • No single tool is ground truth — consider running 2+ tools and looking for consensus
  • Magnitude vs specificity: high expression doesn't mean specific; highly specific doesn't mean strong
  • Permutation p-values: affected by cell type size imbalance — small populations have less power
  • Spatial distance: paracrine signals (~100-500um) vs juxtacrine/contact (~10-50um) need different cutoffs

Common Mistakes to Avoid

  1. Using scaled/z-scored data (destroys zeros needed for proportion calculation)
  2. Using raw integer counts (most tools expect normalized data)
  3. Ignoring expr_prop / expression threshold — lowering it inflates false positives
  4. Comparing CCC across conditions without multi-sample statistics (pseudoreplication)
  5. Over-interpreting low-ranked interactions from a single method

How to Use Guides

Each guide in guides/ contains:

  1. When to use — scenarios where this tool is the right choice
  2. Installation — quick setup
  3. Core workflow — step-by-step code template
  4. Key parameters — what matters and what to tune
  5. Output format — where results are stored and how to access them
  6. Visualization — plotting code
  7. Pitfalls — tool-specific gotchas

Read the relevant guide(s) based on the decision tree above, then generate code following the templates. For tools without guides, refer to the official documentation linked in the table.