1 Basic edgeR results exploration

Project: edgeR-example.

2 Introduction

This report is meant to help explore edgeR (Chen, Chen, Lun, Baldoni, and Smyth, 2024; Chen, Lun, and Smyth, 2016; Chen, Lun, and Smyth, 2014) results and was generated using the regionReport (Collado-Torres, Jaffe, and Leek, 2016) package. While the report is rich, it is meant to just start the exploration of the results and exemplify some of the code used to do so. If you need a more in-depth analysis for your specific data set you might want to use the customCode argument. This report is based on the vignette of the DESeq2 (Love, Huber, and Anders, 2014) package which you can find here.

2.1 Code setup

This section contains the code for setting up the rest of the report.

## knitrBoostrap and device chunk options
library('knitr')
opts_chunk$set(bootstrap.show.code = FALSE, dev = device, crop = NULL)
if(!outputIsHTML) opts_chunk$set(bootstrap.show.code = FALSE, dev = device, echo = FALSE)
#### Libraries needed

## Bioconductor
library('DESeq2')
if(isEdgeR) library('edgeR')

## CRAN
library('ggplot2')
if(!is.null(theme)) theme_set(theme)
library('knitr')
if(is.null(colors)) {
    library('RColorBrewer')
}
library('pheatmap')
library('DT')
library('sessioninfo')

#### Code setup

## For ggplot
res.df <- as.data.frame(res)

## Sort results by adjusted p-values
ord <- order(res.df$padj, decreasing = FALSE)
res.df <- res.df[ord, ]
features <- rownames(res.df)
res.df <- cbind(data.frame(Feature = features), res.df)
rownames(res.df) <- NULL

3 PCA

## Transform count data
rld <- tryCatch(rlog(dds), error = function(e) { rlog(dds, fitType = 'mean') })

## Perform PCA analysis and make plot
plotPCA(rld, intgroup = intgroup)
## using ntop=500 top features by variance

## Get percent of variance explained
data_pca <- plotPCA(rld, intgroup = intgroup, returnData = TRUE)
## using ntop=500 top features by variance
percentVar <- round(100 * attr(data_pca, "percentVar"))

The above plot shows the first two principal components that explain the variability in the data using the regularized log count data. If you are unfamiliar with principal component analysis, you might want to check the Wikipedia entry or this interactive explanation. In this case, the first and second principal component explain 23 and 21 percent of the variance respectively.

4 Sample-to-sample distances

## Obtain the sample euclidean distances
sampleDists <- dist(t(assay(rld)))
sampleDistMatrix <- as.matrix(sampleDists)
## Add names based on intgroup
rownames(sampleDistMatrix) <- apply(as.data.frame(colData(rld)[, intgroup]), 1,
    paste, collapse = ' : ')
colnames(sampleDistMatrix) <- NULL

## Define colors to use for the heatmap if none were supplied
if(is.null(colors)) {
    colors <- colorRampPalette( rev(brewer.pal(9, "Blues")) )(255)
}

## Make the heatmap
pheatmap(sampleDistMatrix, clustering_distance_rows = sampleDists,
    clustering_distance_cols = sampleDists, color = colors)

This plot shows how samples are clustered based on their euclidean distance using the regularized log transformed count data. This figure gives an overview of how the samples are hierarchically clustered. It is a complementary figure to the PCA plot.

5 MA plots

This section contains three MA plots (see Wikipedia) that compare the mean of the normalized counts against the log fold change. They show one point per feature. The points are shown in red if the feature has an adjusted p-value less than alpha, that is, the statistically significant features are shown in red.

## MA plot with alpha used in DESeq2::results()
plotMA(res, alpha = metadata(res)$alpha, main = paste('MA plot with alpha =',
    metadata(res)$alpha))
## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter

This first plot shows uses alpha = 0.1, which is the alpha value used to determine which resulting features were significant when running the function DESeq2::results().

