## ----echo=FALSE, results="hide"-----------------------------------------------
knitr::opts_chunk$set(error=FALSE, message=FALSE, warning=FALSE)

## ----echo=FALSE, results="hide"-----------------------------------------------
self <- BiocStyle::Biocpkg("augere.de")
set.seed(1000)

## ----fig.show="hide"----------------------------------------------------------
library(augere.de)
se <- loadExampleDataset()

# Testing for DE between 'trt' and 'untrt' in the 'dex' grouping factor.
output.dir <- tempfile()
res <- runEdgeR(se, group="dex", comparisons=c("trt", "untrt"), output.dir=output.dir)

# List of tables of DE results.
names(res$results)
res$results[[1]]

# Copy of 'se' with normalized expression values.
res$normalized

## -----------------------------------------------------------------------------
fname <- file.path(output.dir, "report.Rmd")
cat(head(readLines(fname), 50), sep="\n")

## -----------------------------------------------------------------------------
reloaded <- readResult(file.path(output.dir, "results", "de-1"))
reloaded$x # the result itself
str(reloaded$metadata) # along with some metadata

## ----fig.show="hide"----------------------------------------------------------
output.block.dir <- tempfile()
res.block <- runEdgeR(
    se,
    group="dex",
    block="cell",
    comparisons=c("trt", "untrt"),
    output.dir=output.block.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
# Making up a continuous covariate.
se$tumor_fraction <- runif(ncol(se))

# 'comparisons' of length 1 indicates that we want to test a single covariate.
output.cov.dir <- tempfile()
res.cov <- runEdgeR(
    se,
    group="dex",
    covariate="tumor_fraction",
    comparisons="tumor_fraction",
    output.dir=output.cov.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.custom.dir <- tempfile()
res.custom <- runEdgeR(
    se,
    design=~0 + dex + tumor_fraction,
    contrasts=c(dextrt = 1, dexuntrt = -1),
    output.dir=output.custom.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.anova.dir <- tempfile()
res.anova <- runEdgeR(
    se,
    group="cell",
    comparisons=c("N052611", "N061011", "N080611", "N61311"),
    output.dir=output.anova.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.sets.dir <- tempfile()

# Specify a named vector between the 'resistant' and 'sensitive' sets of cell lines.
res.sets <- runEdgeR(
    se,
    group="cell", 
    comparisons=c(resistant="N052611", resistant="N061011", sensitive="N080611", sensitive="N61311"),
    output.dir=output.sets.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.multiple.dir <- tempfile()
res.multiple <- runEdgeR(
    se,
    group="cell",
    comparisons=list(c("N052611", "N061011"), c("N080611", "N61311")),
    output.dir=output.multiple.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)
names(res.multiple$results)

## ----fig.show="hide"----------------------------------------------------------
output.lfc.dir <- tempfile()
res.lfc <- runEdgeR(
    se,
    group="dex",
    lfc.threshold=0.5,
    comparisons=c("trt", "untrt"),
    output.dir=output.lfc.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.sub.dir <- tempfile()
res.sub <- runEdgeR(
    se, 
    group="dex", 
    comparisons=c("trt", "untrt"),
    subset.factor="cell",
    subset.levels=c("N052611", "N080611"),
    output.dir=output.lfc.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
output.sub.group.dir <- tempfile()
res.sub.group <- runEdgeR(
    se,
    group="cell",
    comparisons=c("N052611", "N061011"),
    output.dir=output.sub.group.dir,

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

## ----fig.show="hide"----------------------------------------------------------
comparisons <- list(c("N052611", "N061011"), c("N080611", "N61311"))

# Multiple comparisons in one call:
combined.results <- runEdgeR(
    se,
    group="cell",
    comparisons=comparisons,
    output.dir=tempfile(),

    # Not writing to disk or generating plots to reduce runtime.
    save.results=FALSE,
    suppress.plots=TRUE
)

# Or, repeated calls with different comparisons, which is usually the safer
# approach unless you know better.
separate.results <- list()
for (i in seq_along(comparisons)) {
    separate.results[[i]] <- runEdgeR(
        se,
        group="cell",
        comparisons=comparisons[[i]],
        output.dir=tempfile(),

        # Not writing to disk or generating plots to reduce runtime.
        save.results=FALSE,
        suppress.plots=TRUE
    )
}

## ----echo=FALSE---------------------------------------------------------------
fname <- file.path(output.dir, "report.Rmd")
lines <- readLines(fname)
has.stop <- grep("stop(", lines, fixed=TRUE)[1]
cat(lines[has.stop + (-5):5], sep="\n")

## -----------------------------------------------------------------------------
output.dry.dir <- tempfile()
runEdgeR(
    wrapInput(se, commands="augere.de::loadExampleDataset()"),
    group="dex",
    comparisons=c("trt", "untrt"),
    output.dir=output.dry.dir,
    dry.run=TRUE
)

## ----echo=FALSE---------------------------------------------------------------
fname <- file.path(output.dry.dir, "report.Rmd")
lines <- readLines(fname)
has.loader <- grep("loadExampleDataset(", lines, fixed=TRUE)[1]
cat(lines[has.loader + (-5):5], sep="\n")

## ----fig.show="hide"----------------------------------------------------------
output.custom.dir <- tempfile()
res <- runEdgeR(
    se,
    group="dex",
    comparisons=c("trt", "untrt"),
    row.data=c("symbol", "gene_biotype"),
    metadata=list(
        project="my_phd_project",
        collaborators=list("anne", "bob", "charlie"),
        data_source="https://foo.bar.com"
    ),
    output.dir=output.custom.dir
)

# rowData columns are now included in the DF.
res$results[[1]]

# The custom metadata is also saved to disk.
str(readResult(file.path(output.custom.dir, "results", "de-1"))$metadata)

## -----------------------------------------------------------------------------
sessionInfo()

