kstreet13 / slingshot

Functions for identifying and characterizing continuous developmental trajectories in single-cell data.
259 stars 42 forks source link

Reversed pseudotime inference #165

Closed tf1993614 closed 2 years ago

tf1993614 commented 2 years ago

Hi,

I recently used slingshot to do the pseudotime inference analysis on my data. It seems that the result is reversed.

The marker genes (they are known for having high expression in late developmental stage) now have highest expression in the cluster with lowest pseudotime values, which I assumed the starting population.

Do you have any idea about this problem?

Looking forward to hearing from you.

kstreet13 commented 2 years ago

Hi @tf1993614 ,

When you ran Slingshot, did you specify a starting cluster? We strongly recommend doing that, especially when you have some additional biological knowledge, which it sounds like you do. Otherwise with one lineage, I think Slingshot will still pick a starting point based on the alphabetical order of the two leaf node (endpoint) clusters, which is basically a random guess (I haven't checked this since we started relying on TrajectoryUtils for the MST, though).

Best, Kelly

tf1993614 commented 2 years ago

Hi Kelly,

Thanks for your response. I tried your suggestion and it works well.

One more question. It seems that my trajectory shows a linear type instead of curve-like type as shown in the Slingshot tutorial. I am wondering if this is alright?

UMAP plot for oocyte subtype

As I said before, I know which genes have higher expression in later developmental stage (See dot plot below). The cluster 1 has the highest relative expression for those marker genes. Therefore, I assumed cells in cluster 1 may be in later developmental stage.

dot plot for marker genes expression in each oocyte subtype

I set cluster 1 as the endpoint and cluster 3 as the startpoint and then ran slingshot to get pesudotine values. It look like this:

UMAP plot for oocyte subtype identification 2

Do you think what I have done is correct? I am afraid that manually setting starting point and end point may be too subjective.

Finally, does slingshot include any function to visualize the gene expression change along with pseudotime?

I am a newbee in this field. Sorry to trouble you too much. Have a nice day.

Cheers, Feng

kstreet13 commented 2 years ago

Hi Feng,

Yeah, I think this generally sounds like a good strategy!

Regarding your first question, I don't think you need to worry about the trajectory appearing linear. I can't imagine that would be a problem.

As for supervision, you really only need one bit of information to ensure the correct orientation (as you have seen). So you don't need to set an endpoint, it should be sufficient to just set start.clus = 3.

And slingshot no longer does (much) visualization, as we recently moved those functions to the traviz package (and if you're interested in testing for differential expression along pseudotime, I would highly recommend the tradeSeq package!)

Hope this helps! Kelly

tf1993614 commented 2 years ago

Hi Kelly,

Thank you very much for your help. It is really helpful!!!

Cheers,

Feng