• 1 Introduction
    • 1.1 Motivation
    • 1.2 Panels
  • 2 Tutorial
    • 2.1 Installation
    • 2.2 Example
  • 3 Resources
    • 3.1 Open datasets
    • 3.2 Other tutorials
    • 3.3 Citation
    • 3.4 Acknowledgements
    • 3.5 Help
  • 4 Reproducibility
  • References

1 Introduction

1.1 Motivation

iSEEtree is a Bioconductor package for the interactive visualisation of hierarchical data stored in a TreeSummarizedExperiment (TreeSE) container. On the one side, it leverages and extends the graphics of the iSEE package, which is designed for the generic SummarizedExperiment class. On the other side, it employs the statistical and visual tools for microbiome data science provided by the mia family of packages. Thus, iSEE and mia represent the two building blocks of iSEEtree. Detailed introductory material on these two frameworks is available in the iSEE-verse website and the OMA Bioconductor book, respectively.

iSEEtree is meant for new and experienced users alike, who desire to create and interact with several graphics for hierarchical data, without the need for an in-depth knowledge of the underlying mia functionality. Current panels include compositional plots, ordination graphs and structural tree or networks, which are further discussed in the current article and in the online package documentation. Other more generic panels are also inherited from the parent package iSEE and its many extensions.

1.2 Panels

iSEEtree derives its microbiome-related visualisation methods from the miaViz package, which is code-based and requires basic knowledge of R programming and microbiome data structures. The panels provided represent an easy-to-use interactive version of most miaViz plotting functions. They allow to visualise several aspects of hierarchical data by three general approaches: compositional, ordination and structural analysis.

1.2.1 Compositional Analysis

These panels can be used to explore sample composition and feature prevalence or abundance across samples. This topic is further discussed in the OMA chapter on Community Composition.

  • AbundancePlot: a compositional barplot of the samples, where every bar is a sample composed by different features in different colours.
  • AbundanceDensityPlot: a density plot of the top features, where every line is a feature and the x axis shows its abundance for different samples.
  • PrevalencePlot: coming soon!

1.2.2 Ordination Analysis

These panels show the results of ordination analyses or dimensionality reduction methods applied to the assay data, both in terms of reduced components as well as explained variance and feature importance. This topic is further discussed in the OMA chapter on Community Similarity.

  • RDAPlot: an supervised ordination plot of the samples, where every dot is a sample on a reduced dimensional space and every arrow reflects the contribution of a sample variable.
  • LoadingPlot: a heatmap or barplot of the loadings or contributions of each feature to the reduced dimensions of PCA, PCoA or another ordination method.
  • ScreePlot: a barplot of the contributions of each reduced dimension component to the explained variance.

1.2.3 Structural Analysis

The structure or organisation of hierarchical data can be explored with the tree and network visualisations that provide a holistic picture of the structured relationships across features or samples. This topic is further discussed in the OMA chapters on Exploration and Networks.

  • RowTreePlot: a phylogenetic tree of the features, where every tip is a feature and two neighbouring tips are more closely related than two far apart from each other.
  • ColumnTreePlot: the hierarchical organisation of the samples, where every tip is a sample and the closer the more related they are.
  • RowGraphPlot: the network organisation of the features, where every node is a feature and edges reflect the degree of connection between features.
  • ColumnGraphPlot: the network organisation of the samples, where every node is a sample and edges reflect the degree of connection between samples.

1.2.4 Other Panels

By default, the iSEEtree layout also includes the following panels inherited by iSEE:

The ColumnDataPlot could also prove useful for the visualisation of column variables such as alpha diversity indices. Its interpretation is explained in the OMA chapter on Community Diversity.

For more information on the available panels, users are directed to the iSEEtree panel catalogue in the main package documentation.

2 Tutorial

2.1 Installation

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

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

BiocManager::install("iSEEtree")

2.2 Example

The panels described above can be generated for a model TreeSE object in the following example:

library(iSEEtree)
library(mia)
library(scater)

# Import TreeSE
data("Tengeler2020", package = "mia")
tse <- Tengeler2020

# Add relabundance assay
tse <- transformAssay(tse, method = "relabundance")

# Add reduced dimensions
tse <- runMDS(tse, assay.type = "relabundance")

# Launch iSEE
if (interactive()) {
  iSEE(tse)
}

3 Resources

3.1 Open datasets

TreeSE objects can be constructed from raw data and standardised file formats. However, several packages provide access to demonstration datasets used to familiarise with the use of TreeSE objects. A complete list of resources is available in the OMA chapter on Data Import.

In addition, we provide the Microbiome Analysis Dashboard (miaDash), a web app based on iSEEtree that offers a complete interface to import, analyse and visualise microbiome data, or to easily access mia datasets for experimentation purposes. The app is hosted online at this address by the Finnish IT Center for Science (CSC).

