Introduction

This vignette consists of a series of (independent) hands-on recipes, aimed at exploring the capabilities of iSEE both interactively and programmatically. Each recipe consists of a short task and a screen shot of the desired appearance of the app instance that should be created. For each recipe, we provide a set of hints, as well as detailed instructions on how to solve the task both interactively (by clicking in the app) and programmatically (by directly setting up and launching the desired app instance).

For a general overview of the default iSEE panels, we refer to the overview vignette. For all the details about the panel classes and the associated slots, we refer to the help pages for the respective panel class (e.g., ?ReducedDimensionPlot).

Prepare the session

Before starting with the recipes, we need to load the required packages and the demo data set (PBMC3k).

library(iSEE)
library(iSEEu)
sce <- readRDS("pbmc3k.rds")

Recipe 1: Panel organisation

Using the PBMC3k data set, create an app that contains only a reduced dimension plot panel, a row data plot panel and a column data plot panel. The widths of the three panels should be 3, 4 and 5 units, respectively.

Hints
  • Panels can be added, removed and resized via the Organization button in the top right corner of the app.
  • To pre-specify the panels to be included in the app, use the initial argument to iSEE().
  • For more information about the different types of panels, see the overview vignette or the help pages for the respective panel classes.
Solution (interactively)
  • First open an application with the default set of panels.
  • app <- iSEE(sce)
    shiny::runApp(app)
  • Click on the Organization button in the top right corner of the app, and then click on Organize panels.
  • In the pop-up window that appears, click on the little x next to all the panels that you want to remove (all but the Reduced dimension plot 1, Column data plot 1 and Row data plot 1).
  • Drag and drop the remaining three panel names in the correct order.
  • For each panel, set the correct panel width by modifying the value in the Width dropdown menu.
  • Click Apply settings.
Solution (programmatically)
app <- iSEE(sce, initial = list(
  ReducedDimensionPlot(PanelWidth = 3L),
  RowDataPlot(PanelWidth = 4L),
  ColumnDataPlot(PanelWidth = 5L)
))

Recipe 2: Data parameters configuration - selecting columns to display

Using the PBMC3k data set, visualize the cell type assignment against the cluster membership, with the aim to identify the predominant cell type in each cluster. In this case, since both cell annotations are categorical, iSEE will generate a so called Hinton plot.

Hints
  • Column (in this case cell) annotations can be visualized using a ColumnDataPlot panel.
  • The cluster labels are available in the Cluster column of colData(sce).
  • The cell type assignments are available in the labels_fine column of colData(sce) (more coarse-grained assignments are provided in the labels_main column).
  • iSEE will automatically determine the plot type depending on the type of selected variables.
Solution (interactively)
  • First open an application with a single ColumnDataPlot panel spanning the full application window)
  • app <- iSEE(sce, initial = list(ColumnDataPlot(PanelWidth = 12L)))
    shiny::runApp(app)
  • In the ColumnDataPlot panel, click to expand the Data parameters collapsible box.
  • Under Column of interest (Y-axis), select the label column (e.g., labels_fine).
  • Under X-axis, select Column data, and under Column of interest (X-axis), select Cluster.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ColumnDataPlot(PanelWidth = 12L, XAxis = "Column data",
                   XAxisColumnData = "Cluster", YAxis = "labels_fine")
))

Recipe 3: Data parameters configuration - displaying multiple reduced dimension representations

Using the PBMC3k data set, display both the tSNE and UMAP representations next to each other.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
Solution (interactively)
  • First open an application with two ReducedDimensionPlot panels, each spanning half the application window)
  • app <- iSEE(sce, initial = list(ReducedDimensionPlot(PanelWidth = 6L),
                                    ReducedDimensionPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In the first ReducedDimensionPlot panel, click to expand the Data parameters collapsible box.
  • In the Type selection box, choose TSNE.
  • In the second ReducedDimensionPlot panel, repeat the procedure but instead select UMAP.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE"),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "UMAP")
))

Recipe 4: Data parameters configuration - displaying the expression of a specific gene across clusters

Using the PBMC3k data set, plot the distribution of the logcount values for the gene CD74 in each of the clusters.

Hints
  • Gene expression values can be displayed using a FeatureAssayPlot panel.
  • To select a gene, specify the ID provided as row names in the SingleCellExperiment.
Solution (interactively)
  • First open an application with a FeatureAssayPlot panel, spanning the full application window)
  • app <- iSEE(sce, initial = list(FeatureAssayPlot(PanelWidth = 12L)))
    shiny::runApp(app)
  • In the FeatureAssayPlot panel, click to expand the Data parameters collapsible box.
  • Under Y-axis feature, type or select CD74.
  • Under X-axis, select Column data, and under Column of interest (X-axis), select Cluster.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    FeatureAssayPlot(PanelWidth = 12L, XAxis = "Column data",
                     YAxisFeatureName = "CD74", XAxisColumnData = "Cluster")
))

Recipe 5: Visual parameters configuration - coloring reduced dimension representations by cell annotation

Using the PBMC3k data set, display two tSNE representations next to each other. In the first one, color the cells by the cluster label. In the second one, color the cells by the log10 of the total UMI count (log10_total column of colData(sce)).

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • The cluster labels are available in the Cluster column of colData(sce).
  • Point attributes can be accessed in the Visual parameters collapsible box. To display or hide the possible options, check the corresponding checkboxes (Color, Shape, Size, Point).
Solution (interactively)
  • First open an application with two ReducedDimensionPlot panels, each spanning half the application window)
  • app <- iSEE(sce, initial = list(ReducedDimensionPlot(PanelWidth = 6L),
                                    ReducedDimensionPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In each ReducedDimensionPlot panel, click to expand the Data parameters collapsible box and under Type, choose TSNE.
  • In the first ReducedDimensionPlot panel, click to expand the Visual parameters collapsible box.
  • Make sure that the Color checkbox is ticked.
  • Under Color by, select Column data.
  • In the dropdown menu that appears, select Cluster.
  • In the second ReducedDimensionPlot panel, repeat the procedure but instead select log10_total.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Column data",
                         ColorByColumnData = "Cluster"),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Column data",
                         ColorByColumnData = "log10_total")
))

Recipe 6: Visual parameters configuration - coloring reduced dimension representations by gene expression

Using the PBMC3k data set, display two tSNE representations next to each other. In the first one, color the cells by the logcounts expression level of CD3D. In the second one, color the cells by the logcounts expression level of CD79B.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • To select a gene, specify the ID provided as row names in the SingleCellExperiment.
  • Point attributes can be accessed in the Visual parameters collapsible box. To display or hide the possible options, check the corresponding checkboxes (Color, Shape, Size, Point).
Solution (interactively)
  • First open an application with two ReducedDimensionPlot panels, each spanning half the application window)
  • app <- iSEE(sce, initial = list(ReducedDimensionPlot(PanelWidth = 6L),
                                    ReducedDimensionPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In each ReducedDimensionPlot panel, click to expand the Data parameters collapsible box and under Type, choose TSNE.
  • In the first ReducedDimensionPlot panel, click to expand the Visual parameters collapsible box.
  • Make sure that the Color checkbox is ticked.
  • Under Color by, select Feature name.
  • In the dropdown menu that appears, select or type CD3D.
  • In the second ReducedDimensionPlot panel, repeat the procedure but instead select CD79B.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Feature name",
                         ColorByFeatureName = "CD3D"),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Feature name",
                         ColorByFeatureName = "CD79B")
))

Recipe 7: Visual parameters configuration - changing the size and opacity of points

