Andre’s CellML Debugging Tips’s

Increasingly I am being given CellML models that “don’t work”, for some degree of don’t work. These can range from invalid XML documents through to valid CellML models that give subtly different results to what is expected. The goal of this document is to collect in one place a description of the tools and techniques I use myself to try and work out what is wrong with the models I receive to help CellML’ers debug some of these problems on their own.

These tips will evolve over time as new tools are developed and the CellML specification itself changes, but the most recent version will always be available from: http://andres-cellml-debugging-tips.readthedocs.org. If you spot any errors or omissions or have suggestions for improvements, please make use of the tracker over on Bitbucket.

Contents:

Introduction

The tools are listed in a fairly arbitrary order. I would generally first use xmllint to check that a model is valid XML (after giving it a once-over by eye to check for any glaring errors). The next step depends on what sort of model it is and what errors are being seen (usually in OpenCMISS or CMISS). For hierarchical CellML 1.1 models, the model compaction algorith in Model flattening is quite useful (and being actively developed, so if you spot any errors or improvements be sure to let me know). OpenCOR is a tool that is rapidly evolving and well worth checking your models in as it will often be one of the first tools readily available with new features (and its trivial to install under Windows, OS X, and Linux!).

For readers based in the ABI, I have made the non-standard commmand line tools described here available on the local server at: /hpc/dnic019/cellml-debugging/bin/. When I remember I’ll try to keep them updated, but if I forget please don’t hesitate to remind me. There are also some test models available at: /hpc/dnic019/cellml-debugging/cellml-models/.