The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Seventeen GPU- and canvas-accelerated visualization widgets for
bioinformatics, built on a shared JavaScript core and exposed to R
through htmlwidgets. Every
widget renders in the RStudio Viewer, R Markdown, Quarto and Shiny, and
each ships a matching *Output() / render*()
pair for Shiny apps.
The same core drives the Python and JavaScript packages, so a figure looks and behaves identically in all three languages.
install.packages("plotomics", repos = "https://samuelbharti.r-universe.dev")Or from GitHub:
# install.packages("pak")
pak::pak("samuelbharti/plotomics")library(plotomics)
# Differential expression
volcano(data.frame(
x = res$log2FoldChange,
y = -log10(res$padj),
gene = rownames(res)
))
# A single-cell embedding: a factor pins the legend order and keeps
# unused levels, the way drop = FALSE does in ggplot2
embedding(data.frame(
x = umap[, 1],
y = umap[, 2],
color = factor(cell_type)
))
# Kaplan-Meier, straight from a survfit object
km(survival::survfit(survival::Surv(time, status) ~ sex, data = lung))| Area | Functions |
|---|---|
| Expression and abundance | volcano(), bioheatmap(),
clustermap(), dotplot(),
violin() |
| Single-cell and spatial | embedding(), spatial() |
| Cohort and variant | oncoplot(), lollipop(), km(),
bioprofile() |
| Sets, hierarchies, networks | upset(), treemap(),
network() |
| Genome and chromatin | hic(), igv(), gosling() |
Helpers: oncoplot_memo_sort() for the conventional
oncoplot column order, upset_intersections() for exclusive
set intersections, and violin_density() for densities
computed in R.
Two names differ from the obvious choice, so that attaching the
package masks nothing in base or the recommended packages:
bioheatmap() rather than heatmap(), and
bioprofile() rather than profile(). Both have
*_plotomics() aliases (heatmap_plotomics(),
profile_plotomics()).
Every widget has a Shiny pair. The network and embedding widgets also report selections back to the server:
ui <- fluidPage(networkOutput("net"))
server <- function(input, output) {
output$net <- renderNetwork(network(nodes, edges))
# clicking a node sets input$net_selected
observeEvent(input$net_selected, print(input$net_selected))
}Numeric columns reach the browser as a binary buffer rather than JSON, which is what keeps several hundred thousand points interactive rather than merely drawable.
MIT. See LICENSE.
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.