Nothing
usage <- function() {
use.message <- paste(
"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
"\tTHE ENRICHMENT BROWSER\n",
"\tCALL:\tRscript eBrowserCMD.R\n",
"\tARGS:\t--meth=<meth>\tEnrichment method(s)",
"\t\t--exprs=<exprs>\tExpression matrix; tab-separated text file",
"\t\t--cdat=<cdat>\tColumn data (sample annotation); tab-separated text file",
"\t\t--rdat=<rdat>\tRow data (gene annotation); tab-separated text file",
"\t\t--org=<org>\tOrganism under investigation; 3-letter code",
"\t\t--gs=<gs>\tGene sets; tab-separated text file (GMT format)\n",
"\tOPTS:\t--grn=<grn>\tGene regulatory network; tab-separated text file",
"\t\t--dtype=<dtype>\tExpression data type (Default: NA)",
"\t\t--nmeth=<nmeth>\tNormalization method (Default: none)",
"\t\t--dmeth=<dmeth>\tDifferential expression method (Default: limma)",
"\t\t--alpha=<alpha>\tStatistical significance level (Default: 0.05)",
"\t\t--beta=<alpha>\tLog2 fold change significance level (Default: 1)",
"\t\t--perm=<perm>\tNr of permutations (Default: 1000)",
"\t\t--outd=<outd>\tOutput directory (Default: ./)",
"\t\t--show=<show>\tNr of gene sets to include in HTML output (Default: 10)",
"\t\t\t\t", "\tFLAGS:\t--help, -h\tCalls this usage message",
"\t\t--html\t\tProduce html report in addition to plain text output",
"\t\t--comb\t\tCombination of results of multiple enrichment methods",
"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n",
sep = "\n")
message(use.message)
message(paste0("See http://www.bioconductor.org/packages/release/bioc/manuals",
"/EnrichmentBrowser/man/EnrichmentBrowser.pdf#page.10\n"))
quit(save = "no")
}
## parse command line arguments
parseCmdArgs <- function(cmd.args) {
spl.args <- sapply(cmd.args, function(arg) unlist(strsplit(arg, "=")))
ebrowser.args <- spl.args[sapply(spl.args, function(spl) length(spl) == 2)]
flags <- sapply(ebrowser.args, function(arg) arg[1])
args <- sapply(ebrowser.args, function(arg) arg[2])
names(args) <- flags
return(args)
}
## get a particular argument from the command line parameters
getArg <- function(arg, args) {
if (!(arg %in% names(args)))
stop(paste("The required argument", arg, "is missing!"))
return(args[[arg]])
}
## clean up output structure
cleanUp <- function(out.dir) {
dirs <- list.files(out.dir, pattern = "_RESULT_files$", full.names = TRUE)
for (d in dirs) {
files <- list.files(d, full.names = TRUE)
for (f in files) file.rename(from = f, to = paste(out.dir, basename(f), sep = ""))
file.remove(d)
}
}
autoDetectDataType <- function(expr)
ifelse(all(isWholenumber(expr), na.rm = TRUE), "rseq", "ma")
isWholenumber <- function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol
## eBrowser functionality
main <- function(cmd.args) {
if (length(cmd.args) < 6 || any(c("--help", "-h") %in% cmd.args)) usage()
args <- parseCmdArgs(cmd.args)
# required params
exprs <- getArg("--exprs", args)
cdat <- getArg("--cdat", args)
rdat <- getArg("--rdat", args)
org <- getArg("--org", args)
gs <- getArg("--gs", args)
meth <- NULL
if ("--meth" %in% names(args))
meth <- tolower(unlist(strsplit(getArg("--meth", args), ",")))
message("Loading EnrichmentBrowser")
suppressPackageStartupMessages(library(EnrichmentBrowser))
# optional params
grn <- NULL
if ("--grn" %in% names(args)) {
grn <- args[["--grn"]]
if (grn == "KEGG") {
message("Compiling GRN from KEGG ...")
grn <- compileGRN(org, "kegg")
} else if (file.exists(grn))
grn <- gsub(" ", "", as.matrix(read.delim(grn)))
}
data.type <- NULL
if ("--dtype" %in% names(args))
data.type <- args[["--dtype"]]
norm.method <- "none"
if ("--nmeth" %in% names(args))
norm.method <- args[["--nmeth"]]
de.method <- "limma"
if ("--dmeth" %in% names(args))
de.method <- args[["--dmeth"]]
alpha <- 0.05
if ("--alpha" %in% names(args))
alpha <- as.numeric(args[["--alpha"]])
beta <- 1
if ("--beta" %in% names(args))
alpha <- as.numeric(args[["--beta"]])
perm <- 1000
if ("--perm" %in% names(args))
perm <- as.integer(args[["--perm"]])
out.dir <- file.path(getwd(), "eBrowserOut")
if (file.exists(out.dir))
system(command = paste("rm -rf", file.path(out.dir, "*")))
if ("--outd" %in% names(args)) {
outd <- args[["--outd"]]
if (dirname(outd) %in% list.files("."))
outd <- file.path(getwd(), outd)
if (file.exists(outd))
system(command = paste("rm -rf", file.path(outd, "*")))
}
nr.show <- 10
if ("--show" %in% names(args))
nr.show <- as.integer(args[["--show"]])
# flags
html <- "--html" %in% cmd.args
comb <- "--comb" %in% cmd.args
# execution
message("Executing EnrichmentBrowser")
message("Retrieving gene sets")
if (file.exists(gs))
gs <- getGenesets(gs) else if (gs == "GO")
gs <- getGenesets(org, db = "go") else if (gs == "KEGG")
gs <- getGenesets(org, db = "kegg")
configEBrowser("OUTDIR.DEFAULT", out.dir)
se <- readSE(exprs, cdat, rdat)
if (substring(names(se)[1], 1, 3) == "ENS") {
message("Detected gene ID type: ENSEMBL")
message("Map IDs: ENSEMBL -> ENTREZ")
se <- idMap(se, org = org, from = "ENSEMBL", to = "ENTREZID")
}
if (is.null(data.type))
data.type <- autoDetectDataType(assay(se))
if (is.null(meth)) {
message("No enrichment method selected")
meth <- sbeaMethods()
if (!is.null(grn))
meth <- c(meth, nbeaMethods())
message(paste("Executing", paste(meth, collapse = ",")))
}
ebrowser(meth = meth, exprs = se, org = org, data.type = data.type, norm.method = norm.method,
de.method = de.method, gs = gs, grn = grn, perm = perm, alpha = alpha, beta = beta,
comb = comb, browse = html, nr.show = nr.show)
if ("--outd" %in% names(args)) {
setwd(dirname(out.dir))
message(paste("Moving files to", outd))
system(command = paste("cp -r", file.path(out.dir, "reports", "*"), outd))
message("Cleaning up ...")
system(command = paste("rm -rf", out.dir))
}
}
## MAIN
main(commandArgs())
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.