3.2 Other tutorials

Users interested in general topics about the iSEE interface are redirected to the documentation of the iSEE parent package, which provides ideas and solutions on how to:

  • use iSEE with big data
  • configure iSEE apps
  • deploy custom panels
  • share information across panels
  • control the interface with speech

3.3 Citation

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

citation("iSEEtree")
#> To cite iSEEtree in publications use:
#> 
#>   Benedetti, G., Seraidarian, E., Pralas, T., Jeba, A. Borman, T., &
#>   Lahti, L. (2024). iSEEtree: interactive explorer for hierarchical
#>   data. arXiv. doi: https://doi.org/10.48550/arXiv.2412.02882
#> 
#> A BibTeX entry for LaTeX users is
#> 
#>   @Article{,
#>     title = {iSEEtree: interactive explorer for hierarchical data},
#>     author = {Giulio Benedetti and Ely Seraidarian and Theotime Pralas and Akewak Jeba and Tuomas Borman and Leo Lahti},
#>     journal = {arXiv},
#>     year = {2024},
#>     url = {https://arxiv.org/abs/2412.02882},
#>   }

3.4 Acknowledgements

iSEEtree originates from the joint effort of the R/Bioconductor community. It is mainly based on the following software:

  • R, statistical programming language (R Core Team 2024)
  • mia, framework for microbiome data analysis (Borman et al. 2024)
  • iSEE, SummarizedExperiment interactive explorer (Rue-Albrecht et al. 2018)
  • TreeSummarizedExperiment, S4 container for hierarchical data (Huang et al. 2021)
  • shiny, web app development in R (Chang et al. 2024)

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

3.5 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 iSEEtree 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.

4 Reproducibility

R session information:

