Closed stemangiola closed 2 years ago
Hi @stemangiola ,
I see that you closed the issue, did you figure it out? You may be right about the pink cluster, but I also noticed that Slingshot was using different cluster labels (predicted.celltype.l2
) than the plot (seurat_clusters
), so I thought that might be related. For diagnostic purposes, it can also sometimes help to set asp = 1
in plot
, so that orthogonality is preserved (because the curves are based on orthogonal projection).
Best, Kelly
Hello,
I think I understood that the trajectory heavily depends on clustering, so if I provide clustering from another network (CITE-seq wnn from Seurat) and I project with Diffusion, this can mess things up. Is this correct?
On this note: do you guys have a way to accept weighted-nn (from seurat) to draw Diffusion map and trajectory?
Just to check, are you saying that the clustering would be based on different data than the dimensionality reduction? I think that could work in theory, but it would seem likely to cause some weird inconsistencies (like you saw with the pink and brown clusters, where they show up in multiple distinct locations).
I'm not particularly familiar with diffusion map methods, so I don't know if there is a way to incorporated a weighted-nn graph. I've only ever used the destiny
package, which doesn't make any mention of it that I can find. And Slingshot doesn't use nearest neighbors (unless dist.method = 'mnn'
), so it would usually only impact the trajectory through the dimensionality reduction.
Thanks,
I realised that methods for trajectory analyses, might need supervision to perform the best, for example if a UMAP topology (e.g. CD4 T cells) is too complicated the result might not be plausible, even if I specify the starting cluster as light orange and the end cluster as dark orange.
Of course a possibility is that I am just doing things wrong.
Please see images below as example
pbmc_CD4_slingshot_UMAP =
pbmc_CD4 %>%
RunUMAP(
nn.name = "weighted.nn", reduction.name = "wnn.umap", reduction.key = "wnnUMAP_",
spread = 0.5,min.dist = 0.01, n.neighbors = 10L
) %>%
FindClusters( graph.name = "wsnn", algorithm = 3, resolution = 0.3, verbose = FALSE) %>%
as.SingleCellExperiment() %>%
slingshot::slingshot(
clusterLabels = pull(., seurat_clusters),
reducedDim = "WNN.UMAP",
start.clus= '0', end.clus = c("5", "2" )
)
Yeah, something is definitely weird about that Slingshot plot. It looks like there are 8 lineages, which seems like way too many. This indicates that there's probably an issue with the MST. It could help to plot the MST rather than the final trajectory (by setting type = "lin"
when plotting the SlingshotDataSet
).
Also, from the TSCAN plot, I realized that there are a lot of small clusters that weren't apparent in the first plot (I initially thought there were ~10 clusters, but apparently there are 16?). That, plus the fact that some of the clusters seem to be split across multiple locations on the UMAP plot, is probably going to confuse any method that relies on a cluster-based MST (like Slingshot and TSCAN). For example, there is a vertex indicating a cluster center around (0.9, -0.3), but there are basically no cells there, so that vertex likely corresponds to a cluster that has been split. This is unfortunately a fairly common issue with Louvain clustering + UMAP dimensionality reduction.
Hello,
I run slingshot on diffusion map, and I get a quite apparently wrong trajectory. Am I missing something? Is the problem that the pink cluster is located at two different points of the trajectory.
For completeness the umap looks like this