Discovering Rhythmicity with DiscoRhythm - 2020 Shiny Contest Submission


Authors: Matthew Carlucci, Algimantas Kriščiūnas, Haohan Li, Povilas Gibas, Karolis Koncevičius, Art Petronis, Gabriel Oh
Working with Shiny more than 1 year

Abstract: DiscoRhythm (Discovering Rhythmicity) is an easy-to-use shiny application and R package for analyzing rhythms in biological assays with temporal sample collection. It allows researchers to interactively perform challenging procedures and visualizations that are useful for characterizing oscillations in transcriptomic, epigenomic, and other large datasets. At the end of the analysis, DiscoRhythm prepares a convenient downloadable report containing the results and R code needed for future reproducibility.

Full Description: The application is run as an interactive data analysis workflow. A visual summary can be seen below.

Source: Matthew Carlucci, Algimantas Kriščiūnas, Haohan Li, Povilas Gibas, Karolis Koncevičius, Art Petronis, Gabriel Oh, DiscoRhythm: an easy-to-use web application and R package for discovering rhythmicity, Bioinformatics, Volume 36, Issue 6, 15 March 2020, Pages 1952–1954,

Please see the open access publication for implementation details and methodology. A detailed introduction to DiscoRhythm can be found in the package vignette. Some noteworthy features of DiscoRhythm are highlighted below.

Quality Control

  • Inter-sample Correlations - Provides an interactive heatmap with hierarchical clustering of pairwise sample correlations (heatmaply) to visually identify outliers and sample clusters.

  • Principal Component Analysis (PCA) - Allows recomputation of PCs after removing outliers and includes panels for outlier identification, interactive PC score scatterplots, a standard scree plot, and an exhaustive set of pairwise scatterplots to view the relationships between many PCs.

  • Filtering Summary - Multiple controls to conveniently remove samples based on the two outlier identification steps, updating the displayed sample key table. The table may also be directly interacted with to remove or add specific samples.

  • Row Selection - Enables two fast row-wise ANOVA tests (matrixTests) to detect high signal rows and provides multiple methods to merge replicates including random selection, allowing the user to have control over the random seed for reproducible random selections.

  • A status summary table in the application sidebar allows users to easily see the current methodology being applied, with the number of samples and features remaining in the dataset.

  • Panels are included in relevant sections to view the current state of the data matrix.

Oscillation Detection

  • The job submission interface dynamically responds to the dataset structure to provide access to valid methods and runtime estimations. Multiple methods can be run and compared in a single submission.

  • The ‘Individual Models’ section, in addition to simple sorting, searching, and viewing of individual features, allows for filtering of features by rhythmic parameters. These filters can be applied to the summary plots to explore different subsets.

  • The session can be output as a zip archive by applying the active session’s settings to recompute the entire workflow (this ensures future reproducibility). The comprehensive output with R code allows users to easily move from using the shiny application to using the DiscoRhythm R package directly.

  • Users have the option to be notified of computation completion via email (mailR). The user may also specify for reports to be emailed upon completion.

General Features

  • Statistical procedures are permitted to display their console message/warning/error text to the shiny application with showNotification or showModal to keep the user informed on the computation status.

  • In addition to CSS loaders in plot panels (shinycssloaders), a rotating wheel in the top left of the page indicates computations are in progress.

  • Downloadable figures and CSVs of results are available in each section.

  • Interactive plots (plotly) throughout the application allow for sample identification.

  • Shiny/interactivity R packages in use: shinyjs, shinydashboard, shinyBS, shinycssloaders, heatmaply, plotly, DT, and of course, shiny.

Category: Research
Keywords: Rhythms, Oscillations, Time-series, Quality Control
Shiny app:
RStudio Cloud:


Full image: