def test_enzyme(self): """One-substrate enzyme kinetics.""" filename = path.join(input_sbml, "enzyme.xml") crn = from_sbml(filename) crn.save_sbml(path.join(input_sbml, "enzyme_original.xml")) crn = from_sbml(path.join(input_sbml, "enzyme_original.xml")) rate = parse_expr("comp*E*vcat_kcat*veq_kon*S/(vcat_kcat + veq_koff)") crn.qss('ES') self.assertEqual((crn.rates[0] - rate).simplify(), 0) crn.save_sbml(path.join(input_sbml, "enzyme_simplified_qss_with_e.xml")) crn.remove_constant('E') self.assertEqual((crn.rates[0] - rate).simplify(), 0) crn.save_sbml(path.join(input_sbml, "enzyme_simplified_qss.xml")) # Michaelis-Menten crn = from_sbml(filename) enzyme_cons_law = ConsLaw('E + ES', 'Et') crn.qss(cons_law=('E', enzyme_cons_law)) rate = parse_expr( "comp*Et*vcat_kcat*veq_kon*S/(vcat_kcat + veq_koff + veq_kon*S)") self.assertEqual((crn.rates[0] - rate).simplify(), 0) crn.save_sbml(path.join(input_sbml, "enzyme_simplified_MM.xml")) crn.save_reaction_file( path.join(input_reactions, "enzyme_simplified_MM")) # Reading Michaelis-Menten model crn = from_sbml(path.join(input_sbml, "enzyme_simplified_MM.xml"))
def enzyme_kinetics(): """One-substrate enzyme kinetics.""" print("One-substrate enzyme kinetics.") filename = os.path.join(input_sbml, "enzyme.xml") crn = from_sbml(filename) rate = parse_expr("comp*E*vcat_kcat*veq_kon*S/(vcat_kcat + veq_koff)") crn.qss('ES') fail_if_not_equal((crn.rates[0] - rate).factor(), 0) crn.remove_constant('E') fail_if_not_equal((crn.rates[0] - rate).factor(), 0) # Michaelis-Menten crn = from_sbml(filename) enzyme_cons_law = ConsLaw('E + ES', 'Et') crn.qss(cons_law=('E', enzyme_cons_law)) rate = parse_expr( "comp*Et*vcat_kcat*veq_kon*S/(vcat_kcat + veq_koff + veq_kon*S)") fail_if_not_equal((crn.rates[0] - rate).factor(), 0) # Rapid equilibrium filename = os.path.join(input_sbml, "enzyme.xml") crn = from_sbml(filename) enzyme_cons_law = ConsLaw('E + ES', 'Et') crn.rapid_eq('ES', 'S + E', cons_law=('E', enzyme_cons_law)) fail_if_not_equal( (crn.kinetic_params[0] - parse_expr("Et*vcat_kcat*comp/(S + veq_koff/veq_kon)")).factor(), 0)
def test_crn_from_sbml(self): filename = path.join(input_sbml, "BIOMD0000000001.xml") output = path.join(input_sbml, "out_BIOMD0000000001.xml") crn = from_sbml(filename) success = libsbml.writeSBMLToFile(crn.document, output) self.assertTrue(success)
def test_crn_from_react_file(self): reactions = parse_reaction_file(path.join(input_reactions, "allosteric_activation")) filename = path.join(input_sbml, "allosteric_activation.xml") model, document, _ = model_from_reacts(reactions) success = libsbml.writeSBMLToFile(document, filename) self.assertTrue(success) crn = from_sbml(filename) crn.inspect()
def test_enzyme_rapid_eq(self): """One-substrate enzyme kinetics: rapid equilibrium.""" # Rapid equilibrium filename = path.join(input_sbml, "enzyme.xml") crn = from_sbml(filename) enzyme_cons_law = ConsLaw('E + ES', 'Et') crn.rapid_eq('ES', 'S + E', cons_law=('E', enzyme_cons_law)) self.assertEqual(( crn.kinetic_params[0] - parse_expr("Et*vcat_kcat*comp/(S + veq_koff/veq_kon)")).simplify(), 0)
def test_crn_from_reacts(self): reactions = [ ("r1", {"A": 1, "B": 1}, {"C": 1}, "k1 * A * B"), ("r2", {"A": 1, "B": 1}, {"D": 1}, "k2 * A * B"), ("r3", {"C": 1}, {"E": 1, "F": 1}, "k3 * C"), ("r4", {"C": 1, "D": 1}, {"A": 1, "D": 1}, "k4 * C * D")] filename = path.join(input_sbml, "test_model1.xml") model, document, _ = model_from_reacts(list(map(lambda x: Reaction(x[0], \ Complex(x[1]), \ Complex(x[2]), \ rate = parse_expr(x[3])), reactions))) success = libsbml.writeSBMLToFile(document, filename) self.assertTrue(success) crn = from_sbml(filename) crn.inspect(True)