Using the PBMC3k data set, display two tSNE representations next to each other. In the first one, set the point size to 0.5. In the second one, set the point size to 3 and the opacity to 0.2.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • Point attributes can be accessed in the Visual parameters collapsible box. To display or hide the possible options, check the corresponding checkboxes (Color, Shape, Size, Point).
Solution (interactively)
  • First open an application with two ReducedDimensionPlot panels, each spanning half the application window)
  • app <- iSEE(sce, initial = list(ReducedDimensionPlot(PanelWidth = 6L),
                                    ReducedDimensionPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In each ReducedDimensionPlot panel, click to expand the Data parameters collapsible box and under Type, choose TSNE.
  • In the first ReducedDimensionPlot panel, click to expand the Visual parameters collapsible box.
  • Make sure that the Size checkbox is ticked.
  • Under Size by, select None.
  • In the text box underneath, type 0.5.
  • In the second ReducedDimensionPlot panel, click to expand the Visual parameters collapsible box.
  • Make sure that the Size and Point checkboxes are ticked.
  • Under Size by, select None.
  • In the text box underneath, type 3.
  • Under Point opacity, drag the slider to 0.2.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         PointSize = 0.5),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         PointSize = 3, PointAlpha = 0.2)
))

Recipe 8: Selection configuration

Using the PBMC3k data set, display the expression (logcounts) of CD3D across the assigned clusters, as well as a tSNE representation colored by the cluster label. Select all cells with a logcount expression value of CD3D between (approximately) 0.5 and 4, and highlight these in the tSNE plot by means of transparency.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • Gene expression values can be displayed using a FeatureAssayPlot panel.
  • To select a gene, specify the ID provided as row names in the SingleCellExperiment.
  • Transmission of selections is set up in the Selection parameters collapsible box.
  • Points can be selected by clicking and dragging the mouse to draw a rectangle around them, or by repeatedly clicking to make a lasso (free-form) selection.
Solution (interactively)
  • First open an application with one FeatureAssayPlot panel and one ReducedDimensionPlot panel, each spanning half the application window)
  • app <- iSEE(sce, initial = list(FeatureAssayPlot(PanelWidth = 6L),
                                    ReducedDimensionPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In the FeatureAssayPlot panel, click to expand the Data parameters collapsible box and under Y-axis feature, type or select CD3D.
  • Under X-axis, select Column data, and under X-axis column data, select Cluster.
  • In the FeatureAssayPlot panel, use the mouse to drag a rectangle around all points with a logcount expression value (y-axis) between approximately 0.5 and 4.
  • In the ReducedDimensionPlot panel, click to expand the Data parameters collapsible box and under Type, choose TSNE.
  • In the ReducedDimensionPlot panel, further click to expand the Visual parameters collapsible box, make sure that the Color checkbox is ticked. Under Color by, select Column data. In the dropdown menu that appears, type or select Cluster.
  • In the ReducedDimensionPlot panel, click to expand the Selection parameters collapsible box.
  • Under Receive column selection from, select Feature assay plot 1.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    FeatureAssayPlot(PanelWidth = 6L, 
                     BrushData = list(xmin = 0, xmax = 15, 
                                      ymin = 0.5, ymax = 4, 
                       mapping = list(x = "X", y = "Y", group = "GroupBy"), 
                       direction = "xy", 
                       brushId = "FeatureAssayPlot1_Brush", 
                       outputId = "FeatureAssayPlot1"),
                     XAxis = "Column data", 
                     XAxisColumnData = "Cluster", YAxisFeatureName = "CD3D"),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Column data",
                         ColorByColumnData = "Cluster",
                         ColumnSelectionSource = "FeatureAssayPlot1")
))

Recipe 9: Verifying the cell type identity of clusters

Using the PBMC3k data set, create a scatter plots displaying the (logcounts) expression values of CD79A vs CD74, as well as a Hinton plot of the cluster and cell type assignment annotations. Select the cells co-expressing CD79A and CD74 in the scatter plot. Which cell type/cluster(s) do these correspond to (color these points in the Hinton plot)?

Hints
  • Gene expression values can be displayed using a FeatureAssayPlot panel.
  • To select a gene, specify the ID provided as row names in the SingleCellExperiment.
  • Column (in this case cell) annotations can be visualized using a ColumnDataPlot panel.
  • The cluster labels are available in the Cluster column of colData(sce). Coarse-grained cell type labels are available in the labels_main column.
  • Transmission of selections is set up in the Selection parameters collapsible box.
  • Points can be selected by clicking and dragging the mouse to draw a rectangle around them, or by repeatedly clicking to make a lasso (free-form) selection.
Solution (interactively)
  • First open an application with one FeatureAssayPlot panel and one ColumnDataPlot panel, each spanning half of the application window)
  • app <- iSEE(sce, initial = list(FeatureAssayPlot(PanelWidth = 6L),
                                    ColumnDataPlot(PanelWidth = 6L)))
    shiny::runApp(app)
  • In the FeatureAssayPlot panel, click to expand the Data parameters collapsible box.
  • Under Y-axis feature, type or select CD79A.
  • Under X-axis, select Feature name, and under X-axis feature, type or select CD74.
  • In the ColumnDataPlot panel, click to expand the Data parameters collapsible box.
  • Under Column of interest (Y-axis), type or select labels_main.
  • Under X-axis, select Column data, and under Column of interest (X-axis), select Cluster.
  • In the FeatureAssayPlot panel, use the mouse to drag a rectangle around all points co-expressing CD79A and CD74.
  • In the ColumnDataPlot panel, click to expand the Selection parameters collapsible box.
  • Under Receive column selection from, select Feature assay plot 1.
  • In the ColumnDataPlot panel, click to expand the Visual parameters collapsible box.
  • Under Color by, select Column selection.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    FeatureAssayPlot(PanelWidth = 6L, XAxis = "Feature name",
                     YAxisFeatureName = "CD79A", 
                     XAxisFeatureName = "CD74",
                     BrushData = list(
                       xmin = 0.3, xmax = 7, 
                       ymin = 0.3, ymax = 7, 
                       mapping = list(x = "X", y = "Y", colour = "ColorBy"), 
                       direction = "xy", brushId = "FeatureAssayPlot1_Brush", 
                       outputId = "FeatureAssayPlot1")),
    ColumnDataPlot(PanelWidth = 6L, XAxis = "Column data", 
                   YAxis = "labels_main", 
                   XAxisColumnData = "Cluster",
                   ColumnSelectionSource = "FeatureAssayPlot1",
                   ColorBy = "Column selection")
))

Recipe 10: Using modes from iSEEu

Using the PBMC3k data set, load iSEEu and use the modeReducedDim mode to open an app displaying all the reduced dimension representations stored in the SingleCellExperiment object. Color the representations by the cell type assignment.

Hints
  • The cell type assignments are available in the labels_fine column of colData(sce) (more coarse-grained assignments are provided in the labels_main column).
  • The annotation to color by can be specified when calling iSEEu::modeReducedDim().
Solution (programmatically)
app <- modeReducedDim(sce, colorBy = "labels_main")

Recipe 11 - Including a tour

Using the PBMC3k data set, display two tSNE representations next to each other. In the first one, color the cells by the logcounts expression level of CD3D. In the second one, color the cells by the logcounts expression level of CD79B. Also include a small tour that starts with a welcome message, next walks through the two panels, giving an informative message for each, and finally ends with a concluding message to the user.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • To select a gene, specify the ID provided as row names in the SingleCellExperiment.
  • Point attributes can be accessed in the Visual parameters collapsible box. To display or hide the possible options, check the corresponding checkboxes (Color, Shape, Size, Point).
  • Tours are provided via the tour argument to iSEE().
  • A tour is defined by a two-column data frame, with columns named element and intro. The element column contains the names of UI elements, prefixed by a hash sign. More details, including how to find the name of a particular UI elements, can be found in the Configuring iSEE apps vignette of iSEE.
Solution (programmatically)
tour <- data.frame(
    element = c(
        "#Welcome",
        "#ReducedDimensionPlot1",
        "#ReducedDimensionPlot2",
        "#Conclusion"),
    intro = c(
        "Welcome to this tour!",
        "This is the first reduced dimension plot",
        "And here is the second one",
        "Thank you for taking this tour!"),
    stringsAsFactors = FALSE)

