renozao / NMF

NMF: A Flexible R package for Nonnegative Matrix Factorization
139 stars 41 forks source link

CRAN Package will not install #150

Open ColeWunderlich opened 4 years ago

ColeWunderlich commented 4 years ago

Currently, the CRAN version of this package will not install appropriately due to Biobase being moved from the suggests: to the imports: field.

Currently the only way to get it to install is to first install Biocmanager and then Biobase before finally installing NMF. Having a CRAN package with necessary/mandatory Bioconductor dependencies seems undesirable, especially for newer users of R.

MarcinKosinski commented 4 years ago

This is very tidious. Got onto this one today as well. Looking forward to cran be updated to 0.30

MarcinKosinski commented 4 years ago

Some other packages that rely on NMF tend to say that Biobase is added to the dependencies during the CRAN build and not by the author of NMF

https://github.com/gdkrmr/dimRed/issues/27#issuecomment-437458488

harryahlas commented 3 years ago

Any update on this? I would love to use this package but I am limited to CRAN packages only. And the BiocManager/Biobase install solution above did not work.

MarcinKosinski commented 3 years ago

@harryahlas you would need to

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
if (!requireNamespace("Biobase", quietly = TRUE))
  BiocManager::install("Biobase")
install.packages("NMF")

to get NMF in the current setup

ColeWunderlich commented 3 years ago

Any update on this? I would love to use this package but I am limited to CRAN packages only. And the BiocManager/Biobase install solution above did not work.

@harryahlas If you really need it to work, download the tar ball from cran. Unpack it, open the DESCRIPTION file and delete "Biobase" from the imports field and add "Biobase" the the suggests: field. Then repack everything and install from source using the modified package archive. This worked about a year ago, not sure if it will still work now.

harryahlas commented 3 years ago

@harryahlas you would need to

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
if (!requireNamespace("Biobase", quietly = TRUE))
  BiocManager::install("Biobase")
install.packages("NMF")

to get NMF in the current setup

Thank you, this worked!