ImmuneDynamics / Spectre

A computational toolkit in R for the integration, exploration, and analysis of high-dimensional single-cell cytometry and imaging data.
https://immunedynamics.github.io/spectre/
MIT License
56 stars 21 forks source link

Improve umap runtime #141

Closed ghar1821 closed 1 year ago

ghar1821 commented 1 year ago

Consider using the uwot package as there seem to be support to run calculation in parallel, which will substantially improve the run time. See: https://github.com/jlmelville/uwot

tomashhurst commented 1 year ago

Faster UMAP would be most excellent.

ghar1821 commented 1 year ago

@tomashhurst Implemented a new faster umap. Install the new dev branch and use run.fast.umap function. I tested it and the result looks fine, albeit orientated differently than the original umap implementation. The run time though is crazy fast. 1 minute for 50,000 cells.

tomashhurst commented 1 year ago

@ghar1821 I'm using run.fast.umap pretty much exclusively now, excellent job!

WilliamMWei commented 2 months ago

dev branch

Hi, Thank you so much for introducing this amazing improvement. Could I ask if the current version of uwot still provides the function "run.fast.umap" or it is been combined in "umap2"? "Install the new dev branch and use run.fast.umap function" - I was trying to perform this but couldn't find any relevant information in the uwot github page. Could you please give me some directions? Many thanks in advance!

ghar1821 commented 2 months ago

Hi there,

The run.fast.umap function is the function that we have in our Spectre package. It is not a function within the uwot package itself. This function (Spectre::run.fast.umap()) make use of uwot's umap function (uwot::umap()).

I hope this makes sense.

Also another thing, we will be depreciating the run.fast.umap soon as the implementation is already merged into our existing run.umap function.