## MA plot with alpha = 1/2 of the alpha used in DESeq2::results()
plotMA(res, alpha = metadata(res)$alpha / 2,
    main = paste('MA plot with alpha =', metadata(res)$alpha / 2))
## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter

This second MA plot uses alpha = 0.05 and can be used agains the first MA plot to identify which features have adjusted p-values between 0.05 and 0.1.

## MA plot with alpha corresponding to the one that gives the nBest features
nBest.actual <- min(nBest, nrow(head(res.df, n = nBest)))
nBest.alpha <- head(res.df, n = nBest)$padj[nBest.actual]
plotMA(res, alpha = nBest.alpha * 1.00000000000001,
    main = paste('MA plot for top', nBest.actual, 'features'))
## Warning in plot.window(...): "alpha" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "alpha" is not a graphical parameter
## Warning in box(...): "alpha" is not a graphical parameter
## Warning in title(...): "alpha" is not a graphical parameter

The third and final MA plot uses an alpha such that the top 500 features are shown in the plot. These are the features that whose details are included in the top features interactive table.

6 P-values distribution

## P-value histogram plot
ggplot(res.df[!is.na(res.df$pvalue), ], aes(x = pvalue)) +
    geom_histogram(alpha=.5, position='identity', bins = 50) +
    labs(title='Histogram of unadjusted p-values') +
    xlab('Unadjusted p-values') +
    xlim(c(0, 1.0005))

This plot shows a histogram of the unadjusted p-values. It might be skewed right or left, or flat as shown in the Wikipedia examples. The shape depends on the percent of features that are differentially expressed. For further information on how to interpret a histogram of p-values check David Robinson’s post on this topic.

## P-value distribution summary
summary(res.df$pvalue)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
## 0.001141 0.242543 0.506968 0.498115 0.751378 1.000000

This is the numerical summary of the distribution of the p-values.

## Split features by different p-value cutoffs
pval_table <- lapply(c(1e-04, 0.001, 0.01, 0.025, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,
    0.6, 0.7, 0.8, 0.9, 1), function(x) {
    data.frame('Cut' = x, 'Count' = sum(res.df$pvalue <= x, na.rm = TRUE))
})
pval_table <- do.call(rbind, pval_table)
if(outputIsHTML) {
    kable(pval_table, format = 'markdown', align = c('c', 'c'))
} else {
    kable(pval_table)
}
Cut Count
0.0001 0
0.0010 0
0.0100 13
0.0250 28
0.0500 58
0.1000 109
0.2000 201
0.3000 306
0.4000 402
0.5000 496
0.6000 591
0.7000 703
0.8000 808
0.9000 905
1.0000 1000

This table shows the number of features with p-values less or equal than some commonly used cutoff values.

7 Adjusted p-values distribution

## Adjusted p-values histogram plot
ggplot(res.df[!is.na(res.df$padj), ], aes(x = padj)) +
    geom_histogram(alpha=.5, position='identity', bins = 50) +
    labs(title=paste('Histogram of', elementMetadata(res)$description[grep('adjusted', elementMetadata(res)$description)])) +
    xlab('Adjusted p-values') +
    xlim(c(0, 1.0005))

This plot shows a histogram of the BH adjusted p-values. It might be skewed right or left, or flat as shown in the Wikipedia examples.

## Adjusted p-values distribution summary
summary(res.df$padj)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.4323  0.9593  0.9808  0.9582  0.9808  1.0000

This is the numerical summary of the distribution of the BH adjusted p-values.

## Split features by different adjusted p-value cutoffs
padj_table <- lapply(c(1e-04, 0.001, 0.01, 0.025, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5,
    0.6, 0.7, 0.8, 0.9, 1), function(x) {
    data.frame('Cut' = x, 'Count' = sum(res.df$padj <= x, na.rm = TRUE))
})
padj_table <- do.call(rbind, padj_table)
if(outputIsHTML) {
    kable(padj_table, format = 'markdown', align = c('c', 'c'))
} else {
    kable(padj_table)
}
Cut Count
0.0001 0
0.0010 0
0.0100 0
0.0250 0
0.0500 0
0.1000 0
0.2000 0
0.3000 0
0.4000 0
0.5000 5
0.6000 5
0.7000 20
0.8000 21
0.9000 70
1.0000 1000

