a C program for simplified manifold Metropolis adjusted Langevin algorithm (smmala) sampling of ordinary differntial equation (ode) model parameters
This software can be used together with other tools such as the R package SBtabVFGEN and VFGEN itself. This Flowchart shows and example workflow.
But, the input files to ode_smmala
can be made using any other tool set, as long as the contents adhere to the same structure.
The software is not developed by a team and new features are added very slowly. Perhaps the biggest drawback is that we do not provide any automated build system yet. Compiling is done by inspecting and changing the Makefile from tamplates, manually. Fot these reasons, it may be better to use an alternative like GNU MCsim or the matlab packages PESTO & AMICI, or perhaps even an alternatuve methodology like the profile likelihood method.
The Software uses a shared library as model. Any way to create the shared library will work. We use the vfgen tool for these purposes. The experimental data is stored in hdf5 files with agrred upon annotation. The naming rules are listed in the documentation. This file can be generated using any software that supports hdf5 output (e.g. Matlab, R, python). But, we also provide a program for the conversion of data from SBtab (tsv) files into an hdf5 file.
In principle, if a software that can transform an sbml model into cvodes compatible sources exists, then it can, of course, also be used here.
For the handling of models, we use the SBtab file format (but not any of the tools provided by the authors). We use a custom R package SBtabVFGEN to translate models from an OpenDocument Spreadsheet format or a set of TSVs (tab separated value files, text) into a vfgen vf file. The DemoModel repository is an example of how we store and process models using this SBtab→R→vfgen→C workflow. Vfgen calculates the rhs vector field's jacobian (analytically).
The sampler repeatedly solves the initial value problem specified in such a way as to replicate the experimental data and normalises the result in the same way as in the experiment's description. This way arbitrary scale constants are cancelled. The simulations are done via the sundials cvodes solver.
External library dependencies
For ODE solutions:
Sundials CVODES 2.7.0
For MCMC:
GSL
CBLAS
OpenMPI
(OpenMP)
For VFGEN:
GiNaC
mini XML
Here are some more detailed instructions for installation on Gentoo, Arch, OpenSUSE, and Ubuntu.
In principle, it is possible to compile the sources on a windows system. We provide no binary releas. In addition, since this software is aimed at HPC use, we strongly discourage this.
As mentioned earlier, we don't use an automated build system.
Inspect the Makefile (Makefile.ubuntu). You can use it as a starting point. The bundled Makefile builds the vfgen executable as well as the sampler.
Afterwards, use the Makefile by typing
make
mpirun -N 10 ./ode_smmala -l ./model.so -d ./experimental-data.h5 -o sample.h5 -s $((3*10**4))
The data file includes the measurement time specifications, the data, the standard deviation of observations and the hyperparameters μ and Σ of the Gaussian prior. This is discussed in the package documentation.
you can load the resulting sample using any hdf5 reading
script language or simly h5dump. GNU Octave can read
the sample files using the load function: load
mcmc_rank_00_of_8_sample.h5
.