stevec
stevec

Reputation: 52268

How to install a package from bioconductor (rather than CRAN)?

In this tutorial, it says

source("http://www.bioconductor.org/biocLite.R")
biocLite("limma")
library(limma)

Which return various errors.

Is this trying to download and install from bioconductor, and if so, is there another way?

Upvotes: 2

Views: 598

Answers (2)

Dirk is no longer here
Dirk is no longer here

Reputation: 368231

The answer by @dc37 is correct, and corresponds to what you find on the BioConductor webpage.

Because it is both a relatively common task, and one that can be done on the command-line too, I fairly recently added a helper script to the GitHub repo of littler and now I can just do

edd@rob:~$ installBioc.r limma
Bioconductor version 3.10 (BiocManager 1.30.10), R 3.6.3 (2020-02-29)
Installing package(s) 'limma'
trying URL 'https://bioconductor.org/packages/3.10/bioc/src/contrib/limma_3.42.2.tar.gz'
Content type 'application/x-gzip' length 1494662 bytes (1.4 MB)
==================================================
downloaded 1.4 MB

* installing *source* package ‘limma’ ...
** using staged installation
** libs
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fpic  -g -O3 -Wall -pipe -pedantic  -std=gnu99 -c init.c -o init.o
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fpic  -g -O3 -Wall -pipe -pedantic  -std=gnu99 -c normexp.c -o normexp.o
normexp.c: In function ‘fit_saddle_nelder_mead’:
normexp.c:165:78: warning: ISO C forbids passing argument 9 of ‘nmmin’ between function pointer and ‘void *’ [-Wpedantic]
  165 |   nmmin(3, par, parsOut, Fmin, normexp_m2loglik_saddle, fail, abstol, intol, &ex, alpha, beta, gamma, trace, fncount, maxit);
      |                                                                              ^~~
In file included from normexp.c:12:
/usr/share/R/include/R_ext/Applic.h:73:51: note: expected ‘void *’ but argument is of type ‘void (*)()’
   73 |     int *fail, double abstol, double intol, void *ex,
      |                                             ~~~~~~^~
ccache gcc -I"/usr/share/R/include" -DNDEBUG     -fpic  -g -O3 -Wall -pipe -pedantic  -std=gnu99 -c weighted_lowess.c -o weighted_lowess.o
ccache gcc -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o limma.so init.o normexp.o weighted_lowess.o -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/00LOCK-limma/00new/limma/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (limma)

The downloaded source packages are in
    ‘/tmp/downloaded_packages’
edd@rob:~$ 

Upvotes: 2

dc37
dc37

Reputation: 16178

This tutorial was using the previous version of Bioconductor, now with version 3.10, you have to use BiocManager instead of BiocLite and pass the following command (as described here: https://bioconductor.org/packages/release/bioc/html/limma.html):

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

BiocManager::install("limma")

More informations on BiocManager and Bioconductor can be found here: https://bioconductor.org/install/

Upvotes: 2

Related Questions