Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/paulflang/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.
https://github.com/paulflang/sbml2julia
julia modelling ode optimization ordinary-differential-equations sbml sbml-model systems-biology
Last synced: 3 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/paulflang/sbml2julia
- Owner: paulflang
- License: mit
- Created: 2020-05-01T18:51:37.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-07T20:14:06.000Z (almost 3 years ago)
- Last Synced: 2024-10-17T09:28:56.155Z (3 months ago)
- Topics: julia, modelling, ode, optimization, ordinary-differential-equations, sbml, sbml-model, systems-biology
- Language: Python
- Homepage: https://sbml2julia.readthedocs.io/en/latest/
- Size: 20.5 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.rst
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
[![Documentation Status](https://readthedocs.org/projects/sbml2julia/badge/?version=latest)](https://sbml2julia.readthedocs.io/en/latest/?badge=latest)
[![Test results](https://circleci.com/gh/paulflang/SBML2Julia.svg?style=shield)](https://app.circleci.com/pipelines/github/paulflang/SBML2Julia)
[![License](https://img.shields.io/github/license/paulflang/sbml2julia.svg)](https://github.com/paulflang/SBML2Julia/blob/develop/LICENSE)# `SBML2Julia`
`SBML2Julia` is a tool to for optimizing parameters of ordinary differential equation (ODE) models. `SBML2Julia` translates a model from SBML/[PEtab](https://petab.readthedocs.io/en/stable/) format into Julia for Mathematical Programming ([JuMP](https://jump.dev/JuMP.jl/stable/)), performs the optimization task and returns the results. For importing SBML models into the the SciML ecosystem, please refer to [SBMLToolkit.jl](https://github.com/SciML/SBMLToolkit.jl).
## Optimization method
`SBML2Julia` uses the optimization method presented in [Scalable nonlinear programming framework for parameter estimation in dynamic biological system models](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1006828). 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](https://hub.docker.com/repository/docker/paulflang/sbml2julia) from Docker Hub and build a container.
```
user@bash:/$ docker pull paulflang/sbml2julia:latest
user@bash:/$ docker run -it --mount type=bind,source=,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](https://github.com/paulflang/sbml2julia/blob/master/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](https://sbml2julia.readthedocs.io/en/latest/index.html) for a description of how to use `SBML2Julia`.## License
The package is released under the [MIT license](https://github.com/paulflang/SBML2Julia/blob/develop/LICENSE).## Development team
This package was developed by [Paul F. Lang](https://www.linkedin.com/in/paul-lang-7b54a81a3/) at the University of Oxford, UK and [Sungho Shin](https://www.sunghoshin.com/) at the University of Wisconsin-Madison, USA..## Questions and comments
Please contact [Paul F. Lang](mailto:[email protected]) with any questions or comments.