app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Feature name",
                         ColorByFeatureName = "CD3D"),
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Feature name",
                         ColorByFeatureName = "CD79B")), 
    tour = tour)

Recipe 12 - Including non-default panels

The main focus of iSEE is exploration of pre-calculated results. This is reflected in the default set of panels, which all rely on reading and displaying information stored in the SummarizedExperiment object. However, it is also possible to construct custom panels, which can perform arbitrarily complex analyses. Providing a middle ground, the iSEEu package contains some custom panel types that can perform basic analysis, such as a simple test for differential expression between selected groups of samples. It is worth noting that although there is not a single, ‘always-optimal’ way of doing this type of analysis, the panel type provides a quick way of characterizing a set of samples via the set of upregulated genes.

Using the PBMC3k data set, display a tSNE representation colored by the cluster assignment, as well as a dynamic marker table that displays genes that are differentially expressed between sets of interactively selected cells in the tSNE plot. Select the smallest cluster in the bottom of the plot and find the genes most strongly upregulated compared to the other cells.

Hints
  • Reduced dimension representations can be displayed using ReducedDimensionPlot panels.
  • The reduced dimension representations in the SingleCellExperiment object can be accessed by name (reducedDimNames(sce) lists the available representations).
  • The dynamic marker table panel is available in the iSEEu package (DynamicMarkerTable panel).
  • In order to be able to manually add panels of a non-default type (that is, other than the eight types that are included by default in a call to iSEE()) you need to provide the panel class to the extra argument of iSEE(), unless you specify the panel in the initial argument.
Solution (interactively)
  • First open an application with one ReducedDimensionPlot panel and one DynamicMarkerTable panel, each spanning half of the application window). Note that in order to access the DynamicMarkerTable panel type, the iSEEu package must be loaded into your R session.
  • library(iSEEu)
    app <- iSEE(sce, initial = list(ReducedDimensionPlot(PanelWidth = 6L),
                                    DynamicMarkerTable(PanelWidth = 6L)))
    shiny::runApp(app)
  • If you prefer to organize the interface via the Organize panels button, you can launch iSEE with the default set of panels. In this case, make sure to provide the DynamicMarkerTable to the extra argument, so that it will show up as an option when you add new panels. If you take this approach, click on the Organization button in the top right corner of the app, and then click on Organize panels and set up the desired interface.
  • app <- iSEE(sce, extra = list(DynamicMarkerTable()))
    shiny::runApp(app)
  • In the ReducedDimensionPlot panel, click to expand the Data parameters collapsible box.
  • Under Type, type or select TSNE.
  • Click to expand the Visual parameters collapsible box.
  • Make sure that the Color checkbox is ticked.
  • Under Color by, select Column data.
  • In the dropdown menu that appears, select Cluster.
  • In the DynamicMarkerTable panel, click to expand the Selection parameters collapsible box.
  • Under Receive column selection from, select Reduced dimension plot 1.
  • Draw a rectangular box around the cluster in the bottom of the t-SNE plot, and notice how the dynamic marker table is populated with the genes that are most highly upregulated in that cluster compared to the other cells.
Solution (programmatically)
app <- iSEE(sce, initial = list(
    ReducedDimensionPlot(PanelWidth = 6L, Type = "TSNE",
                         ColorBy = "Column data",
                         ColorByColumnData = "Cluster",
                         BrushData = list(xmin = -20, xmax = 5,
                                          ymin = -40, ymax = -15, 
                                          mapping = list(x = "X", y = "Y",
                                                         colour = "ColorBy"), 
                                          direction = "xy", 
                                          brushId = "ReducedDimensionPlot1_Brush", 
                                          outputId = "ReducedDimensionPlot1")),
    DynamicMarkerTable(PanelWidth = 6L,
                       ColumnSelectionSource = "ReducedDimensionPlot1"))
)

