I returned a Seurat object with a diffusion map by

 seurat_object <- RunDiffusion(seurat_object,genes.use = seurat_object@var.genes)

as below

enter image description here

Now, how I could know the order of a cell's projection onto this principal curve representing its predicted progression through the development by fitting a principal curve on my diffusion map?

I know Seurat slot for DM1 and DM2 is inside the seurat@dr



I draw this graph of my cells

enter image description here

But how I know the first and last cells on curve? I mean how I know cells from each cluster is being placed where on the curve? By fit$ord I will obtain orders of cells on the line but how I know the first and end of the line?????


1 Answer 1


If fit$ord gives you the order of cells on the curve, you should be able to obtain the first and last cells by doing the following:

first_cell_index <- which.min(fit$ord)
last_cell_index <- which.max(fit$ord)

However, I'm not sure this is so informative - if you're looking to get representative gene expression for the start and end of the curve, you should really be looking at the cluster of cells towards the start and end of the curve - for example, by comparing cells in clusters 1 and 3 that you showed in your first plot. A single cell will suffer from dropout and not tell you a lot about the cluster.

  • $\begingroup$ Thank you, fit$lambda gives me pseudotime amount; Now I want to have a violin plot for lambda for each cell and each cluster $\endgroup$
    – Exhausted
    Oct 22, 2018 at 14:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.