Skip to content

CSchoel/inamo

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
img
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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