Optimization tool based on ODE discretisation.
Project description
[](https://sbml2julia.readthedocs.io/en/latest/?badge=latest) [](https://app.circleci.com/pipelines/github/paulflang/SBML2Julia) [](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/)), performes the optimization task and returns the results.
## 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 paulflang/sbml2julia:latest `
- To install the latest SBML2Julia version in the Docker container, run:
` user@bash:/$ git clone https://github.com/paulflang/sbml2julia.git user@bash:/$ python3 -m pip install -e sbml2julia `
- To check if the installation was succesful, run:
` user@bash:/$ sbml2julia -h `
- Alternatively, the SBML2Julia dependencies can be installed as indicated in the [Dockerfile](https://github.com/paulflang/sbml2julia/blob/master/Dockerfile) in the SBML2Julia GitHub repository. Once these dependencie are installed, SBML2Julia can be installed as above:
` user@bash:/$ git clone https://github.com/paulflang/sbml2julia.git user@bash:/$ python3 -m pip install -e sbml2julia user@bash:/$ sbml2julia -h `
## 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](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:paul.lang@wolfson.ox.ac.uk) with any questions or comments.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sbml2julia-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sbml2julia-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27bdb35e3da456f8e5fe10dd49f67b64bb4f9f640a2d0b6eaf05fd1cf29f95dc
|
|
| MD5 |
22f0542c9ea0a0d344dba69ea23e51ec
|
|
| BLAKE2b-256 |
bcea50c8341e270dba25703b273e8e88015859385b3e49c828c2729aebcc7d74
|