Hi,
I am trying to use the new runNFM()
from scater. I have two questions.
First, I am trying to perform first reduce dimension using NMF rather than PCA, just to test it if it better represent the data, which I would obviously plot using UMAP. So, I am trying to get 50 NMF components rather than just. Do you think I am doing something conceptually wrong?
Because I am trying to get 50 NMF components, it is running for very long. So, I tried to use multiple cores. As it uses nmf function, where parallel computations can be specified using .opt = 'p6'
or .pbackend= 8
, which uses doParallel
package, I am still not able to use multiple cores. How can I fix that? I did call registerDoParallel(cl=10)
. Still no speed up.
Thanks!
Piyush
Thanks once again Aaron. The reason I am trying to test NMF is because various papers suggesting using NMF for integrating multimodal data.
Check out LIGER. It’s a great NMF-based method for integrating multimodal data. It’s also reasonably scalable. Expect a comparable and faster implementation of integrative NMF in the RcppML package in the next month or so.
Thanks a lot for providing an NMF implementation in
scater
, Aaron! If you are still interested in a fast (and potentially more reproducible) NMF implementation, perhaps the RcppML R package is worth a look? The authors have a nice preprint illustrating the improvements they made. (Code to reproduce their figures is in the supplements.)Seems like it would be a good request/PR for the scater repo.
Author/maintainer of RcppML here. Please share any feature requests/suggestions that would make RcppML NMF more useful for Bioconductor packages. I’m committed to making this the fastest, most painless, robust, and flexible NMF implementation out there.
See https://github.com/Alanocallaghan/scater/issues/160 for further discussion.