Modular mathematical modelling of biological systems

Mathematical models are frequently used to model biological systems, particularly within the field of cardiac electrophysiology. Such systems are typically modelled in a continuous fashion using ordinary differential equations (ODEs) and simulated using custom computer programs created in general purpose languages. Several domain specific languages (DSLs) have been created to ease the difficulty in programming biological models, including CellML. However models in such DSLs are monolithic, interdependent systems, hindering possibilities for reuse and specialisation. In this paper we introduce the Ode language; a typed DSL for describing ODE-based biological models in a structured manner. The type system is used to validate models and includes automated checking and conversion of units of measure. We introduce a module system influenced by parameterised modules from OCaml that allows specialised instantiation at compile-time. Module parameterisation provides great flexibility, enabling the creation of reusable, abstracted model components. These components may be composed and specialised to create larger models. The type system is used to generate module interfaces that guide successful module composition. Parameterised modules may be used, for instance, to abstract a models stimulus protocol or modify its parameters. Several examples are given and the implementation details are discussed.

[1]  Sarah M. Keating,et al.  Evolving a lingua franca and associated software infrastructure for computational systems biology: the Systems Biology Markup Language (SBML) project. , 2004, Systems biology.

[2]  Socrates Dokos,et al.  Parameter estimation in cardiac ionic models. , 2004, Progress in biophysics and molecular biology.

[3]  Andrew Kennedy,et al.  Dimension Types , 1994, ESOP.

[4]  D Noble,et al.  A meta‐analysis of cardiac electrophysiology computational models , 2009, Experimental physiology.

[5]  A. Hodgkin,et al.  A quantitative description of membrane current and its application to conduction and excitation in nerve , 1952, The Journal of physiology.

[6]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[7]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[8]  D. Noble A modification of the Hodgkin—Huxley equations applicable to Purkinje fibre action and pacemaker potentials , 1962, The Journal of physiology.

[9]  T. Henzinger,et al.  Executable cell biology , 2007, Nature Biotechnology.

[10]  Robin Milner,et al.  Definition of standard ML , 1990 .

[11]  Catherine M Lloyd,et al.  CellML: its future, present and past. , 2004, Progress in biophysics and molecular biology.

[12]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[13]  Denis Noble,et al.  Cellular Open Resource (COR): current status and future directions , 2009, Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences.

[14]  Michael Metcalf,et al.  The F programming language , 1997, SIGP.

[15]  Jonathan Cooper,et al.  A model-driven approach to automatic conversion of physical units , 2008 .

[16]  Andrew Kennedy,et al.  Relational parametricity and units of measure , 1997, POPL '97.

[17]  Gary R. Mirams,et al.  High-throughput functional curation of cellular electrophysiology models. , 2011, Progress in biophysics and molecular biology.

[18]  Frances K. Skinner Conductance-based models , 2006, Scholarpedia.

[19]  Lawrence F. Shampine,et al.  Initial value problems , 2007, Scholarpedia.

[20]  Sarala M. Wimalaratne,et al.  Facilitating modularity and reuse: guidelines for structuring CellML 1.1 models by isolating common biophysical concepts , 2009, Experimental physiology.