In this example, we use the ?airway
data set.
We briefly adjust the reference level of the treatment factor to the untreated condition.
To generate some example results, we run a standard edgeR
analysis using glmFit()
and glmLRT()
.
The differential expression results are fetched using
topTags()
.
library("edgeR")
design <- model.matrix(~ 0 + dex + cell, data = colData(airway))
fit <- glmFit(airway, design, dispersion = 0.1)
lrt <- glmLRT(fit, contrast = c(-1, 1, 0, 0, 0))
res_edger <- topTags(lrt, n = Inf)
head(res_edger)
#> Coefficient: -1*dexuntrt 1*dextrt
#> gene_id gene_name entrezid gene_biotype gene_seq_start
#> ENSG00000109906 ENSG00000109906 ZBTB16 NA protein_coding 113930315
#> ENSG00000179593 ENSG00000179593 ALOX15B NA protein_coding 7942335
#> ENSG00000127954 ENSG00000127954 STEAP4 NA protein_coding 87905744
#> ENSG00000152583 ENSG00000152583 SPARCL1 NA protein_coding 88394487
#> ENSG00000250978 ENSG00000250978 RP11-357D18.1 NA processed_transcript 66759637
#> ENSG00000163884 ENSG00000163884 KLF15 NA protein_coding 126061478
#> gene_seq_end seq_name seq_strand seq_coord_system symbol logFC logCPM
#> ENSG00000109906 114121398 11 1 NA ZBTB16 7.183385 4.132638
#> ENSG00000179593 7952452 17 1 NA ALOX15B 10.015847 1.627629
#> ENSG00000127954 87936206 7 -1 NA STEAP4 5.087069 3.672567
#> ENSG00000152583 88452213 4 -1 NA SPARCL1 4.498698 5.510213
#> ENSG00000250978 66771420 5 -1 NA RP11-357D18.1 6.128131 1.377260
#> ENSG00000163884 126076285 3 -1 NA KLF15 4.367962 4.681216
#> LR PValue FDR
#> ENSG00000109906 238.3947 8.805179e-54 5.606874e-49
#> ENSG00000179593 181.0331 2.883024e-41 9.179116e-37
#> ENSG00000127954 146.9725 7.957020e-34 1.688931e-29
#> ENSG00000152583 140.2205 2.382274e-32 3.792402e-28
#> ENSG00000250978 137.4681 9.526183e-32 1.213198e-27
#> ENSG00000163884 129.2203 6.069471e-30 6.441428e-26
Then, we embed this set of differential expression results in the
airway
object using the embedContrastResults()
method.
The results embedded in the airway object can be accessed using the
contrastResults()
function.
library(iSEEde)
airway <- embedContrastResults(res_edger, airway, name = "edgeR")
contrastResults(airway)
#> DataFrame with 63677 rows and 1 column
#> edgeR
#> <iSEEedgeRResults>
#> ENSG00000000003 <iSEEedgeRResults>
#> ENSG00000000005 <iSEEedgeRResults>
#> ENSG00000000419 <iSEEedgeRResults>
#> ENSG00000000457 <iSEEedgeRResults>
#> ENSG00000000460 <iSEEedgeRResults>
#> ... ...
#> ENSG00000273489 <iSEEedgeRResults>
#> ENSG00000273490 <iSEEedgeRResults>
#> ENSG00000273491 <iSEEedgeRResults>
#> ENSG00000273492 <iSEEedgeRResults>
#> ENSG00000273493 <iSEEedgeRResults>
contrastResults(airway, "edgeR")
#> iSEEedgeRResults with 63677 rows and 5 columns
#> logFC logCPM LR PValue FDR
#> <numeric> <numeric> <numeric> <numeric> <numeric>
#> ENSG00000000003 -0.4628153 5.05930 2.018481 0.155394 1
#> ENSG00000000005 0.0000000 -3.45546 0.000000 1.000000 1
#> ENSG00000000419 0.1247724 4.60783 0.146545 0.701860 1
#> ENSG00000000457 -0.0445216 3.48326 0.018241 0.892565 1
#> ENSG00000000460 -0.1618126 1.48518 0.210342 0.646500 1
#> ... ... ... ... ... ...
#> ENSG00000273489 2.48209 -3.28549 3.02143 0.082171 1
#> ENSG00000273490 0.00000 -3.45546 0.00000 1.000000 1
#> ENSG00000273491 0.00000 -3.45546 0.00000 1.000000 1
#> ENSG00000273492 -1.24012 -3.36894 0.91097 0.339857 1
#> ENSG00000273493 -1.75243 -3.36862 1.57193 0.209928 1
Differential expression methods generally return precise numeric values with several digits after the decimal point. This level of precision can be unnecessarily overwhelming and users may wish to round numeric values to a limited number of significant digits.
The builtin default configuration for rounding in iSEEde is
RoundDigit = FALSE
and SignifDigits = 3
. In
other words, numeric values are not rounded, and if users do activate
the rounding functionality, numeric values are rounded to three
significant digits.
Those defaults can be changed using the panelDefaults()
function.
With the default panel settings configured, we use the
DETable()
function to display the contrast results with
rounded numeric values.
The default rounding configuration can be overridden in individual panel configurations.
The slots RoundDigits
and SignifDigits
can
be set directly in the individual calls to the DETable()
constructor function.
In the example below, we add two tables, one rounding numeric values to the default value of two significant digits set above, the other rounding the same values to three significant digits.
library(iSEE)
app <- iSEE(airway, initial = list(
DETable(ContrastName="edgeR", HiddenColumns = c("logCPM", "LR"),
PanelWidth = 6L, RoundDigits = TRUE),
DETable(ContrastName="edgeR", HiddenColumns = c("logCPM", "LR"),
PanelWidth = 6L, RoundDigits = TRUE, SignifDigits = 3L)
))
if (interactive()) {
shiny::runApp(app)
}
The iSEEde package (Rue-Albrecht, 2024) was made possible thanks to:
This package was developed using biocthis.
Code for creating the vignette
## Create the vignette
library("rmarkdown")
system.time(render("rounding.Rmd", "BiocStyle::html_document"))
## Extract the R code
library("knitr")
knit("rounding.Rmd", tangle = TRUE)
Date the vignette was generated.
#> [1] "2024-12-03 06:16:28 UTC"
Wallclock time spent generating the vignette.
#> Time difference of 2.469 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 Etc/UTC
#> date 2024-12-03
#> pandoc 3.2.1 @ /usr/local/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> abind 1.4-8 2024-09-12 [2] RSPM (R 4.4.0)
#> airway * 1.26.0 2024-10-31 [2] Bioconductor 3.20 (R 4.4.2)
#> AnnotationDbi * 1.69.0 2024-11-29 [2] https://bioc.r-universe.dev (R 4.4.2)
#> backports 1.5.0 2024-05-23 [2] RSPM (R 4.4.0)
#> beachmat 2.23.2 2024-11-26 [2] https://bioc.r-universe.dev (R 4.4.2)
#> bibtex 0.5.1 2023-01-26 [2] RSPM (R 4.4.0)
#> Biobase * 2.67.0 2024-11-30 [2] https://bioc.r-universe.dev (R 4.4.2)
#> BiocGenerics * 0.53.3 2024-11-15 [2] https://bioc.r-universe.dev (R 4.4.2)
#> BiocManager 1.30.25 2024-08-28 [2] RSPM (R 4.4.0)
#> BiocParallel 1.41.0 2024-11-29 [2] https://bioc.r-universe.dev (R 4.4.2)
#> BiocStyle * 2.35.0 2024-11-19 [2] https://bioc.r-universe.dev (R 4.4.2)
#> Biostrings 2.75.1 2024-11-07 [2] https://bioc.r-universe.dev (R 4.4.2)
#> bit 4.5.0 2024-09-20 [2] RSPM (R 4.4.0)
#> bit64 4.5.2 2024-09-22 [2] RSPM (R 4.4.0)
#> blob 1.2.4 2023-03-17 [2] RSPM (R 4.4.0)
#> bslib 0.8.0 2024-07-29 [2] RSPM (R 4.4.0)
#> buildtools 1.0.0 2024-11-24 [3] local (/pkg)
#> cachem 1.1.0 2024-05-16 [2] RSPM (R 4.4.0)
#> circlize 0.4.16 2024-02-20 [2] RSPM (R 4.4.0)
#> cli 3.6.3 2024-06-21 [2] RSPM (R 4.4.0)
#> clue 0.3-66 2024-11-13 [2] RSPM (R 4.4.0)
#> cluster 2.1.6 2023-12-01 [2] RSPM (R 4.4.0)
#> codetools 0.2-20 2024-03-31 [2] RSPM (R 4.4.0)
#> colorspace 2.1-1 2024-07-26 [2] RSPM (R 4.4.0)
#> colourpicker 1.3.0 2023-08-21 [2] RSPM (R 4.4.0)
#> ComplexHeatmap 2.23.0 2024-11-29 [2] https://bioc.r-universe.dev (R 4.4.2)
#> crayon 1.5.3 2024-06-20 [2] RSPM (R 4.4.0)
#> DBI 1.2.3 2024-06-02 [2] RSPM (R 4.4.0)
#> DelayedArray 0.33.3 2024-12-03 [2] https://bioc.r-universe.dev (R 4.4.2)
#> DESeq2 * 1.47.1 2024-11-15 [2] https://bioc.r-universe.dev (R 4.4.2)
#> digest 0.6.37 2024-08-19 [2] RSPM (R 4.4.0)
#> doParallel 1.0.17 2022-02-07 [2] RSPM (R 4.4.0)
#> DT 0.33 2024-04-04 [2] RSPM (R 4.4.0)
#> edgeR * 4.5.1 2024-12-01 [2] https://bioc.r-universe.dev (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)
#> fastmap 1.2.0 2024-05-15 [2] RSPM (R 4.4.0)
#> fontawesome 0.5.3 2024-11-16 [2] RSPM (R 4.4.0)
#> foreach 1.5.2 2022-02-02 [2] RSPM (R 4.4.0)
#> generics * 0.1.3 2022-07-05 [2] RSPM (R 4.4.0)
#> GenomeInfoDb * 1.43.2 2024-11-28 [2] https://bioc.r-universe.dev (R 4.4.2)
#> GenomeInfoDbData 1.2.13 2024-12-03 [2] Bioconductor
#> GenomicRanges * 1.59.1 2024-11-19 [2] https://bioc.r-universe.dev (R 4.4.2)
#> GetoptLong 1.0.5 2020-12-15 [2] RSPM (R 4.4.0)
#> ggplot2 3.5.1 2024-04-23 [2] RSPM (R 4.4.0)
#> ggrepel 0.9.6 2024-09-07 [2] RSPM (R 4.4.0)
#> GlobalOptions 0.1.2 2020-06-10 [2] RSPM (R 4.4.0)
#> glue 1.8.0 2024-09-30 [2] RSPM (R 4.4.0)
#> gtable 0.3.6 2024-10-25 [2] 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 [2] RSPM (R 4.4.0)
#> igraph 2.1.1 2024-10-19 [2] RSPM (R 4.4.0)
#> IRanges * 2.41.2 2024-12-03 [2] https://bioc.r-universe.dev (R 4.4.2)
#> iSEE * 2.19.1 2024-12-03 [2] https://bioc.r-universe.dev (R 4.4.2)
#> iSEEde * 1.5.0 2024-12-03 [1] https://bioc.r-universe.dev (R 4.4.2)
#> iterators 1.0.14 2022-02-05 [2] 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.47.0 2024-11-29 [2] https://bioc.r-universe.dev (R 4.4.2)
#> knitr 1.49 2024-11-08 [2] 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 [2] RSPM (R 4.4.0)
#> lifecycle 1.0.4 2023-11-07 [2] RSPM (R 4.4.0)
#> limma * 3.63.2 2024-11-11 [2] https://bioc.r-universe.dev (R 4.4.2)
#> listviewer 4.0.0 2023-09-30 [2] RSPM (R 4.4.0)
#> locfit 1.5-9.10 2024-06-24 [2] RSPM (R 4.4.0)
#> lubridate 1.9.3 2023-09-27 [2] RSPM (R 4.4.0)
#> magrittr 2.0.3 2022-03-30 [2] RSPM (R 4.4.0)
#> maketools 1.3.1 2024-10-04 [3] RSPM (R 4.4.0)
#> Matrix 1.7-1 2024-10-18 [2] RSPM (R 4.4.0)
#> MatrixGenerics * 1.19.0 2024-11-06 [2] https://bioc.r-universe.dev (R 4.4.2)
#> matrixStats * 1.4.1 2024-09-08 [2] 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 [2] RSPM (R 4.4.0)
#> 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 [2] RSPM (R 4.4.0)
#> nlme 3.1-166 2024-08-14 [2] RSPM (R 4.4.0)
#> org.Hs.eg.db * 3.20.0 2024-12-03 [2] Bioconductor
#> pillar 1.9.0 2023-03-22 [2] RSPM (R 4.4.0)
#> pkgconfig 2.0.3 2019-09-22 [2] RSPM (R 4.4.0)
#> plyr 1.8.9 2023-10-02 [2] RSPM (R 4.4.0)
#> png 0.1-8 2022-11-29 [2] RSPM (R 4.4.0)
#> promises 1.3.2 2024-11-28 [2] RSPM (R 4.4.0)
#> R6 2.5.1 2021-08-19 [2] RSPM (R 4.4.0)
#> RColorBrewer 1.1-3 2022-04-03 [2] RSPM (R 4.4.0)
#> Rcpp 1.0.13-1 2024-11-02 [2] RSPM (R 4.4.0)
#> RefManageR * 1.4.0 2022-09-30 [2] RSPM (R 4.4.0)
#> rintrojs 0.3.4 2024-01-11 [2] RSPM (R 4.4.0)
#> rjson 0.2.23 2024-09-16 [2] 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)
#> RSQLite 2.3.8 2024-11-17 [2] RSPM (R 4.4.0)
#> S4Arrays 1.7.1 2024-11-18 [2] https://bioc.r-universe.dev (R 4.4.2)
#> S4Vectors * 0.45.2 2024-11-16 [2] https://bioc.r-universe.dev (R 4.4.2)
#> sass 0.4.9 2024-03-15 [2] RSPM (R 4.4.0)
#> scales 1.3.0 2023-11-28 [2] RSPM (R 4.4.0)
#> scuttle * 1.17.0 2024-11-30 [2] https://bioc.r-universe.dev (R 4.4.2)
#> sessioninfo * 1.2.2 2021-12-06 [2] RSPM (R 4.4.0)
#> shape 1.4.6.1 2024-02-23 [2] RSPM (R 4.4.0)
#> shiny 1.9.1 2024-08-01 [2] RSPM (R 4.4.0)
#> shinyAce 0.4.3 2024-10-19 [2] RSPM (R 4.4.0)
#> shinydashboard 0.7.2 2021-09-30 [2] RSPM (R 4.4.0)
#> shinyjs 2.1.0 2021-12-23 [2] RSPM (R 4.4.0)
#> shinyWidgets 0.8.7 2024-09-23 [2] RSPM (R 4.4.0)
#> SingleCellExperiment * 1.29.1 2024-11-09 [2] https://bioc.r-universe.dev (R 4.4.2)
#> SparseArray 1.7.2 2024-11-15 [2] https://bioc.r-universe.dev (R 4.4.2)
#> statmod 1.5.0 2023-01-06 [2] 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.37.0 2024-11-21 [2] https://bioc.r-universe.dev (R 4.4.2)
#> sys 3.4.3 2024-10-04 [2] RSPM (R 4.4.0)
#> tibble 3.2.1 2023-03-20 [2] RSPM (R 4.4.0)
#> timechange 0.3.0 2024-01-18 [2] RSPM (R 4.4.0)
#> UCSC.utils 1.3.0 2024-11-30 [2] https://bioc.r-universe.dev (R 4.4.2)
#> utf8 1.2.4 2023-10-22 [2] RSPM (R 4.4.0)
#> vctrs 0.6.5 2023-12-01 [2] RSPM (R 4.4.0)
#> vipor 0.4.7 2023-12-18 [2] RSPM (R 4.4.0)
#> viridisLite 0.4.2 2023-05-02 [2] RSPM (R 4.4.0)
#> xfun 0.49 2024-10-31 [2] 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.47.0 2024-11-21 [2] https://bioc.r-universe.dev (R 4.4.2)
#> yaml 2.3.10 2024-07-26 [2] RSPM (R 4.4.0)
#> zlibbioc 1.52.0 2024-10-29 [2] Bioconductor 3.20 (R 4.4.2)
#>
#> [1] /tmp/RtmpSHGeRW/Rinst1e612b039130
#> [2] /github/workspace/pkglib
#> [3] /usr/local/lib/R/site-library
#> [4] /usr/lib/R/site-library
#> [5] /usr/lib/R/library
#>
#> ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
This vignette was generated using BiocStyle
r Citep(bib[["BiocStyle"]])
with knitr (Xie,
2024) and rmarkdown
(Allaire, Xie, Dervieux et al., 2024) running behind the scenes.
Citations made with RefManageR (McLean, 2017).
[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] 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.
[3] A. Oleś. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.35.0. 2024. URL: https://github.com/Bioconductor/BiocStyle.
[4] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2024. URL: https://www.R-project.org/.
[5] K. Rue-Albrecht. iSEEde: iSEE extension for panels related to differential expression analysis. R package version 1.5.0. 2024. URL: https://github.com/iSEE/iSEEde.
[6] H. Wickham. “testthat: Get Started with Testing”. In: The R Journal 3 (2011), pp. 5–10. URL: https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf.
[7] H. Wickham, W. Chang, R. Flight, et al. sessioninfo: R Session Information. R package version 1.2.2, https://r-lib.github.io/sessioninfo/. 2021. URL: https://github.com/r-lib/sessioninfo#readme.
[8] Y. Xie. knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.49. 2024. URL: https://yihui.org/knitr/.