Comments (4)
Hi @galicae ,
Thank you for the detailed report! I have not yet been able to reproduce the error, but I have a few thoughts. The quickest workaround might be to use the diagonal (rather than full) covariance structure. To do this, you will need to pass this function to getLineages
as the dist.fun
argument.
Additionally (and I'm just guessing here), it looks like the coordinates you're passing in from the diffusion map are all quite small, between -0.04 and 0.04. So the computational issues may be related to handling very small numbers. If this is the case, you might be able to solve this by multiplying the coordinates by a large constant (100 to 1000?).
Also, did you mean to attach the file sim98_slingshot_destiny_log_k1
? In your code, you import sim98_destiny_log_k1
and it looks like that is a diffusion map object (as opposed to a SlingshotDataSet
).
from slingshot.
Hey Kelly,
Wow that was fast :) thanks for taking the time!
I think there is merit in the "multiply by 100/1000" guess/solution, but it doesn't explain why adding noise to the diffusion components solves the problem. You are right about the file - I misclicked D: it was supposed to be `sim98_destiny_log_k" (no "1"s though), the diffusion map on which coordinates I want to calculate the lineage. I am going to update the original post.
Also, thanks for the pointer to use the diagonal instead of the full covariance. Seems cleaner than the random noise idea. Will try that too.
cheers,
Niko
EDIT: updated!
from slingshot.
Hey Niko,
Thanks! I'm now able to reproduce the error and I think the problem may have to do with some of the clusters being highly linear. I tried to invert the sums of all pairwise combinations of cluster covariance matrices and found that certain clusters were more "problematic" than others and most of these clusters were highly linear. For example, here are all ten dimensions of Cluster 4:
This could explain why adding some Gaussian noise solves the problem (and multiplying by a large constant does not).
I'm not super familiar with Mclust
, but I think you might be able to avoid this by either decreasing the range of possible clusters (I got 47, which seems like a lot, but it's also not unreasonable for 9500 cells) or by adjusting the modelNames
parameter, which affects cluster shape.
Best,
Kelly
from slingshot.
Thanks a lot for your time! Your suggestions more or less answer my question. Would be happy to revisit if you decide to include clustering in future slingshot versions ๐
best,
Niko
from slingshot.
Related Issues (20)
- Curves and lineages HOT 3
- Error in igraph::shortest_paths(tree, from = l, to = ends, mode = "out", : At core/paths/dijkstra.c:360 : Weight vector must not contain NaN values, Invalid value HOT 3
- Average curve weights and Pseudotime HOT 1
- slingshot analysis on PCA but visualization on UMAP HOT 3
- how to analyze with 3 different treatments HOT 4
- how to calclate the POS to compare other algorithm? HOT 2
- Pulling and plotting Differential pseudotime data across different conditions/metadata slots HOT 1
- `embedCurves` should also map MST into new space HOT 1
- Slingshot followed by CellRank HOT 1
- is slingshot using only the variable genes? HOT 2
- Pick one lineage from many for conditiontest HOT 3
- How do I extract feature_info in my rds file? HOT 4
- What does a curve represent biologically? HOT 7
- Overlapping curve issue - change to code needed? HOT 3
- Removing a lineage from a `PseudotimeOrdering` object? HOT 3
- Error in graph.adjacency.dense: Adjacency matrix should be symmetric to produce an undirected graph. Invalid value HOT 5
- pseudotime in two lineage๏ผ HOT 2
- Slingshot error HOT 1
- Error while plotting the Minimum Distances Between Cell-Type Centroids using Slingshot in r HOT 6
- Error: (converted from warning) useNames = NA is deprecated. Instead, specify either useNames = TRUE or useNames = FALSE. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slingshot.