Closed rorymaizels closed 2 years ago
Hi @rorymaizels thanks for using the tool! Quantification topography for > 2 dimensions is challenging as the nullcline/separatrix can be a surface or a manifold in high dimension space (though fixed points calculations are fine). So right now dynamo is not able to map the topology for embeddings with 2 dimensions. I guess this is the main reason leading to this error. I should make this more explicit in our documentation.
Let me know if you need any other bits of help!
That makes sense! Are there any other options for visualising 2D cross-sections/projections of higher dimensional vector fields? Perhaps not involving nullcline/separatrix/fixed point calculations but only visualising something like a streamline of flow through the vector field? I'd be interested to see how basis dimensionality affects the dynamics of learnt vector fields.
Thanks again!
I got you. To visualize streamline for pairs of two components in different embedding, you can use something like this:
dyn.pl.streamline_plot(adata, color=['clusters'], basis='pca', x=2, y=3, show_legend='on data', show_arrowed_spines=False, cut_off_velocity=False)
When setting cut_off_velocity = False
you are revealing the entire vector field but not just the domains with cells. x/y arguments can be used to set the components you want to use. Let me know whether this satisfies your needs.
That looks like what I'm after, thank you for such speedy help!
Hi,
Thanks for this great tool, I've really enjoyed exploring the new functionalities (especially fate animation!). I've noticed an issue regarding trying to plot topographies of vector fields in PCA spaces of more than 2 dimensions.
If I run through the pipeline delineated in the Zebrafish tutorial with UMAP as my choice of basis, it works fine whether i specify 2 or >2 dimensions in
dyn.pp.recipe_monocle()
anddyn.tl.reduceDimension()
. If I exclusively use PCA as my basis, and specify exactly 2 dimensions, it also works fine. However, if I try to use a PCA basis with >2 dimensions,dyn.vf.VectorField()
works fine but when I try to rundyn.pl.topography()
I get the following error:It's hard for me to parse exactly where things are breaking down - if I might be doing something wrong let me know!
Cheers, Rory
P.s.
If you need more details about the code I ran let me know, here's my dependency info: