Each software tool is unique in its specialization. For QSP workflows, among the freely available software – “R” is a very good tool for handling any kind of data set obtained from biological systems; “Octave” on the other hand is good at handling Ordinary differential equations (ODEs) but may fail at handling big and sparse datasets. Of course, any tool can be fine-tuned to achieve the other tool’s expertise but at the expense of time and accuracy. Is there a way to bring in the advantages of multiple tools together without compromise?
“SBML” or Systems Biology Markup Language came into existence to enable sharing the same model across different platforms without pain. “SBML” defines ‘rules’ and ‘reactions’ where rules are for the evolution of biological species (i.e. ODEs) and reactions are the constraints. SBML is primarily based on the ‘xml’ script which is based on the Object Oriented Programming Structure (OOPs) concept.
To understand OOPs classes, objects and attributes, let’s look at the example below. The “car” class has “car” objects which can be independently specified by their “attributes”. But sooner or later, a model would need some upgrading in the form of adding new attributes to the class. SBML allows the addition of these new attributes to the existing model. However, when a new attribute is added to the object, the backward compatibility may become problematic. In our example, the fuel might be available in the new version of class but not earlier classes. This is a big problem when SBML is used as a universal model platform. SBML has different classes and versions, which may not be backward compatible across other platforms which have SBML libraries.
‘R shiny’ offers a solution to this problem by providing a universal platform. It is an exceptional package used for sharing applications across the world without the need for any specific platform.
R is a useful tool because of its ability to show interactive plots and platform independent interface. However, there are still problems in backward compatibility in reading SBML models. “SBMLR” package is old enough to handle anything higher than ‘s3’ class (an older version of SBML files). “rsbml” claims that it can handle ‘s4’ class by converting them to older ‘s3’ class but actually does not seem to, based on my personal experience. So we ended up using Python for backward compatibility libroadrunner to handle any classes of SBML files.
Further, parameter estimation using PyGMO (library for multi-objective parameter optimization algorithms) and backward compatibility using ‘libroadrunner, library for SBML simulation engine) were attractive options using python (I will attempt another post on parameter estimation using PyGMO).
Combining ‘R’ and ‘python’ in service of combining visualization and parameter estimation for QSP is an interesting option – there are packages such as ‘rpy2’ (an interface for running ‘R’ embedded in a Python process) and ‘rpython’ (package that allows R to call Python). But these are experimental and you may get stuck at any point such as ‘API’ linkage, unavailable ‘windows version’ etc. In the world of open source, my bet would be using R (with ‘R shiny’) calling python (with ‘libroadrunner’and ‘PyGMO’) can provide a complete solution for QSP needs.
At Vantage, we made an attempt to address this issue. Our tool “Vantage Interactive Parameter Estimator” (VIPER) connects the “RShiny” interface and “python” library to solve the issues of backward compatibility and platform independent interface. We presented a poster on the same at ACOP7 (American Conference on Pharmacometrics), held at Seattle, US. We will discuss the poster and the tool soon….