Skip to content
/ inamo Public

Modelica re-implementation of the one-dimensional mathematical model of the atrioventricular node by Inada et al. (2009)

License

Notifications You must be signed in to change notification settings

CSchoel/inamo

Repository files navigation

InaMo

Build Status Documentation dev

This project contains a reusable, reproducible, understandable, and extensible reimplementation of the one-dimensional model of the rabbit atrioventricular node by Inada et al. [1]. InaMo is written in Modelica and follows our guidelines for writing models in MoDROGH-languages [2].

Features

  • Composed of small modules with minimal interfaces that are reused throughout the code to avoid code duplication
  • Declarative code that focuses on conveying biological meaning instead of technical implementation details
  • Reference simulation data published in separate repository inamo-ref
  • Variables and parameters with speaking names, SI units, and documentation strings
  • Explanations and literature references for all model components
  • A reference and/or rationale for every parameter value
  • Extensive unit tests based on reference plots from literature
  • Graphical representation of components and whole model
  • HTML documentation that is generated from the model code using MoST.jl (WIP)
  • A changelog that captures all significant changes to this project
  • Continuous integration pipelines that guarantees that
    • the full environment required for simulation can be obtained from .travis.yml
    • models can be simulated without errors
    • simulations produce identical results to reference
    • simulations work on a machine that is physically separated from development environment
    • units are consistent across all models
    • documentation remains up to date (WIP)

Quick start for replication

To simulate the models in this repository on your own machine, you can use the following steps:

  • Download and install the following software for your operating system
    • OpenModelica
    • Julia (for unit tests)
    • The Python distribution Anaconda (for plots)
      • alternatively install the packages listed in requirements.txt for your existing Python version
  • Clone this repository with Git or download a ZIP file of the current master branch and extract it with an archive manager of your choice.
  • Run the following commands in a command prompt from the main folder of this project
    • julia -e 'using Pkg; Pkg.add("ModelicaScriptingTools")' (installs MoST.jl)
    • julia scripts/unittests.jl (runs unittests)
    • python scripts/plot_validation.py (produces plots)

Alternatively, you can also simulate the models without Python and Julia by using the OpenModelica Connection Editor (OMEdit):

  • Download and install OpenModelica for your operating system
  • Start OMEdit and open the folder InaMo with "File" → "Load Library".
  • Open the model you want to simulate, e.g. InaMo.Examples.FullCell.AllCells (select from "Libraries Browser" on the left hand side with a double click).
  • Simulate the model with "Simulation" → "Simulate".
  • In the "Variables Browser" on the right hand side select the variable an.cell.v, n.cell.v, and nh.cell.v.

Documentation

A detailed documentation of InaMo can be found on GitHub pages. (WIP)

References

[1] S. Inada, J. C. Hancox, H. Zhang, and M. R. Boyett, “One-dimensional mathematical model of the atrioventricular node including atrio-nodal, nodal, and nodal-his cells,” Biophys. J., vol. 97, no. 8, pp. 2117–2127, 2009, doi: 10.1016/j.bpj.2009.06.056.

[2] C. Schölzel, V. Blesius, G. Ernst, and A. Dominik, “The impact of mathematical modeling languages on model quality in systems biology: A software engineering perspective,” bioRxiv, preprint 10.1101/2019.12.16.875260v3, 2020. doi: 10.1101/2019.12.16.875260.

Publication

This project is described in the following article:

C. Schölzel, V. Blesius, G. Ernst, A. Goesmann, and A. Dominik, “Countering reproducibility issues in mathematical models with software engineering techniques: A case study using a one-dimensional mathematical model of the atrioventricular node,” PLoS ONE, vol. 16, no. 7, p. e0254749, 2021, doi: 10.1371/journal.pone.0254749.

About

Modelica re-implementation of the one-dimensional mathematical model of the atrioventricular node by Inada et al. (2009)

Resources

License

Stars

Watchers

Forks

Packages

No packages published