# Introduction to iSEEindex

Kevin Rue-Albrecht1*

1University of Oxford

*kevin.rue-albrecht@imm.ox.ac.uk

#### 1 May 2024

#### Package

iSEEindex 1.2.0

# 1 Basics

## 1.1 Install `iSEEindex`

`R` is an open-source statistical environment which can be easily modified to enhance its functionality via packages. iSEEindex is a `R` package available via the Bioconductor repository for packages. `R` can be installed on any operating system from CRAN after which you can install iSEEindex by using the following commands in your `R` session:

    if (!requireNamespace("BiocManager", quietly = TRUE)) {
          install.packages("BiocManager")
      }

    BiocManager::install("iSEEindex")

    ## Check that you have a valid Bioconductor installation
    BiocManager::valid()

## 1.2 Required knowledge

iSEEindex is based on many other packages and in particular those that have implemented the infrastructure needed for dealing with omics data and interactive visualisation. That is, packages like SummarizedExperiment, SingleCellExperiment, iSEE and shiny.

If you are asking yourself the question “Where do I start using Bioconductor?” you might be interested in this blog post.

## 1.3 Asking for help

As package developers, we try to explain clearly how to use our packages and in which order to use the functions. But `R` and `Bioconductor` have a steep learning curve so it is critical to learn where to ask for help. The blog post quoted above mentions some but we would like to highlight the Bioconductor support site as the main resource for getting help: remember to use the `iSEEindex` tag and check the older posts. Other alternatives are available such as creating GitHub issues and tweeting. However, please note that if you want to receive help you should adhere to the posting guidelines. It is particularly critical that you provide a small reproducible example and your session information so package developers can track down the source of the error.

## 1.4 Citing `iSEEindex`

We hope that iSEEindex will be useful for your research. Please use the following information to cite the package and the overall approach. Thank you!

    ## Citation info
    citation("iSEEindex")
    #> To cite package 'iSEEindex' in publications use:
    #>
    #>   Rue-Albrecht K, Marini F (2024). _iSEEindex: iSEE extension for a landing page to a
    #>   custom collection of data sets_. R package version 1.2.0,
    #>   <https://github.com/iSEE/iSEEindex>.
    #>
    #> A BibTeX entry for LaTeX users is
    #>
    #>   @Manual{,
    #>     title = {iSEEindex: iSEE extension for a landing page to a custom collection of data sets},
    #>     author = {Kevin Rue-Albrecht and Federico Marini},
    #>     year = {2024},
    #>     note = {R package version 1.2.0},
    #>     url = {https://github.com/iSEE/iSEEindex},
    #>   }

# 2 Quick start to using `iSEEindex`

This is a basic example which shows you how to launch an application that lists publicly available data sets hosted on zenodo.org:

    library("iSEEindex")
    library("BiocFileCache")

    bfc <- BiocFileCache(cache = tempdir())

    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
    }

    app <- iSEEindex(bfc, dataset_fun, initial_fun)

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

Let’s break down this example step by step, to illustrate the functionality and flexibility of iSEEindex.

First, we load the iSEEindex and BiocFileCache packages, to access their functionality.

Next, we use the `BiocFileCache::BiocFileCache()` function, to create a persistent on-disk cache of files that the app can use for adding and retrieving data files between sessions. This is particularly useful in this example, as we demonstrate the hosting of data sets and configuration scripts in RDS files and R scripts remotely, in a zenodo.org repository.

Next, we define a function – in this example, named `dataset_fun` – that returns a `list` of metadata for available data sets. In this example, the information is parsed from an example file distributed in the `inst/` directory of the package. However, users may define a function that fetches that information in any way they see fit, e.g. authenticating and accessing data from privately accessible sources. Requirements for that function are detailed in the help page `?iSEEindex`, for the argument `FUN.datasets`.

Next, we define another function – in this example, named `initial_fun` – that returns a `list` of metadata for available initial configurations of the application state, for each individual data set. In this example, the information is parsed from an example file distributed in the `inst/` directory of the package. However, similarly to the previous function, users may define a function that fetches that information in any way they see fit. Requirements for that function are detailed in the help page `?iSEEindex`, for the argument `FUN.initial`.

Then, we pass the `BiocFileCache` object and the two custom functions defined above to the `iSEEindex::iSEEindex()` function, to create an iSEE application that incorporates a landing page offering users the choice of data sets and initial configurations fetched by the custom functions.

Finally, we use the `shiny::runApp()` function to launch the app.

