Source code for test_phenotype_phase_plane

"""Test functionalities of Phenotype Phase Plane Analysis."""

import numpy as np
import pytest

from cobra import Model
from cobra.flux_analysis import production_envelope


[docs]def test_envelope_one(model: Model) -> None: """Test flux of production envelope.""" df = production_envelope(model, ["EX_o2_e"]) assert np.isclose(df["flux_maximum"].sum(), 9.342, atol=1e-3)
[docs]def test_envelope_multi_reaction_objective(model: Model) -> None: """Test production of multiple objectives.""" obj = {model.reactions.EX_ac_e: 1, model.reactions.EX_co2_e: 1} with pytest.raises(ValueError): production_envelope(model, "EX_o2_e", obj)
@pytest.mark.parametrize( "variables, num", [ (["EX_glc__D_e"], 30), (["EX_glc__D_e", "EX_o2_e"], 20), (["EX_glc__D_e", "EX_o2_e", "EX_ac_e"], 10),
[docs] ], ) def test_multi_variable_envelope(model: Model, variables: str, num: int) -> None: """Test production of envelope (multiple variable).""" df = production_envelope(model, variables, points=num) assert len(df) == num ** len(variables)
[docs]def test_envelope_two(model: Model) -> None: """Test production of envelope.""" df = production_envelope(model, ["EX_glc__D_e", "EX_o2_e"], objective="EX_ac_e") assert np.isclose(df["flux_maximum"].sum(), 1737.466, atol=1e-3) assert np.isclose(df["carbon_yield_maximum"].sum(), 83.579, atol=1e-3) assert np.isclose(df["mass_yield_maximum"].sum(), 82.176, atol=1e-3)