This table shows the number of features with BH adjusted p-values less or equal than some commonly used cutoff values.

8 Top features

This interactive table shows the top 500 features ordered by their BH adjusted p-values. Use the search function to find your feature of interest or sort by one of the columns.

## Add search url if appropriate
if(!is.null(searchURL) & outputIsHTML) {
    res.df$Feature <- paste0('<a href="', searchURL, res.df$Feature, '">',
        res.df$Feature, '</a>')
}

for(i in which(colnames(res.df) %in% c('pvalue', 'padj'))) res.df[, i] <- format(res.df[, i], scientific = TRUE)

if(outputIsHTML) {
    datatable(head(res.df, n = nBest), options = list(pagingType='full_numbers', pageLength=10, scrollX='100%'), escape = FALSE, rownames = FALSE) %>% formatRound(which(!colnames(res.df) %in% c('pvalue', 'padj', 'Feature')), digits)
} else {
    res.df_top <- head(res.df, n = 20)
    for(i in which(!colnames(res.df) %in% c('pvalue', 'padj', 'Feature'))) res.df_top[, i] <- round(res.df_top[, i], digits)
    kable(res.df_top)
}

9 Count plots top features

This section contains plots showing the normalized counts per sample for each group of interest. Only the best 20 features are shown, ranked by their BH adjusted p-values. The Y axis is on the log10 scale and the feature name is shown in the title of each plot.

plotCounts_gg <- function(i, dds, intgroup) {
    group <- if (length(intgroup) == 1) {
        colData(dds)[[intgroup]]
    } else if (length(intgroup) == 2) {
        lvls <- as.vector(t(outer(levels(colData(dds)[[intgroup[1]]]), 
            levels(colData(dds)[[intgroup[2]]]), function(x, 
                y) paste(x, y, sep = " : "))))
        droplevels(factor(apply(as.data.frame(colData(dds)[, 
            intgroup, drop = FALSE]), 1, paste, collapse = " : "), 
            levels = lvls))
    } else {
        factor(apply(as.data.frame(colData(dds)[, intgroup, drop = FALSE]), 
            1, paste, collapse = " : "))
    }
    data <- plotCounts(dds, gene=i, intgroup=intgroup, returnData = TRUE)
    ## Change in version 1.15.3
    ## It might not be necessary to have any of this if else, but I'm not
    ## sure that plotCounts(returnData) will always return the 'group' variable.
    if('group' %in% colnames(data)) {
        data$group <- group
    } else {
        data <- cbind(data, data.frame('group' = group))
    }

    ggplot(data, aes(x = group, y = count)) + geom_point() + ylab('Normalized count') + ggtitle(i) + coord_trans(y = "log10") + theme(axis.text.x = element_text(angle = 90, hjust = 1))
}
for(i in head(features, nBestFeatures)) {
    print(plotCounts_gg(i, dds = dds, intgroup = intgroup))
}

10 edgeR specific plots

10.1 Biological coefficient of variation

## Make BCV plot for edgeR results
plotBCV(dge)

This plot shows the feature-wise biological coefficient of variation (BCV) against the feature abundances in log2 counts per million. The plot shows the common, trended and feature-wise BCV estimates. If using edgeR-robust only the trend and tagwise are shown. Check the edgeR vignette for further details regarding this plot.

10.2 MDS plot of distances

## Make MDS plot for edgeR results
plotMDS(dge)

This plot is a multidimensional scaling plot of distances between feature expression profiles. It shows the names of the samples in a two-dimensional scatterplot such that the distances are approximately the log2 fold changes between samples. Check the edgeR vignette for further details regarding this plot.

11 Reproducibility

