SEvisual provides an interactive visualization shiny-based App for exploring data stored in SummarizedExperiment
object, currently supporting heatmap and MDS/PCA plot.
-
Interactive visualization
- Use ComplexHeatmap and plotly to create heatmap and MDS/PCA plot respectively
-
Modern UI
- The UI is built with bslib, which is a Bootstrap 5 theme for shiny. It is a modern, clean and highly customizable theme for shiny applications
-
Handling of missing values (NA)
- deletion or K-nearest neighbors (KNN) imputation using impute
-
Mandatory clustering
- When encountering the error "NA/NaN/Inf in foreign function call...", clustering is mandatory.
-
Support
SummarizedExperiment
object as input- SummarizedExperiment is used to store rectangular matrices of experimental results, which is a matrix-like container where rows represent features of interest (e.g. genes, transcripts, exons, etc.) and columns represent samples
-
Support data.frame as input
- If the input data is a data.frame, it is automatically converted to a SummarizedExperiment object, assuming that all values are numeric
-
Support qs file as input
- This .qs file contains SummarizedExperiment object, which can be loaded directly into the app
-
Online
- The
SEvisual
shiny app is also hosted on the website: SEvisual. (N.B. This may be slow and interrupted due to overlapping memory usage.)
- The
- Install Dependency Packages
if (!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager")
packages <- c('tidyverse', "cli", "shiny", "bslib", "plotly", "qs", "SummarizedExperiment",
"htmltools", "colourpicker", "RColorBrewer", "shinyWidgets", "waiter", "shinyalert",
"DT", "shinycustomloader", "GetoptLong", "kableExtra", "circlize", "impute",
"ComplexHeatmap", "InteractiveComplexHeatmap", "pheatmap", "bsicons")
for(i in 1:length(packages)){
if (!requireNamespace(packages[i], quietly=TRUE)){
BiocManager::install(packages[i], update=FALSE)
}
}
- Install SEvisual Package
if (!requireNamespace("SEvisual", quietly=TRUE)) devtools::install_github("SEvisual/SEvisual")
#SummarizedExperiment
if (!require("BiocManager", quietly=TRUE)) install.packages("BiocManager")
BiocManager::install("airway")
library(airway)
data(airway) #SummarizedExperiment with annotation
SEvisual(airway)
#data.frame
SEvisual(mtcars) #automatically convert to SummarizedExperiment but without annotation
SEvisual(iris) #non-numeric values will be forcibly converted to numeric(eg. Species)
#data.frame convert to SummarizedExperiment with annotation
colData <- data.frame(type=sample(c("A", "B"), ncol(mtcars), replace=TRUE)) #columns annotations
rowData <- data.frame(car=rownames(mtcars)) #rows annotations
mtcars.SE <- SummarizedExperiment(assay=mtcars, colData=colData, rowData=rowData)
SEvisual(mtcars.SE)
Since SEvisual
covers a wide packages of uses, it has numerous getting started articles, each focusing on a particular interest:
Package | Description |
---|---|
tidyverse | 🍭 An opinionated collection of R packages designed for data science |
shiny | 🍎 Makes it easy to build interactive web applications (apps) straight from R |
bslib | 🍋 A modern UI toolkit for Shiny and R Markdown based on Bootstrap |
plotly | 🍒 Makes interactive, publication-quality graphs |
qs | 🍇 Quickly writing and reading any R object to and from disk |
SummarizedExperiment | 🍉 Store rectangular matrices of experimental results |
bsicons | 🍓 Use Bootstrap icons (as inline SVG) |
htmltools | 🍑 Tools for HTML generation and output. |
colourpicker | 🍰 A colour picker tool for Shiny and for selecting colours in plots |
RColorBrewer | 🍌 color schemes for maps designed by Cynthia Brewer |
shinyWidgets | 🍬 custom widgets and other components to enhance your shiny applications |
waiter | 🍍 Full screen and partial loading screens for Shiny |
shinyalert | 🌽 Easily create pretty popup messages (modals) in Shiny |
shinycustomloader | 🍅 A custom css/html or gif/image file for the loading screen in R shiny |
DT | 🍩 An R interface to the DataTables library |
ComplexHeatmap | 🍧 Make complex heatmaps |
There are two main places to get help with SEvisual
:
-
The github is a friendly place to ask any questions and report issues/bugs
-
send email to [email protected]