2 Example

First, let us set up the core elements of a simple application (see ?iSEEindex).

library("BiocFileCache")

##
# BiocFileCache ----
##

library(BiocFileCache)
bfc <- BiocFileCache(cache = tempdir())

##
# iSEEindex ----
##

dataset_fun <- function() {
  x <- yaml::read_yaml(system.file(package = "iSEEindex", "example.yaml"))
  x$datasets
}

initial_fun <- function() {
  x <- yaml::read_yaml(system.file(package = "iSEEindex", "example.yaml"))
  x$initial
}

Then, we design header and footer content, each wrapped in a shiny::fluidRow().

library("shiny")
header <- fluidRow(shinydashboard::box(width = 12L, 
  column(width = 10,
    p(strong("Welcome to this demonstration app!")),
    p(
      "This is an example header that demonstrate how to use the functionality.",
      "A great place for branding and intros.",
    ),
    p("On the right, we demonstrate how other content such as images can be added to this header.")
  ),
  column(width = 2, img(src="www/iSEE.png", width = "100px", height = "120px"))
))
footer <- fluidRow(shinydashboard::box(width = 12L,
  p("This is a example footer. A great place for copyright statements and outros.", style="text-align: center;"),
  p(
    "© 2023 iSEE.",
    a("Artistic-2.0", href = "https://opensource.org/license/artistic-2-0/"),
    style="text-align: center;")
  ))

For the image file to be found, the containing directory must be added to the Shiny resource path as follows:

library("shiny")
addResourcePath("www", system.file(package = "iSEEindex"))

Finally, we supply the custom header and footer to iSEEindex().

library("iSEEindex")
app <- iSEEindex(bfc, dataset_fun, initial_fun,
  body.header = header, body.footer = footer
)

if (interactive()) {
  shiny::runApp(app, port = 1234)
}

3 Reproducibility

The iSEEindex package (Rue-Albrecht, 2023) was made possible thanks to:

  • R (R Core Team, 2023)
  • BiocStyle (Oleś, 2023)
  • knitr (Xie, 2023)
  • RefManageR (McLean, 2017)
  • rmarkdown (Allaire, Xie, Dervieux, McPherson, Luraschi, Ushey, Atkins, Wickham, Cheng, Chang, and Iannone, 2023)
  • sessioninfo (Wickham, Chang, Flight, Müller, and Hester, 2021)
  • testthat (Wickham, 2011)

This package was developed using biocthis.

Code for creating the vignette

## Create the vignette
library("rmarkdown")
system.time(render("header.Rmd", "BiocStyle::html_document"))

## Extract the R code
library("knitr")
knit("header.Rmd", tangle = TRUE)

Date the vignette was generated.

#> [1] "2023-10-24 17:40:51 EDT"

Wallclock time spent generating the vignette.

#> Time difference of 11.323 secs

R session information.

