MCMC Software Stack

Reasoning

Markov chain Monte Carlo is pushed to the limits with biological models of intracellular molecular reaction networks, which typically have (at least) two unknown parameters per reaction, and dozens of reactions. Model sizes of ~100 parameters are investigated and MCMC becomes almost impractically slow. Therefore, we need an efficient implementation of MCMC. This C implementation of SMMALA aims to be that, it is however not easy to use. The Human interface is an SBtab document, a collection of tables with rules and definitions, these tables can describe the model and list the measurement data in one document.

The Figure below shows how specific steps are realized from having a table of data points to data that is machine readable in a robust way. But also: how the model is processed and converted into a shared library that is opened via dlopen() for MCMC simulations.

Figure 1: Diagram of different pieces of software we use within the MCMC sampling procedure for biological models. Green boxes indicate the file format. Some of these software packages exist on their own: VFGEN, SBtab to sbml converter; some we developed ourselves: sb_import, the mcmc sampler (keywords: C, CVODES, MPI, GSL). Screenshot from the presentation linked below.

The advantage of having many intermediate steps is the ease of user intervention. Once the model is converted into .vf form, the user can easily perform model reduction on that, which is not advisable e.g. for the sbml form of the model. This is because some model reduction procedures make assumptions about the model, which can become invalid once the SBtab/sbml model is extended to include more compounds or reactions. Constraints might be added or removed. So, model reduction should happen close to the simulation code and VFGEN files are still fairly easy to read.

If something cannot be done in VFGEN, perhaps code can be added directly to its output: source files for many languages, including C for CVODES and the GNU Scientific Library [GSL]. If post-processing of the sample require additional model simulations, perhaps to make predictions, VFGEN can also export the model to matlab, python[scipy] and other languages.

Workflow.pdf