#> R Under development (unstable) (2025-03-13 r87965)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.2 LTS
#> 
#> Matrix products: default
#> BLAS:   /home/biocbuild/bbs-3.21-bioc/R/lib/libRblas.so 
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB              LC_COLLATE=C              
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> time zone: America/New_York
#> tzcode source: system (glibc)
#> 
#> attached base packages:
#> [1] stats4    stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#>  [1] scater_1.35.4                   ggplot2_3.5.1                   scuttle_1.17.0                 
#>  [4] mia_1.15.32                     TreeSummarizedExperiment_2.15.0 Biostrings_2.75.4              
#>  [7] XVector_0.47.2                  MultiAssayExperiment_1.33.9     iSEEtree_1.1.4                 
#> [10] iSEE_2.19.3                     SingleCellExperiment_1.29.2     SummarizedExperiment_1.37.0    
#> [13] Biobase_2.67.0                  GenomicRanges_1.59.1            GenomeInfoDb_1.43.4            
#> [16] IRanges_2.41.3                  S4Vectors_0.45.4                BiocGenerics_0.53.6            
#> [19] generics_0.1.3                  MatrixGenerics_1.19.1           matrixStats_1.5.0              
#> [22] BiocStyle_2.35.0               
#> 
#> loaded via a namespace (and not attached):
#>   [1] splines_4.6.0               later_1.4.1                 ggplotify_0.1.2             cellranger_1.1.0           
#>   [5] tibble_3.2.1                polyclip_1.10-7             DirichletMultinomial_1.49.0 lifecycle_1.0.4            
#>   [9] doParallel_1.0.17           miaViz_1.15.12              lattice_0.22-6              MASS_7.3-65                
#>  [13] SnowballC_0.7.1             magrittr_2.0.3              sass_0.4.9                  rmarkdown_2.29             
#>  [17] jquerylib_0.1.4             yaml_2.3.10                 httpuv_1.6.15               DBI_1.2.3                  
#>  [21] RColorBrewer_1.1-3          multcomp_1.4-28             abind_1.4-8                 purrr_1.0.4                
#>  [25] fillpattern_1.0.2           ggraph_2.2.1                yulab.utils_0.2.0           TH.data_1.1-3              
#>  [29] tweenr_2.0.3                sandwich_3.1-1              circlize_0.4.16             GenomeInfoDbData_1.2.14    
#>  [33] ggrepel_0.9.6               tokenizers_0.3.0            irlba_2.3.5.1               tidytree_0.4.6             
#>  [37] vegan_2.6-10                rbiom_2.1.2                 parallelly_1.42.0           permute_0.9-7              
#>  [41] DelayedMatrixStats_1.29.1   codetools_0.2-20            DelayedArray_0.33.6         ggforce_0.4.2              
#>  [45] DT_0.33                     ggtext_0.1.2                xml2_1.3.8                  tidyselect_1.2.1           
#>  [49] shape_1.4.6.1               aplot_0.2.5                 UCSC.utils_1.3.1            farver_2.1.2               
#>  [53] ScaledMatrix_1.15.0         viridis_0.6.5               shinyWidgets_0.9.0          jsonlite_1.9.1             
#>  [57] GetoptLong_1.0.5            BiocNeighbors_2.1.3         tidygraph_1.3.1             decontam_1.27.0            
#>  [61] survival_3.8-3              iterators_1.0.14            emmeans_1.10.7              systemfonts_1.2.1          
#>  [65] foreach_1.5.2               tools_4.6.0                 ggnewscale_0.5.1            ragg_1.3.3                 
#>  [69] treeio_1.31.0               Rcpp_1.0.14                 glue_1.8.0                  gridExtra_2.3              
#>  [73] SparseArray_1.7.7           BiocBaseUtils_1.9.0         xfun_0.51                   mgcv_1.9-1                 
#>  [77] dplyr_1.1.4                 withr_3.0.2                 shinydashboard_0.7.2        BiocManager_1.30.25        
#>  [81] fastmap_1.2.0               rhdf5filters_1.19.2         bluster_1.17.0              shinyjs_2.1.0              
#>  [85] digest_0.6.37               rsvd_1.0.5                  R6_2.6.1                    mime_0.13                  
#>  [89] gridGraphics_0.5-1          estimability_1.5.1          textshaping_1.0.0           colorspace_2.1-1           
#>  [93] listviewer_4.0.0            tidyr_1.3.1                 DECIPHER_3.3.4              graphlayouts_1.2.2         
#>  [97] httr_1.4.7                  htmlwidgets_1.6.4           S4Arrays_1.7.3              pkgconfig_2.0.3            
#> [101] gtable_0.3.6                ComplexHeatmap_2.23.0       janeaustenr_1.0.0           htmltools_0.5.8.1          
#> [105] bookdown_0.42               rintrojs_0.3.4              clue_0.3-66                 scales_1.3.0               
#> [109] png_0.1-8                   ggfun_0.1.8                 knitr_1.50                  tzdb_0.5.0                 
#> [113] reshape2_1.4.4              rjson_0.2.23                coda_0.19-4.1               nlme_3.1-167               
#> [117] shinyAce_0.4.4              rhdf5_2.51.2                cachem_1.1.0                zoo_1.8-13                 
#> [121] GlobalOptions_0.1.2         stringr_1.5.1               parallel_4.6.0              miniUI_0.1.1.1             
#> [125] vipor_0.4.7                 pillar_1.10.1               grid_4.6.0                  vctrs_0.6.5                
#> [129] slam_0.1-55                 promises_1.3.2              BiocSingular_1.23.0         beachmat_2.23.7            
#> [133] xtable_1.8-4                cluster_2.1.8.1             beeswarm_0.4.0              evaluate_1.0.3             
#> [137] readr_2.1.5                 mvtnorm_1.3-3               cli_3.6.4                   compiler_4.6.0             
#> [141] rlang_1.1.5                 crayon_1.5.3                tidytext_0.4.2              plyr_1.8.9                 
#> [145] fs_1.6.5                    ggbeeswarm_0.7.2            stringi_1.8.4               viridisLite_0.4.2          
#> [149] BiocParallel_1.41.2         munsell_0.5.1               lazyeval_0.2.2              colourpicker_1.3.0         
#> [153] Matrix_1.7-3                hms_1.1.3                   patchwork_1.3.0             sparseMatrixStats_1.19.0   
#> [157] Rhdf5lib_1.29.1             shiny_1.10.0                gridtext_0.1.5              memoise_2.0.1              
#> [161] igraph_2.1.4                bslib_0.9.0                 ggtree_3.15.0               readxl_1.4.5               
#> [165] ape_5.8-1

References

Borman, Tuomas, Felix G. M. Ernst, Sudarshan A. Shetty, and Leo Lahti. 2024. Mia: Microbiome Analysis. https://doi.org/10.18129/B9.bioc.mia.

Chang, Winston, Joe Cheng, JJ Allaire, Carson Sievert, Barret Schloerke, Yihui Xie, Jeff Allen, Jonathan McPherson, Alan Dipert, and Barbara Borges. 2024. Shiny: Web Application Framework for R. https://CRAN.R-project.org/package=shiny.

Huang, Ruizhu, Charlotte Soneson, Felix GM Ernst, Kevin C Rue-Albrecht, Guangchuang Yu, Stephanie C Hicks, and Mark D Robinson. 2021. “TreeSummarizedExperiment: a S4 class for data with hierarchical structure.” F1000Research 9. https://doi.org/10.12688/f1000research.26669.2.

R Core Team. 2024. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.

Rue-Albrecht, Kevin, Federico Marini, Charlotte Soneson, and Aaron TL Lun. 2018. “iSEE: interactive SummarizedExperiment explorer.” F1000Research 7. https://doi.org/10.12688/f1000research.14966.1.