Software development at the ABI
On this page:
The ABI Software Development Team applies software engineering practices, methods and techniques to software development, focusing on biomedical research. We aim to develop reusable frameworks and pipelines to create, visualise, and analyse biomedical physiological models and data. Our goal is to transform biomedical data into robust, reproducible scientific tools.
Our members contribute to a diverse range of software projects, spanning from individual automation scripts to large-scale international open-source projects.
By working with us, you can ensure your works are publication-ready, your code is reproducible, and your data is effectively visualised. We can assist with everything from short-term troubleshooting to joining grant applications.
Reach out to us to discuss and explore how we can support your research.
Our focus
We bridge the gap between complex biomedical research and robust software engineering. Our core expertise is centered around four main areas:
Interactive biomedical visualisation
Developing 2D flatmaps, 3D anatomical scaffolds, and graphical libraries (such as CMLibs Zinc and Flatmaps) that allow researchers to intuitively interact with, analyse, and map complex anatomical and physiological data.
Standards-based modeling & simulation
Building and maintaining software ecosystems (like libCellML and libOpenCOR) that support international standards for encoding, simulating, and sharing mathematical models of biological processes.
Reproducible workflows & data management
Creating reusable pipeline environments (MAP Client) and repository platforms (Physiome model repository) to ensure that biomedical data, models, and workflows remain publication-ready, secure, and fully reproducible.
Cross-platform & modern web engineering
Engineering highly modular, cross-platform libraries and software written in C/C++, Rust, and Python to provide powerful modeling environments for researchers. We couple these backend systems with modern web frontends (JavaScript and Vue 3) to deliver interactive visualisation tools both natively and directly in the browser.
Notable projects
The following are notable projects that have been developed to support ABI’s research strategically.
SPARC Portal and Map Viewer
Leveraging ABI’s research, software infrastructure, and technologies, our team has delivered a highly customisable web app: the Map Viewer.
The Map Viewer provides interactive, visual interfaces for exploring data and tools within the context of anatomical and physiological knowledge. It supports various data types, including 2D flatmaps, 3D scaffolds, images, segmentation, plots, and simulations.With an intuitive interface, users can find relevant information and access various data and visualisation in just a few clicks. Furthermore, the Map Viewer is designed for modularity, ensuring it can be easily deployed and integrated with other external data sources.
CMLibs Zinc Library
The CMLibs Zinc Library is a modelling and visualisation library built from the core of the legacy CMGUI application. Zinc provides a rich finite element model representation supporting higher-order basis functions, general parameter maps with dynamic model editing, images and image processing. Zinc has a highly flexible field evaluation pipeline which can be used to define expressions for non-linear optimisation such as geometric fitting, and also feeds into graphics primitives for creating rich visualisations, which can be exported for web display with ZincJS.
Cmlibs Zinc is used as a foundation library for MAP Client / Mapping Tools plugins for creating and fitting anatomical scaffolds, visualisation and many other tasks.
The library is natively written in C/C++ with C++ API documentation, usable from Python via cmlibs.zinc on PyPi with additional utilities documented with the Mapping Tools.
Flatmaps
Multi-scale 2D anatomical and functional physiology maps allowing navigation and exploration of anatomical and physiological knowledge with interactive maps. Various client-side and server-side tools are available to generate, host, and view these interactive maps, including custom APIs that allow researchers to query biological and functional knowledge.
View some of our sample maps here.
libCellML
libCellML is a software library that implements the CellML 2.0 specification. libCellML takes an object-based approach to representing the concepts defined in the specification. As such, it aims to support CellML 2.0 and provide a pathway for translating CellML 1.X models to CellML 2.0. libCellML is written in C++ and packaged for use in Python, JavaScript, and Julia. libCellML also supports model analysis beyond the CellML specification and code generation for simulating CellML models with tools such as CVODE and KINSOL from SUNDIALS, or OpenCOR.
MAP Client and Mapping Tools
Reproducible workflow environment with a growing number of plug-in tools for performing workflow steps.
MAP Client provides the foundation for the SPARC Scaffold Mapping Tools, a collection of plugins for creating Anatomical Scaffolds (standardised, annotated models of anatomy), fitting these to subject-specific geometry, embedding data, visualisation and many other tools.
Physiome Model Repository
Physiome Model Repository is powered by the PMR2 software suite. Originally developed to store CellML models, it also supports other data types, such as Flatmaps, 3D Scaffolds along with others. The CellML and other model files have been developed by researchers worldwide over the past 25+ years.
libOpenCOR
libOpenCOR is the backend library to our new Web-based version of OpenCOR (see below) that leverages libCellML (see above). It is written in C++ and comes with both JavaScript and Python bindings (available on npm and PyPI, respectively). Binaries for C++ can be found here (for Windows release/debug, Linux, and macOS, both for Intel and ARM architectures).
OpenCOR
(Legacy) OpenCOR is a cross-platform modelling environment aimed at organising, editing, simulating, and analysing mathematical models of biological processes encoded in the CellML format. Simulation experiments can be stored in the SED-ML format and shared as a COMBINE archive. It can be downloaded for Windows, Linux, and macOS from the OpenCOR website.
A new web-based version of OpenCOR is currently being developed. It can be used online from here or within your own Vue 3 application (using OpenCOR’s npm package). A desktop version is also available from here (for Windows, Linux, and macOS, both for Intel and ARM architectures).
Explore more
A comprehensive list of open-source software, repositories, and utilities developed by our team can be found on our GitHub organisation homepage.
Interested in using our software or ready to collaborate? Contact us to get started.
Members
We have many software development experts at the ABI covering a wide range of skills. The following is a list of developers who can provide valuable advice on your software projects.
Location: Level 6 near the kitchen.