-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Evgeny Metelkin
committed
Nov 10, 2021
1 parent
7152fec
commit 9074087
Showing
7 changed files
with
270 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# JOSS paper | ||
|
||
This folder stores files for the publication in JOSS. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
@article{Smith2009, | ||
author = {L. P. Smith and F. T. Bergmann and D. Chandran and H. M. Sauro}, | ||
doi = {10.1093/bioinformatics/btp401}, | ||
issn = {1367-4803}, | ||
issue = {18}, | ||
journal = {Bioinformatics}, | ||
month = {9}, | ||
title = {Antimony: a modular model definition language}, | ||
volume = {25}, | ||
year = {2009}, | ||
} | ||
@article{Hucka2003, | ||
author = {M. Hucka and A. Finney and H. M. Sauro and H. Bolouri and J. C. Doyle and H. Kitano and and the rest of the SBML Forum: and A. P. Arkin and B. J. Bornstein and D. Bray and A. Cornish-Bowden and A. A. Cuellar and S. Dronov and E. D. Gilles and M. Ginkel and V. Gor and I. I. Goryanin and W. J. Hedley and T. C. Hodgman and J.-H. Hofmeyr and P. J. Hunter and N. S. Juty and J. L. Kasberger and A. Kremling and U. Kummer and N. Le Novere and L. M. Loew and D. Lucio and P. Mendes and E. Minch and E. D. Mjolsness and Y. Nakayama and M. R. Nelson and P. F. Nielsen and T. Sakurada and J. C. Schaff and B. E. Shapiro and T. S. Shimizu and H. D. Spence and J. Stelling and K. Takahashi and M. Tomita and J. Wagner and J. Wang}, | ||
doi = {10.1093/bioinformatics/btg015}, | ||
issn = {1367-4803}, | ||
issue = {4}, | ||
journal = {Bioinformatics}, | ||
month = {3}, | ||
title = {The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models}, | ||
volume = {19}, | ||
year = {2003}, | ||
} | ||
@article{Kirouac2019, | ||
author = {Daniel C. Kirouac and Brian Cicali and Stephan Schmidt}, | ||
doi = {10.1002/psp4.12390}, | ||
issn = {2163-8306}, | ||
issue = {4}, | ||
journal = {CPT: Pharmacometrics & Systems Pharmacology}, | ||
month = {4}, | ||
title = {Reproducibility of Quantitative Systems Pharmacology Models: Current Challenges and Future Opportunities}, | ||
volume = {8}, | ||
year = {2019}, | ||
} | ||
@article{Mentre2020, | ||
author = {France Mentré and Lena E. Friberg and Stephen Duffull and Jonathan French and Douglas A. Lauffenburger and Lang Li and Donald E. Mager and Vikram Sinha and Eric Sobie and Ping Zhao}, | ||
doi = {10.1002/cpt.1683}, | ||
issn = {0009-9236}, | ||
issue = {1}, | ||
journal = {Clinical Pharmacology & Therapeutics}, | ||
month = {1}, | ||
title = {Pharmacometrics and Systems Pharmacology 2030}, | ||
volume = {107}, | ||
year = {2020}, | ||
} | ||
@article{Stephanou2018, | ||
author = {Angélique Stéphanou and Eric Fanchon and Pasquale F. Innominato and Annabelle Ballesta}, | ||
doi = {10.1007/s10441-018-9330-2}, | ||
issn = {0001-5342}, | ||
issue = {4}, | ||
journal = {Acta Biotheoretica}, | ||
month = {12}, | ||
title = {Systems Biology, Systems Medicine, Systems Pharmacology: The What and The Why}, | ||
volume = {66}, | ||
year = {2018}, | ||
} | ||
@article{Knight-Schrijver2016, | ||
author = {V.R. Knight-Schrijver and V. Chelliah and L. Cucurull-Sanchez and N. Le Novère}, | ||
doi = {10.1016/j.csbj.2016.09.002}, | ||
issn = {20010370}, | ||
journal = {Computational and Structural Biotechnology Journal}, | ||
title = {The promises of quantitative systems pharmacology modelling for drug development}, | ||
volume = {14}, | ||
year = {2016}, | ||
} | ||
@inproceedings{Metelkin2020, | ||
abstract = {Objectives | ||
Today the pharmacology modeling is evolving towards complex mechanism-based dynamical modeling and involves a large amount of biological and clinical data [1]. A typical QSP project may include thousands of molecular components, several drugs and usually is done by a research group involving people with different expertise. The data management, workflow and co-operation in such projects are the challenges. In many cases, the critical step also is the translation of the modeling results to other modeling formats and frameworks. | ||
This study is an effort to resolve the typical problems in a QSP project by creating the software infrastructure based on Heta formats and develop a shared and controllable working environment. The pre-formulated requirements are: (i) storing the QSP models and data in integrated infrastructure, (ii) support iterative platform updates, (iii) support of models written in human-readable text and table formats, (iv) export models and data to different popular formats on the fly. | ||
Methods | ||
Heta language is a Domain Specific Language (DSL) designed for the development and annotation of dynamical models in QSP projects. Heta standard of version 0.2 is fully supported in the Heta compiler. The core of the Heta compiler was developed in JavaScript language and can be used in Node environment, can be a part of a web-based application or potentially integrated with simulation software. | ||
Results | ||
Heta compiler is developed and tested based on the series of QSP models and projects. Currently Heta compiler supports the export to the following formats: DBSolve, Simbiology, mrgsolve, Matlab, SBML, etc. It was used in open and commercial QSP projects developed by InSysBio: Alzheimer-consortium platform, Immune Response Template, PK/RO simulator for anti-PD-1 mAbs. | ||
Discussion | ||
Heta compiler will be developing as free open-source software on GitHub and is expected to be a community-driven framework (https://hetalang.github.io). A series of additional tools to support Heta and Heta compiler is developed: highlighting syntax in Atom and VSCode, SbmlViewer, slv-utils. | ||
Conclusions | ||
Heta compiler can be used as the framework for a QSP modeling project of any size and complexity. It allows integrate the dynamical models and data as modules and transform the modeling code to different popular formats. It can be easily integrated with existed infrastructure, workflows or used as a part of the CI/CD strategy. | ||
}, | ||
author = {Evgeny Metelkin}, | ||
doi = {10.13140/RG.2.2.18555.13602}, | ||
journal = {American Conference on Pharmacometrics 11}, | ||
month = {11}, | ||
pages = {THU-023}, | ||
title = {"Heta compiler" is a framework for the development and management of Quantitative Systems Pharmacology modeling platforms}, | ||
year = {2020}, | ||
} | ||
@article{Mogilevskaya2009a, | ||
abstract = {The metabolic networks are the most well-studied biochemical systems, with an abundance of in vitro and in vivo data available for quantitative estimation of its kinetic parameters. In this chapter, we present our approach to developing mathematical description of metabolic pathways. The model-based integration of reaction kinetics and the utilization of different types of experimental data including temporal dependencies have been described in detail. Software package DBSolve7 which allows us to develop kinetic model of the biochemical system and integrate experimental data has been presented.}, | ||
author = {Ekaterina Mogilevskaya and Natalia Bagrova and Tatiana Plyusnina and Nail Gizzatkulov and Eugeniy Metelkin and Ekaterina Goryacheva and Sergey Smirnov and Yuriy Kosinsky and Aleksander Dorodnov and Kirill Peskov and Tatiana Karelina and Igor Goryanin and Oleg Demin}, | ||
doi = {10.1007/978-1-60761-175-2_11}, | ||
isbn = {978-1-60761-174-5}, | ||
issn = {1064-3745}, | ||
journal = {Methods in molecular biology (Clifton, N.J.)}, | ||
keywords = {dbsolve7,integration of experimental data,kinetic modeling,metabolic pathways}, | ||
pages = {197-218}, | ||
pmid = {19597787}, | ||
title = {Kinetic modeling as a tool to integrate multilevel dynamic experimental data.}, | ||
volume = {563}, | ||
url = {http://link.springer.com/10.1007/978-1-60761-175-2 http://www.ncbi.nlm.nih.gov/pubmed/19597787}, | ||
year = {2009}, | ||
} | ||
@article{Goryanin2006, | ||
author = {Igor I Goryanin and Galina V Lebedeva and Ekaterina A Mogilevskaya and Eugeniy A Metelkin and Oleg V Demin}, | ||
issn = {0076-6941}, | ||
journal = {Methods of biochemical analysis}, | ||
keywords = {Algorithms,Aminohydrolases,Aminohydrolases: metabolism,Bacterial,Bacterial Proteins,Bacterial Proteins: chemistry,Biological,Chemical,Escherichia coli,Escherichia coli: metabolism,Genes,Hydrogen-Ion Concentration,Kinetics,Models,Molecular Biology,Molecular Biology: methods,Systems Biology,Theoretical}, | ||
month = {1}, | ||
pages = {437-88}, | ||
pmid = {16929691}, | ||
title = {Cellular kinetic modeling of the microbial metabolism.}, | ||
volume = {49}, | ||
url = {http://www.ncbi.nlm.nih.gov/pubmed/16929691}, | ||
year = {2006}, | ||
} | ||
|
||
@misc{faah, | ||
author = {Evgeny Metelkin and Natalia Bagrova and Neil Benson and Oleg Demin and Piet van der Graaf}, | ||
title = {FAAH inhibitor: QSP modeling platform describing Fatty Acid Amide Hydrolase inhibition in human}, | ||
year = {2019}, | ||
publisher = {GitHub}, | ||
journal = {GitHub repository}, | ||
url = {https://github.com/insysbio/faah-inhibitor} | ||
} | ||
|
||
@misc{covid, | ||
author = {Evgeny Metelkin and Oleg Demin}, | ||
title = {QSP model of COVID-19: SARS-CoV-2 virus and host cell life cycles, immune response and therapeutic treatments}, | ||
year = {2020}, | ||
publisher = {GitHub}, | ||
journal = {GitHub repository}, | ||
url = {https://github.com/insysbio/covid19-qsp-model} | ||
} | ||
|
||
@misc{irt, | ||
author = {Veronika Musatova and Dmitry Shchelokov and Antonina Nikitich and Evgeny Metelkin and Oleg Demin Jr}, | ||
title = {Immune Response Template: a Quantitative Systems Pharmacology (QSP) platform of immune system}, | ||
year = {2018}, | ||
publisher = {InSysBio LLC}, | ||
journal = {WEB}, | ||
url = {https://irt.insysbio.com/} | ||
} | ||
|
||
@misc{mAb-app, | ||
author = {Dmitry Shchelokov and Evgeny Metelkin and Oleg Demin Jr}, | ||
title = {PK/RO simulator for anti-PD-1 mAbs}, | ||
year = {2019}, | ||
publisher = {InSysBio LLC}, | ||
journal = {ShinyApps.io}, | ||
url = {https://insysbio.shinyapps.io/mAb-app/} | ||
} | ||
|
||
@inproceedings{metelkin2019, | ||
abstract = {Heta language is a domain-specific programming language (DSL) for dynamic quantitative models used in quantitative systems pharmacology (QSP) and systems biology (SB). It describes the biological systems as the components of QSP/SB modeling platform. The scenarios, annotation and configuration are parts of the platform.}, | ||
author = {Evgeny Metelkin}, | ||
city = {Orlando, FL}, | ||
journal = {American Conference on Pharmacometrics 10}, | ||
month = {10}, | ||
title = {"{H}eta" is a New Declarative Language to Define the Large-Scale Systems Pharmacology and Systems Biology Models}, | ||
year = {2019}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
--- | ||
title: 'Heta compiler: a software tool for the development of large-scale QSP models and compilation into simulation formats' | ||
tags: | ||
- systems biology | ||
- quantitative systems pharmacology | ||
- mathematical modeling | ||
- pharmacometrics | ||
- format conversion | ||
- sbml | ||
- heta | ||
authors: | ||
- name: Evgeny Metelkin | ||
orcid: 0000-0001-6612-5373 | ||
affiliation: 1 | ||
affiliations: | ||
- name: InSysBio LLC | ||
index: 1 | ||
date: 20 August 2021 | ||
bibliography: paper.bib | ||
|
||
--- | ||
|
||
# Summary | ||
|
||
Today mathematical modeling is becoming more and more popular in biomedicine and drug development. __Quantitative systems pharmacology__ (QSP), a relatively new research discipline, is devoted to complex models describing organisms, diseases, and drug dynamics. Designing these models presents a set of challenging methodological problems like managing a huge amount of data, dealing with large-scale models, time-consuming calculations, etc. __Heta compiler__ is a small and fast software tool written in JavaScript which manages infrastructure for QSP modeling projects. The purpose of the tool is to build and integrate QSP platform modules, to check their completeness and consistency, and then to compile everything into runnable code that will be executed in simulation software. A user can apply a command-line interface to run the model building process. Alternatively, Heta compiler can be used as a package for developing web-based applications or be integrated with simulation software. | ||
|
||
# Statement of need | ||
|
||
The large and still growing Systems Biology (SB) and Systems Pharmacology modeling communities utilize a variety of software tools for simulation and data analysis [@Stephanou2018; @Mentre2020; @Knight-Schrijver2016]. Usually, the modelers solve the algebraic-differential equations or perform parameters identification or sensitivity analysis. While being useful for tackling specific problems, each software tool often has no user-friendly way for routine operations like step-by-step model creation and maintenance. Furthermore, different tools have their own internal model format which cannot be reused. | ||
|
||
This paper presents Heta compiler which provides a convenient and flexible way for the development of dynamic large-scale models based on the __Heta language__ code. The compiler translates the source modeling code into a variety of formats to be run in simulation software tools. Heta compiler also provides information on errors in a model which can be used to debug. | ||
|
||
This tool is an effort to resolve the typical problems in a QSP project by creating a controllable working environment. | ||
The pre-formulated requirements are: | ||
|
||
- store QSP models and data in integrated infrastructure, | ||
- support iterative platform updates, | ||
- support of models written in human-readable formats as well as in tables, | ||
- help for model code reuse and sharing, | ||
- provide interface for storing several models in a single platform, | ||
- export models and data to different popular formats so it can be used out-of-the-box. | ||
|
||
# Heta formats | ||
|
||
`Heta compiler` has been evolving alongside the Heta language [@metelkin2019] specification. Heta is a series of human-readable and writable formats for QSP and Systems Biology projects: Heta code, table representation, JSON, and YAML notation. Heta describes dynamic models in the process-description format i.e., as interacting components that describe volumes, concentrations, amounts, rates. On the other side, it was designed to be easily transformed into ODEs or other formats. | ||
|
||
The standardization of process-description modeling notation was also pursued in formats like SBML, CellML, Antimony. However the Heta standard can be distinguished by the specific features: | ||
|
||
- Human-readable/writable code that can be used for model development or modification. | ||
- Easy code parsing. | ||
- Modularity: QSP/SB platform can be subdivided into several files and spaces for better project management. | ||
- Multiple interchangeable representation: human-readable code, tables, JSON, YAML. | ||
- Reusability: modeling platforms should be easily extended for other projects. | ||
- Reach annotation capabilities for better model code revision. | ||
- Simple transformation to popular modeling formats or general-purpose ODEs. | ||
- Support of translation from/to SBML [@Hucka2003]. | ||
|
||
## Example | ||
|
||
Code in \autoref{fig:model-code} is an example of the Heta code describing a simple one-compartment model. The metabolic scheme of the model can be found in \autoref{fig:model-scheme}. | ||
|
||
![Model code in Heta format: `index.heta` file. \label{fig:model-code}](model-code.png){ width=60% } | ||
|
||
![One compartment model with two metabolites and one reaction.\label{fig:model-scheme}](model-scheme.png){ width=60% } | ||
|
||
When the size of a model code is large it is recommended to subdivide it into modules but this model is small and can be placed into a single file, e.g `index.heta`. To build the platform with `Heta compiler` one can run the compilation with the following command in a command terminal: `heta build`. | ||
|
||
# Features overview | ||
|
||
`Heta compiler` includes the parser of the Heta formats and supports all features of the [Heta specifications](https://hetalang.github.io/#/specifications/) of version 0.4.1. | ||
It was designed to support exporting to different popular modeling formats. The current version supports the following formats: | ||
|
||
- DBSolveOptimum | ||
- SBML of levels 2 and 3 | ||
- mrgsolve | ||
- Simbiology | ||
- Matlab describing ODEs file | ||
- Julia language code | ||
- JSON/YAML | ||
- Excel sheets | ||
|
||
`Heta compiler` can work in two modes: as a command-line tool for model development or as a library to be incorporated into third-party applications. | ||
The source code is written in pure JavaScript and can be run in the Node environment or in a browser. | ||
It can be used for both: server-side and front-end applications. | ||
|
||
To use `Heta compiler` in a modeling project a user should follow the specific formats and agreements. | ||
Project files i.e. model code, datasets, figures, etc. should be stored in the same directory. | ||
This directory typically includes an optional `platform.json` declaration file that stores the supplementary information of a platform as well as specific parameters for platform compilation. | ||
The alternative way to set the options of the compiler is to use command-line arguments. | ||
The list of them can be shown with `heta build -h` command in a shell. | ||
|
||
![A typical workflow of `heta compiler` in a modeling project.\label{fig:workflow}](workflow.png) | ||
|
||
# Results and discussion | ||
|
||
`Heta compiler` can be used as the framework for a QSP modeling project of any size and complexity. Currently, it is applied for the development and maintenance of a variety of commercial and open-source modeling projects [@faah; @covid]. | ||
`Heta compiler` has also been used for the development of web applications like the [Immune Response Template](https://irt.insysbio.com/) navigator and "PK/RO simulator" R-Shiny application [@mAb-app]. | ||
|
||
The Heta-based formats are friendly for version control systems like Git and SVN because of the modular structure and the text-based representation. | ||
Heta compiler can easily be integrated with existing modeling infrastructure, workflows or used as a part of a CI/CD workflow. | ||
|
||
`Heta compiler` is a part of the Heta project which is an initiative for the development of full-cycle infrastructure for modeling in pharmacology and biology: <https://hetalang.github.io>. | ||
|
||
# References |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.