# 3 Reproducibility

The iSEEindex package (Rue-Albrecht and Marini, 2024) was made possible thanks to:

- R (R Core Team, 2024)
- BiocStyle (Oleś, 2024)
- knitr (Xie, 2024)
- RefManageR (McLean, 2017)
- rmarkdown (Allaire, Xie, Dervieux et al., 2024)
- sessioninfo (Wickham, Chang, Flight et al., 2021)
- testthat (Wickham, 2011)

This package was developed using biocthis.

Code for creating the vignette

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

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

Date the vignette was generated.

    #> [1] "2024-05-01 19:38:15 EDT"

Wallclock time spent generating the vignette.

    #> Time difference of 1.165 secs

`R` session information.

    #> ─ Session info ───────────────────────────────────────────────────────────────────────────────────
    #>  setting  value
    #>  version  R version 4.4.0 beta (2024-04-15 r86425 ucrt)
    #>  os       Windows Server 2022 x64 (build 20348)
    #>  system   x86_64, mingw32
    #>  ui       RTerm
    #>  language (EN)
    #>  collate  C
    #>  ctype    English_United States.utf8
    #>  tz       America/New_York
    #>  date     2024-05-01
    #>  pandoc   2.7.3 @ C:/PROGRA~1/Pandoc/ (via rmarkdown)
    #>
    #> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────
    #>  package              * version date (UTC) lib source
    #>  abind                  1.4-5   2016-07-21 [2] CRAN (R 4.4.0)
    #>  backports              1.4.1   2021-12-13 [2] CRAN (R 4.4.0)
    #>  bibtex                 0.5.1   2023-01-26 [2] CRAN (R 4.4.0)
    #>  Biobase              * 2.64.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  BiocFileCache        * 2.12.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  BiocGenerics         * 0.50.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  BiocManager            1.30.22 2023-08-08 [2] CRAN (R 4.4.0)
    #>  BiocStyle            * 2.32.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  bit                    4.0.5   2022-11-15 [2] CRAN (R 4.4.0)
    #>  bit64                  4.0.5   2020-08-30 [2] CRAN (R 4.4.0)
    #>  blob                   1.2.4   2023-03-17 [2] CRAN (R 4.4.0)
    #>  bookdown               0.39    2024-04-15 [2] CRAN (R 4.4.0)
    #>  bslib                  0.7.0   2024-03-29 [2] CRAN (R 4.4.0)
    #>  cachem                 1.0.8   2023-05-01 [2] CRAN (R 4.4.0)
    #>  circlize               0.4.16  2024-02-20 [2] CRAN (R 4.4.0)
    #>  cli                    3.6.2   2023-12-11 [2] CRAN (R 4.4.0)
    #>  clue                   0.3-65  2023-09-23 [2] CRAN (R 4.4.0)
    #>  cluster                2.1.6   2023-12-01 [2] CRAN (R 4.4.0)
    #>  codetools              0.2-20  2024-03-31 [2] CRAN (R 4.4.0)
    #>  colorspace             2.1-0   2023-01-23 [2] CRAN (R 4.4.0)
    #>  colourpicker           1.3.0   2023-08-21 [2] CRAN (R 4.4.0)
    #>  ComplexHeatmap         2.20.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  crayon                 1.5.2   2022-09-29 [2] CRAN (R 4.4.0)
    #>  curl                   5.2.1   2024-03-01 [2] CRAN (R 4.4.0)
    #>  DBI                    1.2.2   2024-02-16 [2] CRAN (R 4.4.0)
    #>  dbplyr               * 2.5.0   2024-03-19 [2] CRAN (R 4.4.0)
    #>  DelayedArray           0.30.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  digest                 0.6.35  2024-03-11 [2] CRAN (R 4.4.0)
    #>  doParallel             1.0.17  2022-02-07 [2] CRAN (R 4.4.0)
    #>  dplyr                  1.1.4   2023-11-17 [2] CRAN (R 4.4.0)
    #>  DT                     0.33    2024-04-04 [2] CRAN (R 4.4.0)
    #>  evaluate               0.23    2023-11-01 [2] CRAN (R 4.4.0)
    #>  fansi                  1.0.6   2023-12-08 [2] CRAN (R 4.4.0)
    #>  fastmap                1.1.1   2023-02-24 [2] CRAN (R 4.4.0)
    #>  filelock               1.0.3   2023-12-11 [2] CRAN (R 4.4.0)
    #>  fontawesome            0.5.2   2023-08-19 [2] CRAN (R 4.4.0)
    #>  foreach                1.5.2   2022-02-02 [2] CRAN (R 4.4.0)
    #>  generics               0.1.3   2022-07-05 [2] CRAN (R 4.4.0)
    #>  GenomeInfoDb         * 1.40.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  GenomeInfoDbData       1.2.12  2024-04-16 [2] Bioconductor
    #>  GenomicRanges        * 1.56.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  GetoptLong             1.0.5   2020-12-15 [2] CRAN (R 4.4.0)
    #>  ggplot2                3.5.1   2024-04-23 [2] CRAN (R 4.4.0)
    #>  ggrepel                0.9.5   2024-01-10 [2] CRAN (R 4.4.0)
    #>  GlobalOptions          0.1.2   2020-06-10 [2] CRAN (R 4.4.0)
    #>  glue                   1.7.0   2024-01-09 [2] CRAN (R 4.4.0)
    #>  gtable                 0.3.5   2024-04-22 [2] CRAN (R 4.4.0)
    #>  highr                  0.10    2022-12-22 [2] CRAN (R 4.4.0)
    #>  htmltools              0.5.8.1 2024-04-04 [2] CRAN (R 4.4.0)
    #>  htmlwidgets            1.6.4   2023-12-06 [2] CRAN (R 4.4.0)
    #>  httpuv                 1.6.15  2024-03-26 [2] CRAN (R 4.4.0)
    #>  httr                   1.4.7   2023-08-15 [2] CRAN (R 4.4.0)
    #>  igraph                 2.0.3   2024-03-13 [2] CRAN (R 4.4.0)
    #>  IRanges              * 2.38.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  iSEE                   2.16.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  iSEEindex            * 1.2.0   2024-05-01 [1] Bioconductor 3.19 (R 4.4.0)
    #>  iterators              1.0.14  2022-02-05 [2] CRAN (R 4.4.0)
    #>  jquerylib              0.1.4   2021-04-26 [2] CRAN (R 4.4.0)
    #>  jsonlite               1.8.8   2023-12-04 [2] CRAN (R 4.4.0)
    #>  knitr                  1.46    2024-04-06 [2] CRAN (R 4.4.0)
    #>  later                  1.3.2   2023-12-06 [2] CRAN (R 4.4.0)
    #>  lattice                0.22-6  2024-03-20 [2] CRAN (R 4.4.0)
    #>  lifecycle              1.0.4   2023-11-07 [2] CRAN (R 4.4.0)
    #>  listviewer             4.0.0   2023-09-30 [2] CRAN (R 4.4.0)
    #>  lubridate              1.9.3   2023-09-27 [2] CRAN (R 4.4.0)
    #>  magrittr               2.0.3   2022-03-30 [2] CRAN (R 4.4.0)
    #>  Matrix                 1.7-0   2024-03-22 [2] CRAN (R 4.4.0)
    #>  MatrixGenerics       * 1.16.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  matrixStats          * 1.3.0   2024-04-11 [2] CRAN (R 4.4.0)
    #>  memoise                2.0.1   2021-11-26 [2] CRAN (R 4.4.0)
    #>  mgcv                   1.9-1   2023-12-21 [2] CRAN (R 4.4.0)
    #>  mime                   0.12    2021-09-28 [2] CRAN (R 4.4.0)
    #>  miniUI                 0.1.1.1 2018-05-18 [2] CRAN (R 4.4.0)
    #>  munsell                0.5.1   2024-04-01 [2] CRAN (R 4.4.0)
    #>  nlme                   3.1-164 2023-11-27 [2] CRAN (R 4.4.0)
    #>  paws.common            0.7.2   2024-04-09 [2] CRAN (R 4.4.0)
    #>  paws.storage           0.5.0   2024-01-09 [2] CRAN (R 4.4.0)
    #>  pillar                 1.9.0   2023-03-22 [2] CRAN (R 4.4.0)
    #>  pkgconfig              2.0.3   2019-09-22 [2] CRAN (R 4.4.0)
    #>  plyr                   1.8.9   2023-10-02 [2] CRAN (R 4.4.0)
    #>  png                    0.1-8   2022-11-29 [2] CRAN (R 4.4.0)
    #>  promises               1.3.0   2024-04-05 [2] CRAN (R 4.4.0)
    #>  purrr                  1.0.2   2023-08-10 [2] CRAN (R 4.4.0)
    #>  R6                     2.5.1   2021-08-19 [2] CRAN (R 4.4.0)
    #>  RColorBrewer           1.1-3   2022-04-03 [2] CRAN (R 4.4.0)
    #>  Rcpp                   1.0.12  2024-01-09 [2] CRAN (R 4.4.0)
    #>  RefManageR           * 1.4.0   2022-09-30 [2] CRAN (R 4.4.0)
    #>  rintrojs               0.3.4   2024-01-11 [2] CRAN (R 4.4.0)
    #>  rjson                  0.2.21  2022-01-09 [2] CRAN (R 4.4.0)
    #>  rlang                  1.1.3   2024-01-10 [2] CRAN (R 4.4.0)
    #>  rmarkdown              2.26    2024-03-05 [2] CRAN (R 4.4.0)
    #>  RSQLite                2.3.6   2024-03-31 [2] CRAN (R 4.4.0)
    #>  S4Arrays               1.4.0   2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  S4Vectors            * 0.42.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  sass                   0.4.9   2024-03-15 [2] CRAN (R 4.4.0)
    #>  scales                 1.3.0   2023-11-28 [2] CRAN (R 4.4.0)
    #>  sessioninfo          * 1.2.2   2021-12-06 [2] CRAN (R 4.4.0)
    #>  shape                  1.4.6.1 2024-02-23 [2] CRAN (R 4.4.0)
    #>  shiny                * 1.8.1.1 2024-04-02 [2] CRAN (R 4.4.0)
    #>  shinyAce               0.4.2   2022-05-06 [2] CRAN (R 4.4.0)
    #>  shinydashboard         0.7.2   2021-09-30 [2] CRAN (R 4.4.0)
    #>  shinyjs                2.1.0   2021-12-23 [2] CRAN (R 4.4.0)
    #>  shinyWidgets           0.8.6   2024-04-24 [2] CRAN (R 4.4.0)
    #>  SingleCellExperiment * 1.26.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  SparseArray            1.4.0   2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  stringi                1.8.3   2023-12-11 [2] CRAN (R 4.4.0)
    #>  stringr                1.5.1   2023-11-14 [2] CRAN (R 4.4.0)
    #>  SummarizedExperiment * 1.34.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  tibble                 3.2.1   2023-03-20 [2] CRAN (R 4.4.0)
    #>  tidyselect             1.2.1   2024-03-11 [2] CRAN (R 4.4.0)
    #>  timechange             0.3.0   2024-01-18 [2] CRAN (R 4.4.0)
    #>  triebeard              0.4.1   2023-03-04 [2] CRAN (R 4.4.0)
    #>  UCSC.utils             1.0.0   2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  urltools               1.7.3   2019-04-14 [2] CRAN (R 4.4.0)
    #>  utf8                   1.2.4   2023-10-22 [2] CRAN (R 4.4.0)
    #>  vctrs                  0.6.5   2023-12-01 [2] CRAN (R 4.4.0)
    #>  vipor                  0.4.7   2023-12-18 [2] CRAN (R 4.4.0)
    #>  viridisLite            0.4.2   2023-05-02 [2] CRAN (R 4.4.0)
    #>  xfun                   0.43    2024-03-25 [2] CRAN (R 4.4.0)
    #>  xml2                   1.3.6   2023-12-04 [2] CRAN (R 4.4.0)
    #>  xtable                 1.8-4   2019-04-21 [2] CRAN (R 4.4.0)
    #>  XVector                0.44.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>  yaml                   2.3.8   2023-12-11 [2] CRAN (R 4.4.0)
    #>  zlibbioc               1.50.0  2024-05-01 [2] Bioconductor 3.19 (R 4.4.0)
    #>
    #>  [1] F:/biocbuild/bbs-3.19-bioc/tmpdir/Rtmpc7QPOQ/Rinst452c2d6d4728
    #>  [2] F:/biocbuild/bbs-3.19-bioc/R/library
    #>
    #> ──────────────────────────────────────────────────────────────────────────────────────────────────

# 4 Bibliography

This vignette was generated using BiocStyle (Oleś, 2024) 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.26. 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.32.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 and F. Marini. iSEEindex: iSEE extension for a landing page to a custom collection of data sets. R package version 1.2.0. 2024. URL: https://github.com/iSEE/iSEEindex.

[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. 2021. URL: https://CRAN.R-project.org/package=sessioninfo.

[8] Y. Xie. knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.46. 2024. URL: https://yihui.org/knitr/.