cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved]
Hundreds of different mathematical models have been proposed for describing electrophysiology of various cell types. These models are quite complex (nonlinear systems of typically tens of ODEs and sometimes hundreds of parameters) and software packages such as the Cancer, Heart and Soft Tissue Envir...
Main Authors: | , , , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
Wellcome
2022-06-01
|
Series: | Wellcome Open Research |
Subjects: | |
Online Access: | https://wellcomeopenresearch.org/articles/6-261/v2 |
_version_ | 1811344786694602752 |
---|---|
author | Gary R Mirams Michael Clerx Maurice Hendrix Sarah M Keating Asif U Tamuri Jonathan Cooper Ross H Johnstone |
author_facet | Gary R Mirams Michael Clerx Maurice Hendrix Sarah M Keating Asif U Tamuri Jonathan Cooper Ross H Johnstone |
author_sort | Gary R Mirams |
collection | DOAJ |
description | Hundreds of different mathematical models have been proposed for describing electrophysiology of various cell types. These models are quite complex (nonlinear systems of typically tens of ODEs and sometimes hundreds of parameters) and software packages such as the Cancer, Heart and Soft Tissue Environment (Chaste) C++ library have been designed to run simulations with these models in isolation or coupled to form a tissue simulation. The complexity of many of these models makes sharing and translating them to new simulation environments difficult. CellML is an XML format that offers a widely-adopted solution to this problem. This paper specifically describes the capabilities of two new Python tools: the cellmlmanip library for reading and manipulating CellML models; and chaste_codegen, a CellML to C++ converter. These tools provide a Python 3 replacement for a previous Python 2 tool (called PyCML) and they also provide additional new features that this paper describes. Most notably, they can generate analytic Jacobians without the use of proprietary software, and also find singularities occurring in equations and automatically generate and apply linear approximations to prevent numerical problems at these points. |
first_indexed | 2024-04-13T19:53:19Z |
format | Article |
id | doaj.art-f89145659bf640afac066e32b0abcd8b |
institution | Directory Open Access Journal |
issn | 2398-502X |
language | English |
last_indexed | 2024-04-13T19:53:19Z |
publishDate | 2022-06-01 |
publisher | Wellcome |
record_format | Article |
series | Wellcome Open Research |
spelling | doaj.art-f89145659bf640afac066e32b0abcd8b2022-12-22T02:32:27ZengWellcomeWellcome Open Research2398-502X2022-06-01619920cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved]Gary R Mirams0https://orcid.org/0000-0002-4569-4312Michael Clerx1https://orcid.org/0000-0003-4062-3061Maurice Hendrix2https://orcid.org/0000-0002-6621-7996Sarah M Keating3Asif U Tamuri4https://orcid.org/0000-0001-6633-3789Jonathan Cooper5https://orcid.org/0000-0001-6009-3542Ross H Johnstone6Centre for Mathematical Medicine & Biology, University of Nottingham, Nottingham, UKCentre for Mathematical Medicine & Biology, University of Nottingham, Nottingham, UKCentre for Mathematical Medicine & Biology, University of Nottingham, Nottingham, UKCentre for Advanced Research Computing, University College London, London, WC1E 6BT, UKCentre for Advanced Research Computing, University College London, London, WC1E 6BT, UKCentre for Advanced Research Computing, University College London, London, WC1E 6BT, UKComputational Biology & Healthcare Informatics, Department of Computer Science, University of Oxford, Oxford, OX1 3QD, UKHundreds of different mathematical models have been proposed for describing electrophysiology of various cell types. These models are quite complex (nonlinear systems of typically tens of ODEs and sometimes hundreds of parameters) and software packages such as the Cancer, Heart and Soft Tissue Environment (Chaste) C++ library have been designed to run simulations with these models in isolation or coupled to form a tissue simulation. The complexity of many of these models makes sharing and translating them to new simulation environments difficult. CellML is an XML format that offers a widely-adopted solution to this problem. This paper specifically describes the capabilities of two new Python tools: the cellmlmanip library for reading and manipulating CellML models; and chaste_codegen, a CellML to C++ converter. These tools provide a Python 3 replacement for a previous Python 2 tool (called PyCML) and they also provide additional new features that this paper describes. Most notably, they can generate analytic Jacobians without the use of proprietary software, and also find singularities occurring in equations and automatically generate and apply linear approximations to prevent numerical problems at these points.https://wellcomeopenresearch.org/articles/6-261/v2CellML cardiac electrophysiology code generation C++ jacobian singularityeng |
spellingShingle | Gary R Mirams Michael Clerx Maurice Hendrix Sarah M Keating Asif U Tamuri Jonathan Cooper Ross H Johnstone cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] Wellcome Open Research CellML cardiac electrophysiology code generation C++ jacobian singularity eng |
title | cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] |
title_full | cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] |
title_fullStr | cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] |
title_full_unstemmed | cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] |
title_short | cellmlmanip and chaste_codegen: automatic CellML to C++ code generation with fixes for singularities and automatically generated Jacobians [version 2; peer review: 3 approved] |
title_sort | cellmlmanip and chaste codegen automatic cellml to c code generation with fixes for singularities and automatically generated jacobians version 2 peer review 3 approved |
topic | CellML cardiac electrophysiology code generation C++ jacobian singularity eng |
url | https://wellcomeopenresearch.org/articles/6-261/v2 |
work_keys_str_mv | AT garyrmirams cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT michaelclerx cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT mauricehendrix cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT sarahmkeating cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT asifutamuri cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT jonathancooper cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved AT rosshjohnstone cellmlmanipandchastecodegenautomaticcellmltoccodegenerationwithfixesforsingularitiesandautomaticallygeneratedjacobiansversion2peerreview3approved |