Pseudotime and trajectory analysis: when it means something, and when it does not
Monocle3, Slingshot and RNA velocity produce a trajectory from almost any dataset. How to tell whether yours reflects biology.
Do this on your own data: a pseudotime ordering is a hypothesis, and it reads that way only when the checks are shown next to it. A worked trajectory analysis with those checks: omics.hstgenomics.com/sample-trajectory.
Want it done rather than explained? We do analysis only — send a count matrix, an h5ad or Seurat object, Cell Ranger output or a public accession and get publication-ready results with the code that produced them, at a fixed price agreed before any work starts: omics.hstgenomics.com/quote.
Every trajectory method will return a trajectory. Feed it a mixture of unrelated cell types and it will still order them along a path and colour it as pseudotime. The tool cannot tell you whether the process it drew exists.
The precondition most analyses skip
Trajectory inference assumes your cells sample a continuous process that was actually happening in the tissue. That is plausible for differentiating progenitors, activation states, or a treatment response captured mid-flight. It is not plausible for a set of terminally differentiated types that happen to sit near each other in UMAP space. Ask first: is there a reason to expect cells to be caught in transition here? If the answer is "the UMAP looks connected", that is not a reason — UMAP connectivity is partly an artefact of the embedding.
Choosing a method
- Slingshot — minimal assumptions, works on an existing clustering and embedding, good when you can nominate a starting cluster from biology. Handles branching modestly.
- Monocle3 — learns a graph, handles complex branching, and gives a framework for testing genes along pseudotime. More parameters to get wrong.
- RNA velocity (scVelo) — infers direction from the ratio of unspliced to spliced reads, so it can suggest where cells are heading rather than just how they order. Powerful and fragile: it needs the spliced/unspliced counts produced at alignment time, and the dynamical model can produce confident arrows in datasets where the kinetic assumptions do not hold. Treat direction as a hypothesis, not a measurement.
Four checks before you believe your own trajectory
- Does the root make biological sense? Most methods need you to pick a start. If your pseudotime runs backwards, everything downstream is reversed and still looks smooth.
- Do known markers change monotonically along it? Pick genes whose behaviour you know and check them before looking at anything new.
- Is it stable? Re-run with a different number of principal components, a different clustering resolution, and with one sample held out. A trajectory that changes shape each time is telling you about parameters.
- Does it survive in a second dataset? Even a public one. Trajectories are the analysis most prone to looking beautiful and replicating poorly.
Reporting it honestly
Say what the root was and why it was chosen. Show the marker genes used to orient it. State the method, version and key parameters. And phrase the conclusion as what it is — an ordering consistent with a hypothesis, ideally supported by an independent line of evidence such as a time course, a lineage tracing experiment, or a matched spatial arrangement.
Done that way, trajectory analysis is a good hypothesis generator. Presented as proof of a developmental path from a single timepoint, it is the figure most likely to be challenged in review.