Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Interactively explore quantitative concepts of high-content screening.

Access a running instance of the web-app here.

What does the app do?

The app illustrates quantitative concepts of high-content screening, such as z-score, z-factor, z-prime, normalised percentage inhibition, standardized mean difference.

The app generates synthetic data for a desired plate format (e.g. 96, 384, 1536-well). The data includes measurement samples, and negative and positive controls. The user can change the number of control wells, their sample mean and standard deviation. Additionally, "hits" with the mean and standard deviation corresponding to the positive control can be added to the dataset.

Synthetic data can be plotted as distributions, box-plots or heatmaps with raw or normalized data. Normalisations include the z-score and Normalised Percentage Inhibition.

The app calculates the following plate quality indices:

  • SSMD, strictly standardized mean difference,
  • Z-factor and Z-prime.


Further reading

  1. Increasing the Content of High-Content Screening: An Overview (2014); DOI: 10.1177/1087057114528537.
  2. Data Analysis Approaches in High Throughput Screening (2013); DOI: 10.5772/52508.
  3. Statistical practice in high-throughput screening data analysis (2006); DOI: 10.1038/nbt1186.
  4. A Simple Statistical Parameter for Use in Evaluation and Validation of High Throughput Screening Assays (1999); DOI: 10.1177/108705719900400206.

Getting started

The app can be run either locally or on a server. The installation process is detailed below.

Run locally


The app works on all major OS (Windows, macOS, standard Linux distributions) and requires a recent R installation. The R installation guide can be found on the official website.

The app depends on several packages which should be automatically installed when the app is launched for the first time. Alternatively, the complete list of dependencies can be manually installed from the R console by typing:

    "shiny", "shinydashboard", "shinyBS",
    "ggplot2", "plotly",
    "ggthemes", "RColorBrewer")) 

For new R users, once you have installed R, we recommend to use R from Rstudio. It provides an excellent programming interface and makes it slightly easier to run shiny apps with a single click! Instructions for installation can be found on the Rstudio website.

Install and run

First, download the latest version of the app directly from the GitHub repository(green button Clone or download, download as zip). Unzip the folder and place it in your favorite location.

If you have installed RStudio, launch it and go to File -> Open Project. Navigate to the location where you placed the app and open the file screenQC.Rproj. This will load the app in the current Rstudio session. To start the app, open the server.R or the ui.R file in the Rstudio session, then click the Run App button with a green triangle in the upper right corner of the window with code open.

If you have R but did not (or do not want to) install Rstudio, you can also start the app directly from your OS's command line with:

R -e "shiny::runApp('path-to-application-folder')"

Then, open your web browser and point to the address given by the output of that command.

Run from GitHub

If you already have an R installation with all the packages you can also run the following lines in your R console to start immediatly with a temporary copy of the app:


However, for performance reasons you might prefer to switch to an offline installation as outlined above!

Run on a server

To deploy the app on RStudio/Shiny server, follow the instructions here.


Interactive visualisation of quantitative concepts in high-content screening








No releases published


No packages published