Learn R Programming

OmicNavigator: Open-Source Software for Omic Data Analysis and Visualization

Exploring the results of omic analyses via interactive web applications facilitates cross-disciplinary collaboration and biological discovery. OmicNavigator is open-source software for the archival and interactive exploration of results from high-throughput biology experiments. The software enables omic data analysts (typically bioinformaticians) to create customizable web applications from the results of their work using only the statistical programming language, R. OmicNavigator is an R package that contains web application code, R functions for programmatic access and data deposition, and a new container for the storage of measurements (e.g. RNAseq read counts), statistical analyses (differential expression and/or enrichment analysis), metadata, and custom plotting functions. Studies created with OmicNavigator are themselves R packages, accessible via a JavaScript dashboard that can be interrogated on the user’s local machine or deployed online to be explored by collaborators. The dashboard combines user-defined study results and feature plots with performant tables and interactive graphics common to bioinformatic analyses such as scatter, network, volcano, and barcode plots. The tool also includes dynamic, multi-set filtering across hypothesis tests based on user-defined thresholds such as statistical significance or effect size.

This repository contains the R package. To see an example of how to create an OmicNavigator study, check out the repository OmicNavigatorExample. If you're a developer interested in the web application code, check out the repository OmicNavigatorWebApp.

Features

  • Simple, yet flexible study-model-test data model for differential and/or enrichment analyses
  • Well documented data-in functions and a novel data container
  • User-defined results and feature plots
  • Richly featured tables
  • Interactive scatter/volcano plots
  • Interactive barcode plots for enrichment results
  • Dynamic network views of enriched terms
  • Multi-set filtering across hypothesis tests

Quick start

To get a quick sense of how the app works, the quick start instructions below install the package, create a very minimal study, and then starts the app. It should automatically open a new tab in your browser. When you're done, press ctrl+c or Esc to stop running the app.

# Install and load the package
install.packages("OmicNavigator", dependencies = TRUE)
library(OmicNavigator)

# Create a very minimal study with a single results table
quickstart <- createStudy("quickstart")
data("RNAseq123")
head(basal.vs.lp)
resultsTable <- basal.vs.lp[, -2:-3]
quickstart <- addResults(quickstart, list(model = list(test = resultsTable)))
installStudy(quickstart)

# (optional) Install the example study RNAseq123 which demos many of the app's
# available features
install.packages(c("gplots", "heatmaply", "iheatmapr", "plotly", "viridis"))
tarball <- "https://github.com/abbvie-external/OmicNavigatorExample/releases/latest/download/ONstudyRNAseq123.tar.gz"
install.packages(tarball, repos = NULL)

# Install and start the web app
installApp()
startApp()

To learn how to add your own data to the app, please read the User's Guide attached to the [latest GitHub Release][release-latest]. The more data you add, the more features are automatically enabled in the app (e.g. the Enrichment Analysis tab is available once you add the results of an enrichment analysis).

Installation

OmicNavigator is a web app and R code bundled together as an R package. You can install OmicNavigator multiple ways.

Full installation in 2 steps (recommended)

This is the quickest and easiest method for you to be able to install OmicNavigator and run the web app on your local machine.

  1. Install the OmicNavigator R package directly from CRAN:

    install.packages("OmicNavigator", dependencies = TRUE)
  2. Install the web app:

    library(OmicNavigator)
    installApp()

Full installation from release tarball

Alternatively, you can install the OmicNavigator release tarball, which already includes the web app bundled with the R package.

  1. Download the tarball from the [latest GitHub Release][release-latest]. It

will look like OmicNavigator_x.x.x.tar.gz, where x.x.x corresponds to the version.

[release-latest]: https://github.com/abbvie-external/OmicNavigator/releases/latest
  1. Install the dependencies:

    remotes::install_deps("OmicNavigator_x.x.x.tar.gz", dependencies = TRUE)
  2. Install OmicNavigator from the release tarball:

    1. In the R console:

      install.packages("OmicNavigator_x.x.x.tar.gz", repos = NULL)
    2. In the terminal:

      R CMD INSTALL --no-multiarch --with-keep.source OmicNavigator_x.x.x.tar.gz

Minimal installation

If you are only using the R package functions, and don't need to run the app, you can perform a minimal installation. This is useful if you are using OmicNavigator in a data engineering pipeline or as part of a continuous integration build.

  1. Install the OmicNavigator R package directly from CRAN, without the extra

dependencies required to run the app:

```R
install.packages("OmicNavigator")
```

Install development version from GitHub

If you need access to the latest changes to OmicNavigator, you can install the development version of the package directly from GitHub.

  1. Install the OmicNavigator R package directly from GitHub:

    remotes::install_github("abbvie-external/OmicNavigator", dependencies = TRUE)
  2. Install the web app:

    library(OmicNavigator)
    installApp()

Installation troubleshooting

Some of the R package dependencies require external software libraries to already be installed on your machine (e.g. the R package curl requires the system library libcurl). Unfortunately R is unable to install these for you automatically. If you are using Linux/macOS, you will need to install these system libraries yourself first.

Note that recent versions of macOS do not come with the X Window System. Please install XQuartz to prevent plotting issues. See here for more information.

If you are using Debian/Ubuntu, you can install all of the required system libraries using the commands below:

sudo apt update
sudo apt install \
  libcurl4-openssl-dev \
  libssl-dev \
  libprotobuf-dev \
  protobuf-compiler \
  libxml2-dev

Here is a table of the known system dependencies that you will need to install.

R packageSystem libraryOperating systemInstallation
curllibcurlDebian/Ubuntulibcurl4-openssl-dev
curllibcurlFedora/CentOS/RHELlibcurl-devel
curllibcurlSolarislibcurl_dev
opensslopensslDebian/Ubuntulibssl-dev
opensslopensslFedora/CentOS/RHELopenssl-devel
opensslopensslSolarislibssl_dev
opensslopensslmacOS (Homebrew)openssl@1.1
protoliteprotobufDebian/Ubuntulibprotobuf-dev
protoliteprotobufFedora/CentOS/RHELprotobuf-devel
protoliteprotobufSolarisprotobuf_dev
protoliteprotobufmacOS (Homebrew)protobuf
protoliteprotobuf-compilerDebian/Ubuntuprotobuf-compiler
protoliteprotobuf-compilerFedora/CentOS/RHELprotobuf-compiler
xml2libxml-2.0Debian/Ubuntulibxml2-dev
xml2libxml-2.0Fedora/CentOS/RHELlibxml2-devel
xml2libxml-2.0Solarislibxml2_dev

Acknowledgements

OmicNavigator is deployed as an OpenCPU app. The OpenCPU system enables embedded scientific computing with R.

OmicNavigator development is influenced by many existing bioinformatics and data visualization tools, including the set analysis visualization tool UpSet and the enrichment analysis network visualization tool EnrichmentMap

Contributing and Code of Conduct

Please note that the OmicNavigator project is released with guidelines on how to best contribute and a code of conduct. You can find these documents in CONTRIBUTING.md and .github/CODE_OF_CONDUCT.md.

Copy Link

Version

Install

install.packages('OmicNavigator')

Monthly Downloads

284

Version

1.13.13

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

John Blischak

Last Published

August 25th, 2023

Functions in OmicNavigator (1.13.13)

addBarcodes

Add barcode plot metadata
addMapping

Add mapping object
addMetaFeatures

Add meta-feature metadata
addEnrichments

Add enrichment results
addAssays

Add assays
Mm.c2

Mm.c2 from Bioconductor workflow RNAseq123
addAnnotations

Add annotations
addEnrichmentsLinkouts

Add linkouts to external resources in the enrichments table
addFeatures

Add feature metadata
OmicNavigator-package

OmicNavigator
addReports

Add reports
addOverlaps

Add overlaps between annotation gene sets
addResults

Add inference results
addSamples

Add sample metadata
addMetaFeaturesLinkouts

Add linkouts to external resources in the metaFeatures table
addResultsLinkouts

Add linkouts to external resources in the results table
basal.vs.lp

basal.vs.lp from Bioconductor workflow RNAseq123
addTests

Add tests
addModels

Add models
cam.BasalvsML

cam.BasalvsML from Bioconductor workflow RNAseq123
addPlots

Add custom plotting functions
getBarcodeData

Get data for barcode and violin plots
getBarcodes

Get barcodes from a study
createStudy

Create a study
getAssays

Get assays from a study
getAnnotations

Get annotations from a study
exportStudy

Export a study
getEnrichments

Get enrichments from a study
basal.vs.ml

basal.vs.ml from Bioconductor workflow RNAseq123
getLinkFeatures

Get the shared features in a network link
getEnrichmentsLinkouts

Get enrichments table linkouts from a study
getFavicons

Get favicon URLs for table linkouts
combineStudies

Combine two or more studies
getEnrichmentsNetwork

Get enrichments network from a study
getFeatures

Get features from a study
getInstalledStudies

Get installed OmicNavigator studies
getEnrichmentsIntersection

getEnrichmentsIntersection
getEnrichmentsUpset

getEnrichmentsUpset
getMapping

Get mapping object from a study
getNodeFeatures

Get the features in a network node
cam.BasalvsLP

cam.BasalvsLP from Bioconductor workflow RNAseq123
getEnrichmentsTable

Get enrichments table from a study
getMetaFeatures

Get metaFeatures from a study
getModels

Get models from a study
getPlots

Get plots from a study
getMetaFeaturesLinkouts

Get metaFeatures table linkouts from a study
getMetaFeaturesTable

Get metaFeatures for a given feature
getTests

Get tests from a study
getResultsLinkouts

Get results table linkouts from a study
getResultsTable

Get results table from a study
listStudies

List available studies and their metadata
getUpsetCols

getUpsetCols
summary.onStudy

Summarize elements of OmicNavigator study
getResults

Get results from a study
lane

lane from Bioconductor workflow RNAseq123
lcpm

lcpm from Bioconductor workflow RNAseq123
removeStudy

Remove an installed study R package
validateStudy

Validate a study
plotStudy

Plot a feature using a custom plotting function
getResultsIntersection

getResultsIntersection
startApp

Start app on local machine
getPlottingData

Get plotting data
samplenames

samplenames from Bioconductor workflow RNAseq123
importStudy

Import a study package
getOverlaps

Get overlaps from a study
getReportLink

Get link to report
getReports

Get reports from a study
group

group from Bioconductor workflow RNAseq123
shared-get

Shared parameters for get functions
shared-add

Shared parameters for add functions
shared-upset

Shared parameters for upset functions
shared-data

Shared sections for data objects
getPackageVersion

Get version of OmicNavigator package
getResultsUpset

getResultsUpset
installStudy

Install a study as an R package
getSamples

Get samples from a study
installApp

Install the OmicNavigator web app