A place for me to put the old less-structured updates that I post at the top of
the README.md
file for the package. When they aren't new any more, they will
get moved here. You should look at the
Changelog for fuller
details.
April 21 2024 As ordained by prophecy, version 0.2.2 of uwot
has been
released to CRAN. RSpectra
is back as a main dependency and I thought I had
worked out a clever scheme to avoid the failures seen in some installations with
the irlba
/Matrix
interactions. This releases fixes the problem on all the
systems I have access to (including GitHub Actions CI) but some CRAN checks
remain failing. How embarrassing. That said, if you have had issues, it's
possible this new release will help you too.
April 18 2024 Version 0.2.1 of uwot
has been released to CRAN. Some features
to be aware of: RcppHNSW and
rnndescent are now supported as
optional dependencies. If you install and load them, you can use them as an
alternative to RcppAnnoy in the nearest neighbor search and should be faster.
Also, a new umap2
function has been added, with updated defaults compared to
umap
. Please see the updated and new articles on
HNSW,
rnndescent,
working with sparse data
and umap2. I consider
this worthy of moving from 0.1.x
to 0.2.x
, but in the interests of full
disclosure, on-going
irlba problems has caused a
CRAN check failure, so we might be onto 0.2.2 sooner than I'd like.
November 26 2023 Happy 1 million CRAN downloads to uwot
. To celebrate
(actually it's just a coincidence) I have reorganized the horror-show that was
the sprawling README into actual articles, via the fantastic
pkgdown package. Find it at
https://jlmelville.github.io/uwot/.
June 28 2023 Version 0.1.16 has been released to CRAN. This is a very minor tweak to 0.1.15 to further support the new release of RcppAnnoy.
June 28 2023 Version 0.1.16 has been released to CRAN. This is a very minor tweak to 0.1.15 to further support the new release of RcppAnnoy.
June 26 2023 Version 0.1.15 has been released to CRAN. This is to support a
new release of RcppAnnoy, but
there are also some bug fixes and other minor improvements. There are some new
functions: optimize_graph_layout
will carry out the UMAP optimization
step on a sparse similiarity matrix, e.g. the output of similarity_graph
.
simplicial_set_union
and simplicial_set_intersect
provide ways to merge
different views of the same data into one sparse similiarity matrix. As usual,
NEWS.md
has all the details.
August 22 2022 Just when you least expected it, version 0.1.14 has been
released to CRAN (the NEWS
file on CRAN calls it 0.1.13.9000
because I
forgot to update that file, but let's keep that amongst ourselves). This release
includes a bug fix for umap_transform
when you use external nearest neighbors
and new function similarity_graph
, to support extracting just the high
dimensional fuzzy simplicial set.
August 16 2022 Version 0.1.13 has been released to CRAN (0.1.12 was a failed submission). Among other things you can now pass your own nearest neighbors data in sparse matrix form. Also there is an option to reproduce relative cluster density by approximating the densMAP method. See the NEWS page for more.
December 12 2021 Version 0.1.11 has been released to CRAN. It is now possible
to get reproducible results (for a given value of set.seed
) when running
the optimization step with multiple threads (n_sgd_threads
greater than 1).
You may need to increase n_epochs
to get similar levels of convergence. To run
in this mode, set batch = TRUE
. Thanks to Aaron Lun
who came up with the design for this and also implemented it in his
umappp C++ library. See NEWS.md
for other
changes.
December 15 2020 Version 0.1.10 has been released to CRAN. This is mainly
to maintain compatibility with RcppAnnoy, but also a small change was made to
avoid it grinding away pointlessly in the presence of NA
values, based on
an observation by David McGaughey on Twitter (which I can no longer link to).
November 15 2020 Version 0.1.9 has been released to CRAN. The main addition is support for the Pearson correlation. Also, a slight license change from GPL-3 to GPL-3 or later.
August 1 2020 New metric supported: Pearson correlation (with
metric = "correlation"
). This should give similar results to the Python UMAP
(and sklearn) implementation of the correlation
metric.
March 16 2020 A new version (0.1.8) is on CRAN. This is a minor release in terms of features, but you can now export the UMAP graph (https://github.com/jlmelville/uwot/issues/47), and there are some bug fixes for: loading Annoy indexes (https://github.com/jlmelville/uwot/issues/31), reproducibility across platforms (https://github.com/jlmelville/uwot/issues/46) and we no longer use RcppParallel for the multi-threading support, which should lead to fewer installation problems.
March 4 2020 I had to cancel my submission of version 0.1.7 to CRAN because of
a broken example in a library using uwot. In the mean time I have switched to
using std::thread
rather than tinythread++.
March 1 2020 Version 0.1.6 was rejected from CRAN due to undefined behavior issues that originate from RcppAnnoy and RcppParallel. I am hopeful that the Annoy behavior is fixed and a suitable version of RcppAnnoy will be released onto CRAN eventually. The RcppParallel issues originate with the use of tbb and seems much harder to deal with. As there is no way to use RcppParallel without tbb yet, I am temporarily replacing the use of RcppParallel with just a subset of the code needed to run parallel for loops with the tinythread++ library.
December 4 2019 Version 0.1.5 released on CRAN. This fixes a couple of crash bugs, including one where the R API was being called from inside a thread. This may have been causing the issues seen by users of monocle and seurat.
September 23 2019 Version 0.1.4 released on CRAN. This ensures compatibility
with RcppAnnoy 0.0.13 when using load_uwot
.
April 6 2019. uwot is now on CRAN.
Also, some minor-to-horrible bugs in the lvish
perplexity routine have been
fixed.
For visualization purposes, it seems reasonable to use the old PRNG
(pcg_rand = FALSE
), along with multiple threads during SGD
(n_sgd_threads = "auto"
), and the UMAP gradient approximation
(approx_pow = TRUE
), which combined will show a very noticeable speed up
during optimization. I have added a new parameter, fast_sgd
, which if set to
TRUE
, sets these options for you.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.