Wodin demo and documentation

This site exists for two reasons; to show off different core features of Wodin and to act as a source of documentation by example for people configuring a Wodin deployment. Let us know if there's something you would like to see here (via Teams or email Rich or Emma).

To see what major new features have been added, see the Wodin news blog.

Examples

First, here is a list of examples that show common ways of configuring an app. There's more information on the details of configuration in the next section.

Empty basic app

Go to app

The simplest application - a continuous time (ODE) model, with which you can edit code to create a model, visualise traces over time, and run simple sensitivity analyses. This version starts up completely empty, so the user has to start writing code to get going. Because there is no code, there will be no plot shown on startup.

See configuration here.

Start with default code

Go to app

If you want to start an application but have a model pre-loaded. This will be run immediately on startup, so the users will see a graph with a set of trajectories on it (in this case it's an SIR model of course).

Note that here, we also change the endTime attribute to make the time domain match more neatly the interesting region of the system by default.

See configuration here, and the default code itself here.

Include explanation tab

Go to app

Include a tab of guidance as the first tab in your application. This can include LaTeX-style maths, as well as images and other markdown-supported formatting.

See configuration here, the help file here (and the default code).

Fit model to data

Go to app

A simple least-squared fitting app.

You may want to distribute data, but we don't currently support pre-loading the data into the app (let us know if this is something you need). Generally, if you want to distribute the data, you should put the file within files/ and reference it here.

Once the users have uploaded data, they'll need to go to the Options tab and link the data to their model variables, go to the "Fit" tab on the right hand pane, then select the parameter to vary, then run the fit.

See the configuration here, alongside the file to supply with the app. Within this index file we reference that file as <a href="files/fit/influenza_data.csv">influenza_data.csv</a> (see the source code for this page).

Stochastic

Go to app

The stochastic support is still in development, partly because the previous version in the shiny app was very simple.

Currently, the visualisation tab will always initially show individual traces, and there is no limit to the number that a user can select. This could make their browser quite slow.

Note that loading and saving a session from this app will rerun the model on restore, so individual traces will not necessarily be the same. We have plans to improve this in the future but it's not straightforward.

See configuration here.

Read-only code

Go to app

In cases where you do not want the users to edit the model, just interact with it, you can disable changing the code. Be sure that the initial code is provided and valid or this produces a fairly useless app!

See configuration here.

Multi-sensitivity

Go to app

You can enable multi-sensitivity in an app, by including "multiSensitivity": true in the app config. This will allow users to define multiple parameters for sensitivity, run multi-sensitivity and download summary results. Single sensitivity with plotting is still included in the app, with separate parameter settings to multi-sensitivity.

See configuration here.

General layout and configuration

For Wodin deployments, you will generally have a collection of apps (e.g., for different days in a course). These apps can all be of different types (e.g., one for fitting to data, another for running stochastic simulations, see below for details).

The file wodin.config.json

This will be core configuration for your deployment. It is in "JSON" format, which is designed more for computers than humans, but should hopefully be easy enough to work with. Keys are case sensitive (e.g., courseTitle is different to coursetitle) and quotes are required on all strings including keys. We will create a validator to help with creating these.

There are few others that you should leave alone:

At the top level, some other files and directories should exist

As a concrete example, you can see the configuration for this demo deployment here

App-level configuration

Each app is defined by a file <name>.config.json within the apps/ directory. As with wodin.config.json this is a JSON file with fields:

General points

Can't mix app types (no fit within stochastic models). Can't support *both* stochastic and deterministic models from a single app.

Not all odin features are supported. Arrays, interpolation, etc. Discrete time and stochastic models can't use output()

Unimplemented features in the backlog

We do plan on implementing these, but your feedback is welcome

Using the plots

Some useful tips for interacting with the plots, which are implemented using plotly.js