The input for this report was generated with edgeR (Chen, Chen, Lun et al., 2024; Chen, Lun, and Smyth, 2016; Chen, Lun, and Smyth, 2014) and the resulting features were called significantly differentially expressed if their BH adjusted p-values were less than alpha = 0.1. This report was generated in path /__w/regionReport/regionReport/docs/reference using the following call to edgeReport():

## edgeReport(dge = dge, object = lrt, project = "edgeR-example", 
##     intgroup = "group", outdir = "edgeReport-example")

Date the report was generated.

## [1] "2024-12-12 21:48:07 UTC"

Wallclock time spent generating the report.

## Time difference of 8.102 secs

R session information.

## ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
##  setting  value
##  version  R version 4.4.2 (2024-10-31)
##  os       Ubuntu 24.04.1 LTS
##  system   x86_64, linux-gnu
##  ui       X11
##  language en
##  collate  C
##  ctype    en_US.UTF-8
##  tz       UTC
##  date     2024-12-12
##  pandoc   3.5 @ /usr/bin/ (via rmarkdown)
## 
## ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
##  package                           * version   date (UTC) lib source
##  abind                               1.4-8     2024-09-12 [1] RSPM (R 4.4.0)
##  annotate                            1.84.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  AnnotationDbi                     * 1.68.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  AnnotationFilter                    1.30.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  backports                           1.5.0     2024-05-23 [1] RSPM (R 4.4.0)
##  base64enc                           0.1-3     2015-07-28 [2] RSPM (R 4.4.0)
##  bibtex                              0.5.1     2023-01-26 [1] RSPM (R 4.4.0)
##  Biobase                           * 2.66.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  BiocFileCache                       2.14.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  BiocGenerics                      * 0.52.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  BiocIO                              1.16.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  BiocManager                         1.30.25   2024-08-28 [2] CRAN (R 4.4.2)
##  BiocParallel                      * 1.40.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  BiocStyle                         * 2.34.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  biomaRt                             2.62.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  Biostrings                          2.74.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  biovizBase                        * 1.54.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  bit                                 4.5.0.1   2024-12-03 [1] RSPM (R 4.4.0)
##  bit64                               4.5.2     2024-09-22 [1] RSPM (R 4.4.0)
##  bitops                              1.0-9     2024-10-03 [1] RSPM (R 4.4.0)
##  blob                                1.2.4     2023-03-17 [1] RSPM (R 4.4.0)
##  bookdown                            0.41      2024-10-16 [1] RSPM (R 4.4.0)
##  BSgenome                            1.74.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  bslib                               0.8.0     2024-07-29 [2] RSPM (R 4.4.0)
##  bumphunter                          1.48.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  cachem                              1.1.0     2024-05-16 [2] RSPM (R 4.4.0)
##  checkmate                           2.3.2     2024-07-29 [1] RSPM (R 4.4.0)
##  cli                                 3.6.3     2024-06-21 [2] RSPM (R 4.4.0)
##  cluster                             2.1.8     2024-12-11 [3] RSPM (R 4.4.0)
##  codetools                           0.2-20    2024-03-31 [3] CRAN (R 4.4.2)
##  colorspace                          2.1-1     2024-07-26 [1] RSPM (R 4.4.0)
##  crayon                              1.5.3     2024-06-20 [2] RSPM (R 4.4.0)
##  crosstalk                           1.2.1     2023-11-23 [1] RSPM (R 4.4.0)
##  curl                                6.0.1     2024-11-14 [2] RSPM (R 4.4.0)
##  data.table                          1.16.4    2024-12-06 [1] RSPM (R 4.4.0)
##  DBI                                 1.2.3     2024-06-02 [1] RSPM (R 4.4.0)
##  dbplyr                              2.5.0     2024-03-19 [1] RSPM (R 4.4.0)
##  DEFormats                         * 1.34.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  DelayedArray                        0.32.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  derfinder                         * 1.40.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  derfinderHelper                     1.40.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  derfinderPlot                     * 1.40.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  desc                                1.4.3     2023-12-10 [2] RSPM (R 4.4.0)
##  DESeq2                            * 1.46.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  devtools                            2.4.5     2022-10-11 [2] RSPM (R 4.4.0)
##  DEXSeq                            * 1.52.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  dichromat                           2.0-0.1   2022-05-02 [1] RSPM (R 4.4.0)
##  digest                              0.6.37    2024-08-19 [2] RSPM (R 4.4.0)
##  doRNG                               1.8.6     2023-01-16 [1] RSPM (R 4.4.0)
##  downlit                             0.4.4     2024-06-10 [2] RSPM (R 4.4.0)
##  dplyr                               1.1.4     2023-11-17 [1] RSPM (R 4.4.0)
##  DT                                * 0.33      2024-04-04 [1] RSPM (R 4.4.0)
##  edgeR                             * 4.4.1     2024-12-02 [1] Bioconductor 3.20 (R 4.4.2)
##  ellipsis                            0.3.2     2021-04-29 [2] RSPM (R 4.4.0)
##  ensembldb                           2.30.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  evaluate                            1.0.1     2024-10-10 [2] RSPM (R 4.4.0)
##  fansi                               1.0.6     2023-12-08 [2] RSPM (R 4.4.0)
##  farver                              2.1.2     2024-05-13 [1] RSPM (R 4.4.0)
##  fastmap                             1.2.0     2024-05-15 [2] RSPM (R 4.4.0)
##  filelock                            1.0.3     2023-12-11 [1] RSPM (R 4.4.0)
##  foreach                             1.5.2     2022-02-02 [1] RSPM (R 4.4.0)
##  foreign                             0.8-87    2024-06-26 [3] CRAN (R 4.4.2)
##  Formula                             1.2-5     2023-02-24 [1] RSPM (R 4.4.0)
##  fs                                  1.6.5     2024-10-30 [2] RSPM (R 4.4.0)
##  genefilter                          1.88.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  geneplotter                         1.84.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  generics                            0.1.3     2022-07-05 [1] RSPM (R 4.4.0)
##  GenomeInfoDb                      * 1.42.1    2024-11-28 [1] Bioconductor 3.20 (R 4.4.2)
##  GenomeInfoDbData                    1.2.13    2024-12-10 [1] Bioconductor
##  GenomicAlignments                   1.42.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  GenomicFeatures                   * 1.58.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  GenomicFiles                        1.42.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  GenomicRanges                     * 1.58.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  GGally                              2.2.1     2024-02-14 [1] RSPM (R 4.4.0)
##  ggbio                             * 1.54.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  ggplot2                           * 3.5.1     2024-04-23 [1] RSPM (R 4.4.0)
##  ggstats                             0.7.0     2024-09-22 [1] RSPM (R 4.4.0)
##  glue                                1.8.0     2024-09-30 [2] RSPM (R 4.4.0)
##  graph                               1.84.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  gridExtra                         * 2.3       2017-09-09 [1] RSPM (R 4.4.0)
##  gtable                              0.3.6     2024-10-25 [1] RSPM (R 4.4.0)
##  Hmisc                               5.2-1     2024-12-02 [1] RSPM (R 4.4.0)
##  hms                                 1.1.3     2023-03-21 [1] RSPM (R 4.4.0)
##  htmlTable                           2.4.3     2024-07-21 [1] RSPM (R 4.4.0)
##  htmltools                           0.5.8.1   2024-04-04 [2] RSPM (R 4.4.0)
##  htmlwidgets                         1.6.4     2023-12-06 [2] RSPM (R 4.4.0)
##  httpuv                              1.6.15    2024-03-26 [2] RSPM (R 4.4.0)
##  httr                                1.4.7     2023-08-15 [1] RSPM (R 4.4.0)
##  httr2                               1.0.7     2024-11-26 [2] RSPM (R 4.4.0)
##  hwriter                             1.3.2.1   2022-04-08 [1] RSPM (R 4.4.0)
##  IRanges                           * 2.40.1    2024-12-05 [1] Bioconductor 3.20 (R 4.4.2)
##  iterators                           1.0.14    2022-02-05 [1] RSPM (R 4.4.0)
##  jquerylib                           0.1.4     2021-04-26 [2] RSPM (R 4.4.0)
##  jsonlite                            1.8.9     2024-09-20 [2] RSPM (R 4.4.0)
##  KEGGREST                            1.46.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  knitr                             * 1.49      2024-11-08 [2] RSPM (R 4.4.0)
##  knitrBootstrap                      1.0.3     2024-02-06 [1] RSPM (R 4.4.0)
##  labeling                            0.4.3     2023-08-29 [1] RSPM (R 4.4.0)
##  later                               1.4.1     2024-11-27 [2] RSPM (R 4.4.0)
##  lattice                             0.22-6    2024-03-20 [3] CRAN (R 4.4.2)
##  lazyeval                            0.2.2     2019-03-15 [1] RSPM (R 4.4.0)
##  lifecycle                           1.0.4     2023-11-07 [2] RSPM (R 4.4.0)
##  limma                             * 3.62.1    2024-11-03 [1] Bioconductor 3.20 (R 4.4.2)
##  locfit                              1.5-9.10  2024-06-24 [1] RSPM (R 4.4.0)
##  lubridate                           1.9.4     2024-12-08 [1] RSPM (R 4.4.0)
##  magrittr                            2.0.3     2022-03-30 [2] RSPM (R 4.4.0)
##  markdown                            1.13      2024-06-04 [1] RSPM (R 4.4.0)
##  Matrix                              1.7-1     2024-10-18 [3] CRAN (R 4.4.2)
##  MatrixGenerics                    * 1.18.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  matrixStats                       * 1.4.1     2024-09-08 [1] RSPM (R 4.4.0)
##  memoise                             2.0.1     2021-11-26 [2] RSPM (R 4.4.0)
##  mgcv                              * 1.9-1     2023-12-21 [3] CRAN (R 4.4.2)
##  mime                                0.12      2021-09-28 [2] RSPM (R 4.4.0)
##  miniUI                              0.1.1.1   2018-05-18 [2] RSPM (R 4.4.0)
##  munsell                             0.5.1     2024-04-01 [1] RSPM (R 4.4.0)
##  nlme                              * 3.1-166   2024-08-14 [3] CRAN (R 4.4.2)
##  nnet                                7.3-19    2023-05-03 [3] CRAN (R 4.4.2)
##  OrganismDbi                         1.48.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  pasilla                           * 1.34.0    2024-11-05 [1] Bioconductor 3.20 (R 4.4.2)
##  pheatmap                          * 1.0.12    2019-01-04 [1] RSPM (R 4.4.0)
##  pillar                              1.9.0     2023-03-22 [2] RSPM (R 4.4.0)
##  pkgbuild                            1.4.5     2024-10-28 [2] RSPM (R 4.4.0)
##  pkgconfig                           2.0.3     2019-09-22 [2] RSPM (R 4.4.0)
##  pkgdown                             2.1.1     2024-09-17 [2] RSPM (R 4.4.0)
##  pkgload                             1.4.0     2024-06-28 [2] RSPM (R 4.4.0)
##  plyr                                1.8.9     2023-10-02 [1] RSPM (R 4.4.0)
##  png                                 0.1-8     2022-11-29 [1] RSPM (R 4.4.0)
##  prettyunits                         1.2.0     2023-09-24 [2] RSPM (R 4.4.0)
##  profvis                             0.4.0     2024-09-20 [2] RSPM (R 4.4.0)
##  progress                            1.2.3     2023-12-06 [1] RSPM (R 4.4.0)
##  promises                            1.3.2     2024-11-28 [2] RSPM (R 4.4.0)
##  ProtGenerics                        1.38.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  purrr                               1.0.2     2023-08-10 [2] RSPM (R 4.4.0)
##  qvalue                              2.38.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  R6                                  2.5.1     2021-08-19 [2] RSPM (R 4.4.0)
##  ragg                                1.3.3     2024-09-11 [2] RSPM (R 4.4.0)
##  rappdirs                            0.3.3     2021-01-31 [2] RSPM (R 4.4.0)
##  RBGL                                1.82.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  RColorBrewer                      * 1.1-3     2022-04-03 [1] RSPM (R 4.4.0)
##  Rcpp                                1.0.13-1  2024-11-02 [2] RSPM (R 4.4.0)
##  RCurl                               1.98-1.16 2024-07-11 [1] RSPM (R 4.4.0)
##  RefManageR                          1.4.0     2022-09-30 [1] RSPM (R 4.4.0)
##  regionReport                      * 1.41.0    2024-12-12 [1] Bioconductor
##  remotes                             2.5.0     2024-03-17 [1] RSPM (R 4.4.0)
##  reshape2                            1.4.4     2020-04-09 [1] RSPM (R 4.4.0)
##  restfulr                            0.0.15    2022-06-16 [1] RSPM (R 4.4.0)
##  rjson                               0.2.23    2024-09-16 [1] RSPM (R 4.4.0)
##  rlang                               1.1.4     2024-06-04 [2] RSPM (R 4.4.0)
##  rmarkdown                           2.29      2024-11-04 [2] RSPM (R 4.4.0)
##  rngtools                            1.5.2     2021-09-20 [1] RSPM (R 4.4.0)
##  rpart                               4.1.23    2023-12-05 [3] CRAN (R 4.4.2)
##  Rsamtools                           2.22.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  RSQLite                             2.3.9     2024-12-03 [1] RSPM (R 4.4.0)
##  rstudioapi                          0.17.1    2024-10-22 [2] RSPM (R 4.4.0)
##  rtracklayer                         1.66.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  S4Arrays                            1.6.0     2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  S4Vectors                         * 0.44.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  sass                                0.4.9     2024-03-15 [2] RSPM (R 4.4.0)
##  scales                              1.3.0     2023-11-28 [1] RSPM (R 4.4.0)
##  sessioninfo                       * 1.2.2     2021-12-06 [2] RSPM (R 4.4.0)
##  shiny                               1.9.1     2024-08-01 [2] RSPM (R 4.4.0)
##  SparseArray                         1.6.0     2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  statmod                             1.5.0     2023-01-06 [1] RSPM (R 4.4.0)
##  stringi                             1.8.4     2024-05-06 [2] RSPM (R 4.4.0)
##  stringr                             1.5.1     2023-11-14 [2] RSPM (R 4.4.0)
##  SummarizedExperiment              * 1.36.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  survival                            3.7-0     2024-06-05 [3] CRAN (R 4.4.2)
##  systemfonts                         1.1.0     2024-05-15 [2] RSPM (R 4.4.0)
##  textshaping                         0.4.1     2024-12-06 [2] RSPM (R 4.4.0)
##  tibble                              3.2.1     2023-03-20 [2] RSPM (R 4.4.0)
##  tidyr                               1.3.1     2024-01-24 [1] RSPM (R 4.4.0)
##  tidyselect                          1.2.1     2024-03-11 [1] RSPM (R 4.4.0)
##  timechange                          0.3.0     2024-01-18 [1] RSPM (R 4.4.0)
##  TxDb.Hsapiens.UCSC.hg19.knownGene * 3.2.2     2024-06-24 [1] Bioconductor
##  txdbmaker                           1.2.1     2024-11-25 [1] Bioconductor 3.20 (R 4.4.2)
##  UCSC.utils                          1.2.0     2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  urlchecker                          1.0.1     2021-11-30 [2] RSPM (R 4.4.0)
##  usethis                             3.1.0     2024-11-26 [2] RSPM (R 4.4.0)
##  utf8                                1.2.4     2023-10-22 [2] RSPM (R 4.4.0)
##  VariantAnnotation                   1.52.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  vctrs                               0.6.5     2023-12-01 [2] RSPM (R 4.4.0)
##  whisker                             0.4.1     2022-12-05 [2] RSPM (R 4.4.0)
##  withr                               3.0.2     2024-10-28 [2] RSPM (R 4.4.0)
##  xfun                                0.49      2024-10-31 [2] RSPM (R 4.4.0)
##  XML                                 3.99-0.17 2024-06-25 [1] RSPM (R 4.4.0)
##  xml2                                1.3.6     2023-12-04 [2] RSPM (R 4.4.0)
##  xtable                              1.8-4     2019-04-21 [2] RSPM (R 4.4.0)
##  XVector                             0.46.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
##  yaml                                2.3.10    2024-07-26 [2] RSPM (R 4.4.0)
##  zlibbioc                            1.52.0    2024-10-29 [1] Bioconductor 3.20 (R 4.4.2)
## 
##  [1] /__w/_temp/Library
##  [2] /usr/local/lib/R/site-library
##  [3] /usr/local/lib/R/library
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Pandoc version used: 3.5.

12 Bibliography

This report was created with regionReport (Collado-Torres, Jaffe, and Leek, 2016) using rmarkdown (Allaire, Xie, Dervieux et al., 2024) while knitr (Xie, 2014) and DT (Xie, Cheng, and Tan, 2024) were running behind the scenes. pheatmap (Kolde, 2019) was used to create the sample distances heatmap. Several plots were made with ggplot2 (Wickham, 2016).

Citations made with RefManageR (McLean, 2017). The BibTeX file can be found here.

[1] J. Allaire, Y. Xie, C. Dervieux, et al. rmarkdown: Dynamic Documents for R. R package version 2.29. 2024. URL: https://github.com/rstudio/rmarkdown.

[2] Y. Chen, L. Chen, A. T. L. Lun, et al. “edgeR 4.0: powerful differential analysis of sequencing data with expanded functionality and improved support for small counts and larger datasets”. In: bioRxiv (2024). DOI: 10.1101/2024.01.21.576131.

[3] Y. Chen, A. T. L. Lun, and G. K. Smyth. “Differential expression analysis of complex RNA-seq experiments using edgeR”. In: Statistical Analysis of Next Generation Sequencing Data. Ed. by S. Datta and D. Nettleton. New York: Springer, 2014, pp. 51-74.

[4] Y. Chen, A. T. L. Lun, and G. K. Smyth. “From reads to genes to pathways: differential expression analysis of RNA-Seq experiments using Rsubread and the edgeR quasi-likelihood pipeline”. In: F1000Research 5 (2016), p. 1438. DOI: 10.12688/f1000research.8987.2.