Session info

sessionInfo()
#> R version 4.1.2 (2021-11-01)
#> Platform: x86_64-apple-darwin17.0 (64-bit)
#> Running under: macOS Big Sur 10.16
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
#> 
#> locale:
#> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> 
#> attached base packages:
#> [1] stats4    stats     graphics  grDevices utils     datasets  methods  
#> [8] base     
#> 
#> other attached packages:
#>  [1] iSEEu_1.6.0                 iSEE_2.6.0                 
#>  [3] SingleCellExperiment_1.16.0 SummarizedExperiment_1.24.0
#>  [5] Biobase_2.54.0              GenomicRanges_1.46.1       
#>  [7] GenomeInfoDb_1.30.0         IRanges_2.28.0             
#>  [9] S4Vectors_0.32.3            BiocGenerics_0.40.0        
#> [11] MatrixGenerics_1.6.0        matrixStats_0.61.0         
#> [13] BiocStyle_2.22.0           
#> 
#> loaded via a namespace (and not attached):
#>  [1] nlme_3.1-153           bitops_1.0-7           fontawesome_0.2.2     
#>  [4] doParallel_1.0.16      RColorBrewer_1.1-2     tools_4.1.2           
#>  [7] bslib_0.3.1            utf8_1.2.2             R6_2.5.1              
#> [10] DT_0.20                vipor_0.4.5            mgcv_1.8-38           
#> [13] DBI_1.1.1              colorspace_2.0-2       GetoptLong_1.0.5      
#> [16] tidyselect_1.1.1       compiler_4.1.2         shinyjs_2.0.0         
#> [19] DelayedArray_0.20.0    colourpicker_1.1.1     sass_0.4.0            
#> [22] scales_1.1.1           stringr_1.4.0          digest_0.6.29         
#> [25] rmarkdown_2.11         XVector_0.34.0         pkgconfig_2.0.3       
#> [28] htmltools_0.5.2        highr_0.9              fastmap_1.1.0         
#> [31] htmlwidgets_1.5.4      rlang_0.4.12           GlobalOptions_0.1.2   
#> [34] shiny_1.7.1            shape_1.4.6            jquerylib_0.1.4       
#> [37] generics_0.1.1         jsonlite_1.7.2         dplyr_1.0.7           
#> [40] RCurl_1.98-1.5         magrittr_2.0.1         GenomeInfoDbData_1.2.7
#> [43] Matrix_1.4-0           Rcpp_1.0.7             munsell_0.5.0         
#> [46] fansi_0.5.0            lifecycle_1.0.1        rintrojs_0.3.0        
#> [49] stringi_1.7.6          yaml_2.2.1             zlibbioc_1.40.0       
#> [52] grid_4.1.2             parallel_4.1.2         promises_1.2.0.1      
#> [55] ggrepel_0.9.1          shinydashboard_0.7.2   crayon_1.4.2          
#> [58] miniUI_0.1.1.1         lattice_0.20-45        splines_4.1.2         
#> [61] circlize_0.4.13        knitr_1.36             ComplexHeatmap_2.10.0 
#> [64] pillar_1.6.4           igraph_1.2.9           rjson_0.2.20          
#> [67] codetools_0.2-18       glue_1.5.1             evaluate_0.14         
#> [70] BiocManager_1.30.16    png_0.1-7              vctrs_0.3.8           
#> [73] httpuv_1.6.3           foreach_1.5.1          gtable_0.3.0          
#> [76] purrr_0.3.4            clue_0.3-60            assertthat_0.2.1      
#> [79] ggplot2_3.3.5.9000     xfun_0.28              mime_0.12             
#> [82] xtable_1.8-4           later_1.3.0            viridisLite_0.4.0     
#> [85] tibble_3.1.6           iterators_1.0.13       cluster_2.1.2         
#> [88] shinyWidgets_0.6.2     ellipsis_0.3.2         shinyAce_0.4.1