| Literature DB >> 23083065 |
Florencio Rusty Punzalan1, Yoshiharu Yamashita, Naoki Soejima, Masanari Kawabata, Takao Shimayoshi, Hiroaki Kuwabara, Yoshitoshi Kunieda, Akira Amano.
Abstract
: Models written in description languages such as CellML are becoming a popular solution to the handling of complex cellular physiological models in biological function simulations. However, in order to fully simulate a model, boundary conditions and ordinary differential equation (ODE) solving schemes have to be combined with it. Though boundary conditions can be described in CellML, it is difficult to explicitly specify ODE solving schemes using existing tools. In this study, we define an ODE solving scheme description language-based on XML and propose a code generation system for biological function simulations. In the proposed system, biological simulation programs using various ODE solving schemes can be easily generated. We designed a two-stage approach where the system generates the equation set associating the physiological model variable values at a certain time t with values at t + Δt in the first stage. The second stage generates the simulation code for the model. This approach enables the flexible construction of code generation modules that can support complex sets of formulas. We evaluate the relationship between models and their calculation accuracies by simulating complex biological models using various ODE solving schemes. Using the FHN model simulation, results showed good qualitative and quantitative correspondence with the theoretical predictions. Results for the Luo-Rudy 1991 model showed that only first order precision was achieved. In addition, running the generated code in parallel on a GPU made it possible to speed up the calculation time by a factor of 50. The CellML Compiler source code is available for download at http://sourceforge.net/projects/cellmlcompiler.Entities:
Year: 2012 PMID: 23083065 PMCID: PMC3778851 DOI: 10.1186/1751-0473-7-11
Source DB: PubMed Journal: Source Code Biol Med ISSN: 1751-0473
Figure 1Code generation system inputs and outputs. Input and output of the Biological Simulation Code Generation System. The inputs are composed of a CellML, TecML, and RelML file. The system can generate simulation codes in C/C++, Java, and Cuda C programming language.
Figure 2Information in the CellML file of the FHN model (represented in Alan Garny’s COR notation).
Variable and function types in TecML
| Differential variable (variable is a function of time) | |
| Temporal variable (can be substituted with math equations) | |
| Derivative of diffvar | |
| Constants | |
| Time variable | |
| Variable denoting the change of time per step | |
| Differential equation | |
| Non-differential equation |
Figure 3Information in the TecML file of the Modified Euler method where ξ is the diffvar, κ is the derivativevar, ζ is the constvar, and variable type ι is the arithvar.
Figure 4TecML file example.
Figure 5Information contained in the RelML file for the FHN model and Modified Euler method.
Figure 6RelML file example for FHN model and Modified Euler method.
Input and output code types in the system
| Cell Physiology | FitzHugh-Nagumo model [ |
| Model | LuoRudy 1991 model [ |
| ODE Solution | Euler Method, Modified Euler Method |
| Scheme | 1 |
| Generated codes | C code, Java, Java with BigDecimal |
| Cuda code (GPU) |
Information written in a TecML file
| Input differential variable vector | |
| Output differential variable vector | |
| Time differential variable vector | |
| Differential variable vector of | |
| Current time value | |
| Time step | |
| Constants vector | |
| Calculation of variable | |
| Differential equation vector | |
| Temporal function vector | |
| Derivative variable vector | |
| Temporal variable derived from | |
| Derivative vector of | |
| Relation between |
Figure 7Algorithm for generating the set of ODE numerical solution equations.
The number of execution steps for the generated codes for different cell models and ODE numerical methods
| FHN | 11 | 16 | 26 |
| LuoRudy1991 | 70 | 117 | 211 |
| LuoRudy1994 | 123 | 211 | 387 |
| Kyoto Model | 335 | 560 | 1200 |
Figure 8Relationship between the time step and calculation error for each ODE numerical method used in generating the FHN model. The results and root-mean-square errors (RMSE) are computed using Java BigDecimal. The result of the Runge-Kutta method with 10-6 ms time step is used as reference for the RMSE computations.
Figure 9Relationship between the time step and calculation error for each ODE numerical method used in generating the LuoRudy 1991 model.
Figure 10CPU and GPU execution time ratio of the excitation propagation simulation.