#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.3.1 (2023-06-16)
#>  os       Ubuntu 22.04.3 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language (EN)
#>  collate  C
#>  ctype    en_US.UTF-8
#>  tz       America/New_York
#>  date     2023-10-24
#>  pandoc   2.7.3 @ /usr/bin/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────
#>  package              * version   date (UTC) lib source
#>  abind                  1.4-5     2016-07-21 [2] CRAN (R 4.3.1)
#>  backports              1.4.1     2021-12-13 [2] CRAN (R 4.3.1)
#>  bibtex                 0.5.1     2023-01-26 [2] CRAN (R 4.3.1)
#>  Biobase              * 2.62.0    2023-10-24 [2] Bioconductor
#>  BiocFileCache        * 2.10.0    2023-10-24 [2] Bioconductor
#>  BiocGenerics         * 0.48.0    2023-10-24 [2] Bioconductor
#>  BiocManager            1.30.22   2023-08-08 [2] CRAN (R 4.3.1)
#>  BiocStyle            * 2.30.0    2023-10-24 [2] Bioconductor
#>  bit                    4.0.5     2022-11-15 [2] CRAN (R 4.3.1)
#>  bit64                  4.0.5     2020-08-30 [2] CRAN (R 4.3.1)
#>  bitops                 1.0-7     2021-04-24 [2] CRAN (R 4.3.1)
#>  blob                   1.2.4     2023-03-17 [2] CRAN (R 4.3.1)
#>  bookdown               0.36      2023-10-16 [2] CRAN (R 4.3.1)
#>  bslib                  0.5.1     2023-08-11 [2] CRAN (R 4.3.1)
#>  cachem                 1.0.8     2023-05-01 [2] CRAN (R 4.3.1)
#>  circlize               0.4.15    2022-05-10 [2] CRAN (R 4.3.1)
#>  cli                    3.6.1     2023-03-23 [2] CRAN (R 4.3.1)
#>  clue                   0.3-65    2023-09-23 [2] CRAN (R 4.3.1)
#>  cluster                2.1.4     2022-08-22 [3] CRAN (R 4.3.1)
#>  codetools              0.2-19    2023-02-01 [3] CRAN (R 4.3.1)
#>  colorspace             2.1-0     2023-01-23 [2] CRAN (R 4.3.1)
#>  colourpicker           1.3.0     2023-08-21 [2] CRAN (R 4.3.1)
#>  ComplexHeatmap         2.18.0    2023-10-24 [2] Bioconductor
#>  crayon                 1.5.2     2022-09-29 [2] CRAN (R 4.3.1)
#>  curl                   5.1.0     2023-10-02 [2] CRAN (R 4.3.1)
#>  DBI                    1.1.3     2022-06-18 [2] CRAN (R 4.3.1)
#>  dbplyr               * 2.3.4     2023-09-26 [2] CRAN (R 4.3.1)
#>  DelayedArray           0.28.0    2023-10-24 [2] Bioconductor
#>  digest                 0.6.33    2023-07-07 [2] CRAN (R 4.3.1)
#>  doParallel             1.0.17    2022-02-07 [2] CRAN (R 4.3.1)
#>  dplyr                  1.1.3     2023-09-03 [2] CRAN (R 4.3.1)
#>  DT                     0.30      2023-10-05 [2] CRAN (R 4.3.1)
#>  ellipsis               0.3.2     2021-04-29 [2] CRAN (R 4.3.1)
#>  evaluate               0.22      2023-09-29 [2] CRAN (R 4.3.1)
#>  fansi                  1.0.5     2023-10-08 [2] CRAN (R 4.3.1)
#>  fastmap                1.1.1     2023-02-24 [2] CRAN (R 4.3.1)
#>  filelock               1.0.2     2018-10-05 [2] CRAN (R 4.3.1)
#>  fontawesome            0.5.2     2023-08-19 [2] CRAN (R 4.3.1)
#>  foreach                1.5.2     2022-02-02 [2] CRAN (R 4.3.1)
#>  generics               0.1.3     2022-07-05 [2] CRAN (R 4.3.1)
#>  GenomeInfoDb         * 1.38.0    2023-10-24 [2] Bioconductor
#>  GenomeInfoDbData       1.2.11    2023-10-17 [2] Bioconductor
#>  GenomicRanges        * 1.54.0    2023-10-24 [2] Bioconductor
#>  GetoptLong             1.0.5     2020-12-15 [2] CRAN (R 4.3.1)
#>  ggplot2                3.4.4     2023-10-12 [2] CRAN (R 4.3.1)
#>  ggrepel                0.9.4     2023-10-13 [2] CRAN (R 4.3.1)
#>  GlobalOptions          0.1.2     2020-06-10 [2] CRAN (R 4.3.1)
#>  glue                   1.6.2     2022-02-24 [2] CRAN (R 4.3.1)
#>  gtable                 0.3.4     2023-08-21 [2] CRAN (R 4.3.1)
#>  htmltools              0.5.6.1   2023-10-06 [2] CRAN (R 4.3.1)
#>  htmlwidgets            1.6.2     2023-03-17 [2] CRAN (R 4.3.1)
#>  httpuv                 1.6.12    2023-10-23 [2] CRAN (R 4.3.1)
#>  httr                   1.4.7     2023-08-15 [2] CRAN (R 4.3.1)
#>  igraph                 1.5.1     2023-08-10 [2] CRA