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...

Full description

Bibliographic Details
Main Authors: Gary R Mirams, Michael Clerx, Maurice Hendrix, Sarah M Keating, Asif U Tamuri, Jonathan Cooper, Ross H Johnstone
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