Skip to content
Web frontend for dmenne/breathtestcore and dmenne/breathteststan
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
R Made port for run_shiny a parameter Aug 10, 2018
docs With shinytest Aug 9, 2018
inst/shiny Added shiny package version. Apr 27, 2019
man Made port for run_shiny a parameter Aug 10, 2018
templates Added documentation/vignettes skeleton Oct 7, 2017
vignettes added FAQ Jan 16, 2018
.Rbuildignore Removed md from .Rbuildignor Oct 24, 2018
.dockerignore Added Aug 14, 2018
.gitignore Corrected buildignore Aug 11, 2018
.travis.yml C++14 in Travis Oct 23, 2018
DESCRIPTION Added shiny package version. Apr 27, 2019
Dockerfile C++14 in Travis Oct 23, 2018
NAMESPACE Namespace and description prepared for CRAN Sep 13, 2017 Catch failed fits Oct 22, 2018
_pkgdown.yml Added documentation/vignettes skeleton Oct 7, 2017
breathtestshiny.Rproj Restricted watchtower to breathtestshiny Aug 14, 2018
shiny-server.conf Made executable Aug 14, 2018 Made executable Aug 14, 2018

breathtestshiny: Web application to fit 13C time series for gastric emptying

Dieter Menne
Menne Biomed Consulting Tübingen, Germany

The software is being developed in cooperation with the ETH, the Department of Gastroenterology of the University Hospital of Zürich, and Claraspital Basel. Thanks to Andreas Steingötter, Benjamin Misselwitz, Mark Fox and Werner Schwizer.

Shiny web app to fit 13C data with R package breathtestcore. You can try the web app online. No data are stored in this online version, but you can download all results and group-pairwise comparisons for studies.

Where to find the code


When used online, no data are stored after you close the browser, or when you stop the container.

Docker image

Installing Docker

  • Docker works best on Windows 10 64-bit where it can be run as a native application; on earlier Windows 64-bit versions, Docker requires the Oracle Virtual Box which is automatically installed.
  • For Windows 10, you can get the installer from the Docker store. For earlier versions of Windows, use the Docker toolbox. For installation details, see here.
  • Linux users know how to install Docker anyway.
  • Docker should have at least 2 GB of memory; on Windows, use Settings from the Docker tray icon.

Installing breathtestshiny

  • From the command line, enter the following to start the container
docker run --name breathtestshiny  -p 3838:3838 -d dmenne/breathtestshiny
  • The first startup needs some time because 1 GB has to be downloaded. Subsequent startups require only a few seconds.
  • Connect to the app with your browser: localhost:3838. <- This link does not work when your read this from github or the Docker hub, only on your local installation.

Using docker-compose

Manually copy the file docker-compose.yml to your work directory, and start the container with

# docker-compose up -d

By default, in this installation port 3839 is used, to avoid clashes with a Shiny server running on your server. Use localhost:3839 in your browser, or edit the file docker-compose.yml when you want to use a different port.

The docker-compose based installation works under Linux only and uses watchtower to automatically update the Docker image when a new version of breathtestshiny has is available.


A test for use with package shinytest is included.

To generate a new test set, use the following sequence:

  • Delete default_demo_test-expected and default_demo_test-current subdirectories of inst/shiny/tests
  • Set the working directory to inst/shiny
  • Run shinytest::testApp()
  • Check if the files in inst/shiny/tests/default_demo_test-expected are what you expect
  • Run shinytest::testApp() again.

During Check and on Travis CI, only the json files are compared because images can look different on different platforms.

For testing on Travis CI, it is important to generate the expected output on a Linux machine, since plots under Windows result in different left/right displayed ranges. On Travis CI, testing currently is skipped.

You can’t perform that action at this time.