sbml2julia
A tool to for optimizing parameters of ordinary differential equation (ODE) models. SBML2Julia translates a model from SBML/PEtab format into Julia for Mathematical Programming (JuMP), performs the optimization task and returns the results.
Science Score: 51.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in README -
✓Academic publication links
Links to: plos.org -
✓Committers with academic emails
2 of 3 committers (66.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.3%) to scientific vocabulary
Keywords
Repository
A tool to for optimizing parameters of ordinary differential equation (ODE) models. SBML2Julia translates a model from SBML/PEtab format into Julia for Mathematical Programming (JuMP), performs the optimization task and returns the results.
Basic Info
- Host: GitHub
- Owner: paulflang
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://sbml2julia.readthedocs.io/en/latest/
- Size: 20.5 MB
Statistics
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 2
- Releases: 0
Topics
Metadata Files
README.md
SBML2Julia
SBML2Julia is a tool to for optimizing parameters of ordinary differential equation (ODE) models. SBML2Julia translates a model from SBML/PEtab format into Julia for Mathematical Programming (JuMP), performs the optimization task and returns the results. For importing SBML models into the the SciML ecosystem, please refer to SBMLToolkit.jl.
Optimization method
SBML2Julia uses the optimization method presented in Scalable nonlinear programming framework for parameter estimation in dynamic biological system models. In brief, contrary to typical parameter optimization methods for ODE systems, SBML2Julia does not rely on simulation of the ODE system. Instead SBML2Julia uses an implicit Euler scheme to time-discretize an ODE system of n equations into m time steps. This transforms the ODE system into a system of n * (m - 1) algebraic equations with n * m variables. These n * m variables (or a subset thereof) can then be cast into an objective function. SBML2Julia then uses interior-point optimization implemented in the Julia language to minimize the objective function constraint to the n * (m - 1) algebraic equations.
Installation
SBML2Julia depends on several Python and Julia packages. If you have Docker installed on your machine, the easiest way of installing these dependencies is to pull the latest SBML2Julia docker image from Docker Hub and build a container.
user@bash:/$ docker pull paulflang/sbml2julia:latest
user@bash:/$ docker run -it --mount type=bind,source=<my_host_dir>,target=/media paulflang/sbml2julia:latest
To install the latest SBML2Julia release in the Docker container, run:
user@bash:/$ python3 -m pip install sbml2julia
Alternatively, to install the latest SBML2Julia version from GitHub, run:
user@bash:/$ git clone https://github.com/paulflang/sbml2julia.git
user@bash:/$ python3 -m pip install sbml2julia
To check if the installation was succesful, run:
user@bash:/$ sbml2julia -h
If you do not want to use Docker, the SBML2Julia dependencies can be installed as indicated in the Dockerfile. Once these dependencie are installed, SBML2Julia can be installed as above.
Interfaces
Optimization tasks can be performed from a Python API or a command line interface.
Tutorial, and documentation
Please see the documentation for a description of how to use SBML2Julia.
License
The package is released under the MIT license.
Development team
This package was developed by Paul F. Lang at the University of Oxford, UK and Sungho Shin at the University of Wisconsin-Madison, USA..
Questions and comments
Please contact Paul F. Lang with any questions or comments.
Owner
- Name: Paul Lang
- Login: paulflang
- Kind: user
- Company: JuliaHub
- Website: https://www.linkedin.com/in/paulflang/
- Twitter: PF_Lang
- Repositories: 6
- Profile: https://github.com/paulflang
Systems Biology | QSP | Cell Cycle
Citation (CITATION.bib)
@article{lang_sbml2julia_2020,
title = {{SBML2Julia}: interfacing {SBML} with efficient nonlinear {Julia} modelling and solution tools for parameter optimization},
shorttitle = {{SBML2Julia}},
url = {http://arxiv.org/abs/2011.02597},
abstract = {Motivation: Estimating model parameters from experimental observations is one of the key challenges in systems biology and can be computationally very expensive. While the Julia programming language was recently developed as a high-level and high-performance language for scientific computing, systems biologists have only started to realise its potential. For instance, we have recently used Julia to cut down the optimization time of a microbial community model by a factor of 140. To facilitate access of the systems biology community to the efficient nonlinear solvers used for this optimisation, we developed SBML2Julia. SBML2Julia translates optimisation problems specified in SBML and TSV files (PEtab format) into Julia for Mathematical Programming (JuMP), executes the optimization and returns the results in tabular format. Availability and implementation: SBML2Julia is freely available under the MIT license. It comes with a command line interface and Python API. Internally, SBML2Julia calls the Julia LTS release v1.0.5 for optimisation. All necessary dependencies can be pulled from Docker Hub (https://hub.docker.com/repository/docker/paulflang/sbml2julia). Source code and documentation are available at https://github.com/paulflang/SBML2Julia.},
urldate = {2020-11-17},
journal = {arXiv:2011.02597 [q-bio]},
author = {Lang, Paul F. and Shin, Sungho and Zavala, Victor M.},
month = nov,
year = {2020},
note = {arXiv: 2011.02597},
keywords = {Quantitative Biology - Quantitative Methods, Quantitative Biology - Molecular Networks},
file = {2020_Lang_SBML2Julia.pdf:C\:\\Users\\wolf5212\\OneDrive - Nexus365\\Literature\\zoteroLibrary\\2020_Lang_SBML2Julia.pdf:application/pdf},
}
@article{shin_scalable_2019,
title = {Scalable nonlinear programming framework for parameter estimation in dynamic biological system models},
volume = {15},
issn = {1553-7358},
url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006828},
doi = {10.1371/journal.pcbi.1006828},
abstract = {We present a nonlinear programming (NLP) framework for the scalable solution of parameter estimation problems that arise in dynamic modeling of biological systems. Such problems are computationally challenging because they often involve highly nonlinear and stiff differential equations as well as many experimental data sets and parameters. The proposed framework uses cutting-edge modeling and solution tools which are computationally efficient, robust, and easy-to-use. Specifically, our framework uses a time discretization approach that: i) avoids repetitive simulations of the dynamic model, ii) enables fully algebraic model implementations and computation of derivatives, and iii) enables the use of computationally efficient nonlinear interior point solvers that exploit sparse and structured linear algebra techniques. We demonstrate these capabilities by solving estimation problems for synthetic human gut microbiome community models. We show that an instance with 156 parameters, 144 differential equations, and 1,704 experimental data points can be solved in less than 3 minutes using our proposed framework (while an off-the-shelf simulation-based solution framework requires over 7 hours). We also create large instances to show that the proposed framework is scalable and can solve problems with up to 2,352 parameters, 2,304 differential equations, and 20,352 data points in less than 15 minutes. The proposed framework is flexible and easy-to-use, can be broadly applied to dynamic models of biological systems, and enables the implementation of sophisticated estimation techniques to quantify parameter uncertainty, to diagnose observability/uniqueness issues, to perform model selection, and to handle outliers.},
language = {en},
number = {3},
urldate = {2019-06-05},
journal = {PLOS Computational Biology},
author = {Shin, Sungho and Venturelli, Ophelia S. and Zavala, Victor M.},
month = mar,
year = {2019},
keywords = {Eigenvalues, Algebraic structures, Covariance, Differential equations, Inertia, Linear algebra, Nonlinear dynamics, Species interactions},
pages = {e1006828},
file = {2019_Shin_Scalable nonlinear programming framework for parameter estimation in dynamic.pdf:C\:\\Users\\wolf5212\\OneDrive - Nexus365\\Literature\\zoteroLibrary\\2019_Shin_Scalable nonlinear programming framework for parameter estimation in dynamic.pdf:application/pdf;Snapshot:C\:\\Users\\wolf5212\\Zotero\\storage\\BTPS6KWC\\article.html:text/html},
}
GitHub Events
Total
Last Year
Committers
Last synced: over 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| paulflang | p****g@w****k | 214 |
| Paul Lang | 4****g | 44 |
| Sungho Shin | s****n@w****u | 2 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 5
- Average time to close issues: about 1 month
- Average time to close pull requests: 29 days
- Total issue authors: 2
- Total pull request authors: 2
- Average comments per issue: 4.67
- Average comments per pull request: 0.6
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- paulflang (8)
- ChrisRackauckas (1)
Pull Request Authors
- paulflang (4)
- sshin23 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 9 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 2
- Total maintainers: 1
pypi.org: sbml2julia
Optimization tool based on ODE discretisation.
- Homepage: https://github.com/paulflang/sbml2julia
- Documentation: https://sbml2julia.readthedocs.io/
- License: MIT
-
Latest release: 0.1.1
published over 5 years ago
Rankings
Maintainers (1)
Dependencies
- sphinx_rtd_theme >=0.4.2
- capturer * development
- mock * development
- pytest * development
- cement >=3.0.0
- julia *
- matplotlib *
- numpy *
- openpyxl *
- pandas *
- petab *
- python-libsbml ==5.18.0
- scipy *
- setuptools *
- cement *
- julia *
- matplotlib *
- numpy *
- openpyxl *
- pandas *
- petab *
- python-libsbml *
- scipy *
- setuptools *