Skip to content

Convention C: SymPy model

Convention C is for symbolic ODE systems represented as SymPy dictionaries.

Example file

Create decay_sympy.py:

import sympy as sp

x, k = sp.symbols("x k")

model_id = "decay_sympy"
model_name = "Symbolic decay"

odes = {
    x: -k * x,
}

params = {
    k: 0.2,
}

inits = {
    x: 1.0,
}

parameter_units = {
    "k": "per_second",
}

Convert

ode2sbml convert decay_sympy.py --output decay.xml --format sbml

Python API

from ode2sbml import from_sympy, to_sbml
from decay_sympy import odes, params, inits

ir = from_sympy(
    odes=odes,
    params=params,
    inits=inits,
    model_id="decay_sympy",
)

to_sbml(ir, "decay.xml")

Symbol names become SBML IDs

Keep SymPy symbol names SBML-safe. sp.Symbol("k_cat") is fine. sp.Symbol("k-cat") is not a valid SBML SId.