[5] L. Collado-Torres, A. E. Jaffe, and J. T. Leek. “regionReport: Interactive reports for region-level and feature-level genomic analyses [version2; referees: 2 approved, 1 approved with reservations]”. In: F1000Research 4 (2016), p. 105. DOI: 10.12688/f1000research.6379.2. URL: http://f1000research.com/articles/4-105/v2.

[6] R. Kolde. pheatmap: Pretty Heatmaps. R package version 1.0.12. 2019.

[7] M. I. Love, W. Huber, and S. Anders. “Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2”. In: Genome Biology 15 (12 2014), p. 550. DOI: 10.1186/s13059-014-0550-8.

[8] M. W. McLean. “RefManageR: Import and Manage BibTeX and BibLaTeX References in R”. In: The Journal of Open Source Software (2017). DOI: 10.21105/joss.00338.

[9] H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016. ISBN: 978-3-319-24277-4. URL: https://ggplot2.tidyverse.org.

[10] Y. Xie. “knitr: A Comprehensive Tool for Reproducible Research in R”. In: Implementing Reproducible Computational Research. Ed. by V. Stodden, F. Leisch and R. D. Peng. ISBN 978-1466561595. Chapman and Hall/CRC, 2014.

[11] Y. Xie, J. Cheng, and X. Tan. DT: A Wrapper of the JavaScript Library ‘DataTables’. R package version 0.33. 2024. URL: https://github.com/rstudio/DT.