Note
Both analyses sit on the annotated, integrated object from the core workshop. They answer “how do cells move through states?” (trajectory) and “which cell types talk to which?” (communication) — questions clustering alone cannot.
Warning
Trajectory inference will always return a trajectory — even on noise. The method does not check whether a continuum exists. If your biology is genuinely discrete (e.g. resting PBMC subsets), a pseudotime axis is meaningless. Decide a priori whether a continuum is plausible.
| Tool | Idea | Notes |
|---|---|---|
| Slingshot | smooth principal curves through clusters | robust, R/Bioconductor, needs a start cluster |
| Monocle3 | learns a principal graph; supports branches | popular; learn_graph() + order_cells() |
| PAGA (scanpy) | abstracted graph of cluster connectivity | great for “is there even a continuum?” |
| Diffusion pseudotime | random-walk distance from a root | underlies several Python tools |
Important
You must choose the root. Pseudotime has no inherent direction — the algorithm orders cells, but you decide which end is “start” (usually from a known progenitor marker). Get the root wrong and the whole story reverses.
Note
Two practical gotchas. Monocle 3’s order_cells() is interactive by default (it pops up a GUI to pick the root) — in a batch/HPC script you must pass the root programmatically (root_pr_nodes= / root_cells=). And to find genes that change along a trajectory, use a dedicated test like tradeSeq (GAM-based, branch-aware) rather than a plain two-group FindMarkers.
RNA velocity uses the ratio of unspliced (nascent) to spliced (mature) mRNA to predict each cell’s near-future state; arrows on the embedding show the inferred direction of motion (recreated schematic).
Note
Recreated in our style. Original concept & movies: La Manno et al. 2018, Nature (velocyto.org); modern dynamical model: Bergen et al. 2020, Nat Biotechnol (scVelo, scvelo.org).
Warning
Velocity needs a spliced/unspliced matrix — the standard Cell Ranger filtered_feature_bc_matrix does not contain this. Generate it with velocyto run or kb count --workflow lamanno before running scVelo. If only the filtered matrix is available, velocity cannot be run — the most common reason velocity returns flat arrows.
Warning
Velocity assumptions break quietly. Assumes near-steady-state kinetics; unreliable when capture is shallow or the process is fast. Treat the arrows as a hypothesis, not a measurement.
Tip
Triangulate. When Slingshot, RNA velocity, and CytoTRACE agree on the ordering and root, you can believe it. When they disagree, you’ve learned the trajectory is fragile — report that, don’t pick the prettiest one.
Ligand–receptor inference scores expressed L–R pairs between every cluster pair, with significance from a permutation null; results aggregate into a directed signaling network (recreated schematic).
| Tool | Ecosystem | Distinctive feature |
|---|---|---|
| CellPhoneDB | Python | permutation test; handles multi-subunit complexes |
| CellChat | R | signaling pathways + nice circle/chord visualizations |
| NicheNet | R | links ligands to downstream target genes in the receiver |
| LIANA | R/Py | consensus across many methods/databases |
Note
Recreated in our style. Original methods/figures: Jin et al. 2021, Nat Commun (CellChat, cellchat.org); Efremova et al. 2020, Nat Protoc (CellPhoneDB).
Warning
Co-expression is not interaction. These tools report that a ligand and receptor are expressed in the right places — not that signaling occurs. Pitfalls:
ifnb is a demo, not a model system for trajectoriesNote
The tutorial uses ifnb (resting + IFN-β-stimulated PBMCs) as a mechanics demo — not biology. PBMCs are not a developmental continuum. A pseudotime on ifnb shows you how to run the tools; interpreting it as a real differentiation axis would be wrong. On real data (development, maturation, a time-course), you would:
Single Cell RNA-seq Workshop · Lecture 14