[The following graph][1] shows an example cell trajectory analysis with monocle.

I have a rough understanding of how monocle constructs the pseudotemporal ordering of cells, using independent component analysis and minimum spanning trees (MST). However, there is one bit of the larger picture, which I'm still missing. How can monocle tell apart the most progenial cell (the source node; the beginning of the pseudotime) from the most differentiated cell (the sink node; the end of pseudotime)?

How does monocle know the direction of progress?

I can think of two possible type of answers to this question:

1. Pseudotime can in fact be reversed with respect to the real, biological time (i.e. beginning of pseudotime actually corresponds to the most differentiated cell, and the end of pseudotime corresponds to the most progenial cell).
2. There is something I don't understand about the biological significance of how monocle computes the minimum spanning tree, the associated diameter path, and the associated PQ tree -- and the process can, in fact, detect biologically correct root node, or it can detect it most of the time.

It is perhaps worth noting that another technique to establish cell trajectory, i.e. RNA velocity, has a very well understood method of establishing precedence, based on differential equations and mRNA biology.

  [1]: https://www.nature.com/articles/nbt.2859/figures/2
Monocle does **not** know/determine the direction - it just finds the endpoints (and chooses one). As you can see from the [vignette][1] there is an argument called "root_state" which allows you to control where the pseudotime starts. There was however a recent paper which infered the direction - you can find it (and their method) [here][2].


  [1]: http://cole-trapnell-lab.github.io/monocle-release/docs/#trajectory-step-3-order-cells-along-the-trajectory
  [2]: https://www.nature.com/articles/s41586-018-0414-6