Source code for sbmlutils.examples.distrib.distrib_comp

"""Distrib and comp example to check flattening."""
import shutil
from pathlib import Path

import libsbml

from sbmlutils.comp import flatten_sbml
from sbmlutils.examples import templates
from sbmlutils.factory import *
from sbmlutils.metadata import *


[docs]class U(Units): """UnitsDefinitions."""
[docs] hr = UnitDefinition("hr")
[docs] m2 = UnitDefinition("m2", "meter^2")
[docs]model = Model( "distrib_comp", name="model combining distrib and comp", packages=[Package.DISTRIB_V1, Package.COMP_V1], creators=templates.creators, notes=""" # Example model using distrib and comp packages Example creating distrib model with distribution elements. """ + templates.terms_of_use, units=U, model_units=ModelUnits( time=U.hr, extent=U.mole, substance=U.mole, length=U.meter, area=U.m2, volume=U.liter, ), parameters=[ Parameter( sid="p1", value=1.0, unit=U.mole, constant=True, port=True, uncertainties=[ Uncertainty( formula="normal(2.0, 2.0)", uncertParameters=[ UncertParameter( type=libsbml.DISTRIB_UNCERTTYPE_MEAN, value=2.0 ), UncertParameter( type=libsbml.DISTRIB_UNCERTTYPE_STANDARDDEVIATION, value=2.0 ), ], uncertSpans=[ UncertSpan( type=libsbml.DISTRIB_UNCERTTYPE_RANGE, valueLower=1.0, valueUpper=4.0, ), ], ) ], ) ], )
[docs]def create(output_dir: Path) -> None: """Create and flatten model.""" sbml_path = output_dir / f"{model.sid}.xml" sbml_path_flat = output_dir / f"{model.sid}_flat.xml" create_model(model=model, filepath=sbml_path) flatten_sbml(sbml_path, sbml_flat_path=sbml_path_flat)
if __name__ == "__main__": from sbmlutils.resources import EXAMPLES_DIR create(output_dir=EXAMPLES_DIR)