[e26484]: / OmicsFold / install.R

Download this file

77 lines (60 with data), 2.5 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
.package.is.installed <- function(package.name) {
return(requireNamespace(package.name, quietly = TRUE))
}
.install.from.cran <- function(package.name, ...) {
if (!.package.is.installed(package.name)) {
cat(paste0("Installing package '", package.name, "' from CRAN...\n"))
install.packages(package.name, ...)
}
}
.install.from.bioconductor <- function(package.name, ...) {
.install.from.cran('BiocManager', ...)
if (!.package.is.installed(package.name)) {
cat(paste0("Installing package '", package.name,
"' from Bioconductor...\n"))
BiocManager::install(package.name, ...)
}
}
.install.specific.version <- function(package.name, version, ...) {
if (!.package.is.installed(package.name)) {
.install.from.cran('devtools', ...)
cat(paste0("Installing package '", package.name,
"' with version '", version, "'...\n"))
devtools::install_version(package.name, version = version, ...)
}
}
.install.from.github <- function(package.url, ref = 'master', ...) {
.install.from.cran('devtools', ...)
cat(paste0("Installing package with URL '", package.url,
"' from GitHub...\n"))
devtools::install_github(package.url, ref = ref, ...)
}
.install.from.local <- function(package.path, force = FALSE, ...) {
.install.from.cran('devtools', ...)
cat(paste0("Installing local package in path '", package.path, "'...\n"))
devtools::install_local(package.path, force = force, ...)
}
install.omicsfold <- function(omicsfold.path = '.', force = FALSE, ...) {
# Check the R version is high enough for OmicsFold.
version = R.Version()
major = as.numeric(version$major)
minor = as.numeric(version$minor)
if (major < 3 | (minor < 6.0 & major == 3)) {
stop(paste("R versions below 3.6.0 are not supported.",
"Please update R by visiting www.r-project.org."))
}
# Install the dependencies of OmicsFold
.install.from.github('mixOmicsTeam/mixOmics', ref = '2c22e7f', ...)
.install.from.bioconductor('org.Mm.eg.db', ...)
.install.from.cran('rlang', ...)
.install.from.cran('backports', ...)
if (major >= 4) {
.install.from.cran('foreign', ...)
} else {
.install.specific.version('foreign', '0.8-76', ...)
}
source("http://labs.genetics.ucla.edu/horvath/htdocs/CoexpressionNetwork/GeneAnnotation/installAnRichment.R")
installAnRichment()
# Install OmicsFold itself
.install.from.local(omicsfold.path, force = force, ...)
}