Diffusion Pseudo Time (DPT) is a pseudo time metric based on the transition probability of a diffusion process (Haghverdi et al. 2016).
DPT in addition to its primary function of creating
DiffusionMaps from data.
DPT is in practice independent of Diffusion Maps:
par(mar = rep(0, 4)) graph <- igraph::graph_from_literal( data -+ 'transition probabilities' -+ DiffusionMap, 'transition probabilities' -+ DPT) plot( graph, layout = igraph::layout_as_tree, vertex.size = 50, vertex.color = 'transparent', vertex.frame.color = 'transparent', vertex.label.color = 'black')
However in order not to overcomplicate things, in destiny, you have to create
DPT objects from
(If you really only need the DPT, skip Diffusion Component creation by specifying
n_eigs = 0)
## Warning: 'as(<dsCMatrix>, "dsTMatrix")' is deprecated. ## Use 'as(., "TsparseMatrix")' instead. ## See help("Deprecated") and help("Matrix-deprecated").
The resulting object of a call like this will have three automatically chosen tip cells. You can also specify tip cells:
Plotting without parameters results in the DPT of the first root cell:
TODO: wide plot
Other possibilities include the DPT from the other tips or everything supported by
TODO: wide plot
DPT object also contains a clustering based on the tip cells and DPT, and you can specify where to draw paths from and to:
You can further divide branches. First simply plot branch colors like we did above, then identify the number of the branch you intend to plot, and then specify it in a subsequent
plot call. In order to see the new branches best, we specify a
dcs argument that visually spreads out out all four branches.
Haghverdi, Laleh, Maren Büttner, F Alexander Wolf, Florian Buettner, and Fabian J Theis. 2016. “Diffusion Pseudotime Robustly Reconstructs Lineage Branching.” Nature Methods, August. https://doi.org/10.1038/nmeth.3971.