Unifying API generation for COMBINE standards: Open Source Software Sustainability Project
ARC worked with UCL Neuroscience, Physiology & Pharmacology (NPP) to unify the tools used in developing API libraries for two open standards formats that facilitate modelling in computational biology.
26 July 2024
Figure 1 (above) Screenshot of the recently developed web page (https://co.mbine.org/examples) linking to multiple interactive Jupyter notebooks demonstrating usage of the COMBINE standards for model development in computational biology.
Background
The COMBINE network (https://combine-org.github.io) develops open standards to facilitate modelling in computational biology. COMBINE standard developers maintain API (Application Programming Interface) libraries for these formats (e.g. libSBML, libNeuroML) which have been incorporated into many modelling tools by application developers to facilitate the reading, writing, and manipulation of standardised models. This grant focused on SBML & NeuroML and unifying the tools used for API generation by these standards.
What we did
Before work began using money received from the Open Source Software Sustainability (OSSS) grant, the PrincipaI Investigators (Dr Sarah Keating from ARC and Dr Padraig Gleeson from NPP) were fortunate enough to be awarded a grant from the Kavli Foundation with the main focus being creating and demonstrating models of both the internal biochemical reactions and the electrical activity of a biological neuron as a single model that could be read and simulated using a single script. This tied in very neatly with the aims of the OSSS grant and thus slightly altered our priorities in terms of a starting point for our work in this area.
Being able to refer to our existing OSSS grant, even though it was yet to start, was hugely beneficial to our application to the Kavli Foundation." - Dr Sarah Keating & Dr Padraig Gleeson, Project PIs“
This allowed us to combine the initial outreach aims of both grants and create a series of simple “Hello World” type examples of Jupyter notebooks to provide interactive, introductory guides to each of the COMBINE standards. These have now been published and are available at: https://co.mbine.org/examples (see Figure 1, above). This had the additional benefit of requiring us to create and test a single Python environment where all relevant libraries for the standards were present and interoperable - an essential step towards greater compatibility of their respective APIs.
That led very neatly into the work to synchronise the code generation tools used by SBML and NeuroML. Having investigated how the two code generation tools could work together, we decided that the most straightforward approach was to extend Deviser (originally developed for generating an API for SBML Level 3 packages) to import a YAML serialisation of the target standards from modelspec (being used for NeuroML). This has allowed us to generate a C++ library for a subset of NeuroML and identify areas of modelspec and the serialisation that can be improved. Additionally, expressing the SBML language's elements in modelspec has opened the possibility of serialising models in this format in JSON and YAML, alongside XML.
Next step
The next step will be to continue synchronising the APIs and work towards building a model and simulation flow that captures both the biochemistry and the electrical activity within the brain. This will open the doors to multi-scale, multimode modelling and continue the work of the COMBINE community in providing APIs to facilitate the adoption of the robust, open standards.
The impact
The availability of the OSSS grant has provided a springboard for a successful collaboration which we hope will continue to push the boundaries of computational biological modelling.