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.
Install / Use
/learn @paulflang/SBML2JuliaREADME
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.
Related Skills
node-connect
341.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.5kCommit, push, and open a PR
