def test_Trigger_ancestor_create(self): e = libsbml.Event(2,4) ea = e.createTrigger() self.assert_( ea.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( ea.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( ea.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) obj = e.getTrigger() self.assert_( obj.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) pass
def test_Event(self): e = libsbml.Event(2,4) self.assertEqual( False, (e.hasRequiredElements()) ) t = libsbml.Trigger(2,4) t.setMath(libsbml.parseFormula("true")) e.setTrigger(t) self.assertEqual( False, (e.hasRequiredElements()) ) e.createEventAssignment() self.assertEqual( True, e.hasRequiredElements() ) e = None pass
def test_internal_consistency_check_99911_event(self): d = libsbml.SBMLDocument(2,4) e = libsbml.Event(2,4) m = d.createModel() d.setLevelAndVersion(2,1,False) e.setSBOTerm(2) m.addEvent(e) errors = d.checkInternalConsistency() self.assert_( errors == 0 ) d = None pass
def test_Delay_ancestor_add(self): d = libsbml.Delay(2,4) d.setMath(libsbml.parseFormula("1")) e = libsbml.Event(2,4) e.setDelay(d) d = None obj = e.getDelay() self.assert_( obj.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( obj.getAncestorOfType(libsbml.SBML_MODEL) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) e = None pass
def test_Event_setUseValuesFromTriggerTime1(self): e = libsbml.Event(2, 4) i = e.setUseValuesFromTriggerTime(False) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_(e.getUseValuesFromTriggerTime() == False) i = e.setUseValuesFromTriggerTime(True) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_(e.getUseValuesFromTriggerTime() == True) _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Trigger_ancestor_add(self): d = libsbml.Trigger(2,4) d.setMath(libsbml.parseFormula("true")) e = libsbml.Event(2,4) e.setTrigger(d) d = None obj = e.getTrigger() self.assert_( obj.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( obj.getAncestorOfType(libsbml.SBML_MODEL) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) e = None pass
def test_L3_Event_hasRequiredElements(self): e = libsbml.Event(3, 1) self.assertEqual(False, e.hasRequiredElements()) t = libsbml.Trigger(3, 1) t.setMath(libsbml.parseFormula("true")) t.setInitialValue(True) t.setPersistent(True) e.setTrigger(t) self.assertEqual(True, e.hasRequiredElements()) _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Event_parent_add(self): e = libsbml.Event(2, 4) t = libsbml.Trigger(2, 4) t.setMath(libsbml.parseFormula("true")) e.setTrigger(t) e.createEventAssignment() m = libsbml.Model(2, 4) m.addEvent(e) e = None lo = m.getListOfEvents() self.assert_(lo == m.getEvent(0).getParentSBMLObject()) self.assert_(m == lo.getParentSBMLObject()) pass
def test_Event_setTimeUnits3(self): units = "1second" e = libsbml.Event(2, 1) i = e.setTimeUnits(units) self.assert_(i == libsbml.LIBSBML_INVALID_ATTRIBUTE_VALUE) self.assertEqual(False, e.isSetTimeUnits()) i = e.unsetTimeUnits() self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assertEqual(False, e.isSetTimeUnits()) _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_internal_consistency_check_99905_trigger(self): d = libsbml.SBMLDocument(2,4) trigger = libsbml.Trigger(2,4) e = libsbml.Event(2,4) m = d.createModel() d.setLevelAndVersion(2,2,False) trigger.setSBOTerm(5) e.setTrigger(trigger) m.addEvent(e) errors = d.checkInternalConsistency() self.assert_( errors == 0 ) d = None pass
def test_internal_consistency_check_99910(self): d = libsbml.SBMLDocument(2,4) e = libsbml.Event(2,4) m = d.createModel() d.setLevelAndVersion(1,2,False) c = m.createCompartment() c.setId("cc") c.setConstant(False) m.addEvent(e) errors = d.checkInternalConsistency() self.assert_( errors == 0 ) d = None pass
def test_EventAssignment_ancestor_create(self): e = libsbml.Event(2,4) ea = e.createEventAssignment() lo = e.getListOfEventAssignments() self.assert_( ea.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( ea.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ) self.assert_( ea.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( ea.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) obj = e.getEventAssignment(0) self.assert_( obj.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) pass
def test_EventAssignment_ancestor_add(self): e = libsbml.Event(2,4) ea = libsbml.EventAssignment(2,4) ea.setVariable("c") ea.setMath(libsbml.parseFormula("K+L")) e.addEventAssignment(ea) ea = None lo = e.getListOfEventAssignments() obj = e.getEventAssignment(0) self.assert_( obj.getAncestorOfType(libsbml.SBML_EVENT) == e ) self.assert_( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) pass
def test_Event_setTimeUnits2(self): units = "second" e = libsbml.Event(2, 1) i = e.setTimeUnits(units) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_((units == e.getTimeUnits())) self.assertEqual(True, e.isSetTimeUnits()) i = e.unsetTimeUnits() self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assertEqual(False, e.isSetTimeUnits()) _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Event_addEventAssignment2(self): e = libsbml.Event(2, 2) ea = libsbml.EventAssignment(2, 3) ea.setVariable("f") ea.setMath(libsbml.parseFormula("a-n")) i = e.addEventAssignment(ea) self.assert_(i == libsbml.LIBSBML_VERSION_MISMATCH) self.assert_(e.getNumEventAssignments() == 0) _dummyList = [ea] _dummyList[:] = [] del _dummyList _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Event_ancestor_add(self): e = libsbml.Event(2,4) m = libsbml.Model(2,4) t = libsbml.Trigger(2,4) t.setMath(libsbml.parseFormula("true")) e.setTrigger(t) e.createEventAssignment() m.addEvent(e) e = None lo = m.getListOfEvents() obj = m.getEvent(0) self.assert_( obj.getAncestorOfType(libsbml.SBML_MODEL) == m ) self.assert_( obj.getAncestorOfType(libsbml.SBML_LIST_OF) == lo ) self.assert_( obj.getAncestorOfType(libsbml.SBML_DOCUMENT) == None ) self.assert_( obj.getAncestorOfType(libsbml.SBML_COMPARTMENT) == None ) pass
def test_Event_createWithNS(self): xmlns = libsbml.XMLNamespaces() xmlns.add( "http://www.sbml.org", "testsbml") sbmlns = libsbml.SBMLNamespaces(2,4) sbmlns.addNamespaces(xmlns) object = libsbml.Event(sbmlns) self.assert_( object.getTypeCode() == libsbml.SBML_EVENT ) self.assert_( object.getMetaId() == "" ) self.assert_( object.getNotes() == None ) self.assert_( object.getAnnotation() == None ) self.assert_( object.getLevel() == 2 ) self.assert_( object.getVersion() == 4 ) self.assert_( object.getNamespaces() != None ) self.assert_( object.getNamespaces().getLength() == 2 ) _dummyList = [ object ]; _dummyList[:] = []; del _dummyList pass
def test_Event_setTimeUnits(self): E1 = libsbml.Event(2,1) units = "second"; E1.setTimeUnits(units) self.assert_(( units == E1.getTimeUnits() )) self.assertEqual( True, E1.isSetTimeUnits() ) if (E1.getTimeUnits() == units): pass E1.setTimeUnits(E1.getTimeUnits()) self.assert_(( units == E1.getTimeUnits() )) E1.setTimeUnits("") self.assertEqual( False, E1.isSetTimeUnits() ) if (E1.getTimeUnits() != None): pass _dummyList = [ E1 ]; _dummyList[:] = []; del _dummyList pass
def test_Model_addEvent2(self): m = libsbml.Model(2, 2) e = libsbml.Event(2, 1) t = libsbml.Trigger(2, 1) t.setMath(libsbml.parseFormula("true")) e.setTrigger(t) e.createEventAssignment() i = m.addEvent(e) self.assert_(i == libsbml.LIBSBML_VERSION_MISMATCH) self.assert_(m.getNumEvents() == 0) _dummyList = [e] _dummyList[:] = [] del _dummyList _dummyList = [m] _dummyList[:] = [] del _dummyList pass
def test_Event_full(self): math1 = libsbml.parseFormula("0") trigger = libsbml.Trigger(2,4) math = libsbml.parseFormula("0") e = libsbml.Event(2,4) ea = libsbml.EventAssignment(2,4) ea.setVariable( "k") ea.setMath(math) trigger.setMath(math1) e.setTrigger(trigger) e.setId( "e1") e.setName( "Set k2 to zero when P1 <= t") e.addEventAssignment(ea) self.assert_( e.getNumEventAssignments() == 1 ) self.assert_( e.getEventAssignment(0) != ea ) _dummyList = [ math ]; _dummyList[:] = []; del _dummyList _dummyList = [ e ]; _dummyList[:] = []; del _dummyList pass
def test_Event_addEventAssignment1(self): e = libsbml.Event(2, 2) ea = libsbml.EventAssignment(2, 2) i = e.addEventAssignment(ea) self.assert_(i == libsbml.LIBSBML_INVALID_OBJECT) ea.setVariable("f") i = e.addEventAssignment(ea) self.assert_(i == libsbml.LIBSBML_INVALID_OBJECT) ea.setMath(libsbml.parseFormula("a-n")) i = e.addEventAssignment(ea) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_(e.getNumEventAssignments() == 1) _dummyList = [ea] _dummyList[:] = [] del _dummyList _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Model_addEvent1(self): m = libsbml.Model(2, 2) e = libsbml.Event(2, 2) t = libsbml.Trigger(2, 2) i = m.addEvent(e) self.assert_(i == libsbml.LIBSBML_INVALID_OBJECT) t.setMath(libsbml.parseFormula("true")) e.setTrigger(t) i = m.addEvent(e) self.assert_(i == libsbml.LIBSBML_INVALID_OBJECT) e.createEventAssignment() i = m.addEvent(e) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_(m.getNumEvents() == 1) _dummyList = [e] _dummyList[:] = [] del _dummyList _dummyList = [m] _dummyList[:] = [] del _dummyList pass
def test_L3_Event_createWithNS(self): xmlns = libsbml.XMLNamespaces() xmlns.add("http://www.sbml.org", "testsbml") sbmlns = libsbml.SBMLNamespaces(3, 1) sbmlns.addNamespaces(xmlns) e = libsbml.Event(sbmlns) self.assert_(e.getTypeCode() == libsbml.SBML_EVENT) self.assert_(e.getMetaId() == "") self.assert_(e.getNotes() == None) self.assert_(e.getAnnotation() == None) self.assert_(e.getLevel() == 3) self.assert_(e.getVersion() == 1) self.assert_(e.getNamespaces() != None) self.assert_(e.getNamespaces().getLength() == 2) self.assert_(e.getId() == "") self.assert_(e.getName() == "") self.assert_(e.getUseValuesFromTriggerTime() == True) self.assertEqual(False, e.isSetId()) self.assertEqual(False, e.isSetName()) self.assertEqual(False, e.isSetUseValuesFromTriggerTime()) _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Event_addEventAssignment4(self): e = libsbml.Event(2, 2) ea = libsbml.EventAssignment(2, 2) ea.setVariable("c") ea.setMath(libsbml.parseFormula("a-n")) ea1 = libsbml.EventAssignment(2, 2) ea1.setVariable("c") ea1.setMath(libsbml.parseFormula("a-n")) i = e.addEventAssignment(ea) self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS) self.assert_(e.getNumEventAssignments() == 1) i = e.addEventAssignment(ea1) self.assert_(i == libsbml.LIBSBML_DUPLICATE_OBJECT_ID) self.assert_(e.getNumEventAssignments() == 1) _dummyList = [ea] _dummyList[:] = [] del _dummyList _dummyList = [ea1] _dummyList[:] = [] del _dummyList _dummyList = [e] _dummyList[:] = [] del _dummyList pass
def test_Event(self): e = libsbml.Event(2, 4) self.assertEqual(True, e.hasRequiredAttributes()) e = None pass
def test_Event_constructor(self): s = None try: s = libsbml.Event(2, 1) s = libsbml.Event(2, 2) s = libsbml.Event(2, 3) s = libsbml.Event(2, 4) s = libsbml.Event(3, 1) s = libsbml.Event(self.SN21) s = libsbml.Event(self.SN22) s = libsbml.Event(self.SN23) s = libsbml.Event(self.SN24) s = libsbml.Event(self.SN31) except ValueError: inst = sys.exc_info()[1] s = None pass self.assert_(s != None) msg = "" try: s = libsbml.Event(1, 1) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG) msg = "" try: s = libsbml.Event(1, 2) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG) msg = "" try: s = libsbml.Event(9, 9) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG) msg = "" try: s = libsbml.Event(self.SN11) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG) msg = "" try: s = libsbml.Event(self.SN12) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG) try: s = libsbml.Event(self.SN99) except ValueError: inst = sys.exc_info()[1] msg = inst.args[0] pass self.assertEqual(msg, self.ERR_MSG)
def toSBMLString(net): metaId = 0 try: m = libsbml.Model(net.id) except NotImplementedError: m = libsbml.Model(sbml_level, sbml_version) m.setId(net.id) m.setName(net.name) m.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 for id, fd in list(net.functionDefinitions.items()): try: sfd = libsbml.FunctionDefinition(id) except: sfd = libsbml.FunctionDefinition(sbml_level, sbml_version) sfd.setId(id) sfd.setName(fd.name) formula = fd.math formula = formula.replace('**', '^') formula = 'lambda(%s, %s)' % (','.join(fd.variables), formula) sfd.setMath(libsbml.parseFormula(formula)) sfd.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addFunctionDefinition(sfd) for id, c in list(net.compartments.items()): try: sc = libsbml.Compartment(id) except NotImplementedError: sc = libsbml.Compartment(sbml_level, sbml_version) sc.setId(id) sc.setName(c.name) sc.setConstant(c.is_constant) sc.setSize(c.initialValue) sc.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addCompartment(sc) for id, s in list(net.species.items()): try: ss = libsbml.Species(id) except NotImplementedError: ss = libsbml.Species(sbml_level, sbml_version) ss.setId(id) ss.setName(s.name) ss.setCompartment(s.compartment) if s.initialValue is not None and not isinstance(s.initialValue, str): ss.setInitialConcentration(s.initialValue) ss.setBoundaryCondition(s.is_boundary_condition) ss.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addSpecies(ss) for id, p in list(net.parameters.items()): try: sp = libsbml.Parameter(id) except NotImplementedError: sp = libsbml.Parameter(sbml_level, sbml_version) sp.setId(id) sp.setName(p.name) if p.initialValue is not None: sp.setValue(p.initialValue) sp.setConstant(p.is_constant) sp.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addParameter(sp) for id, r in list(net.rateRules.items()): try: sr = libsbml.RateRule() except NotImplementedError: sr = libsbml.RateRule(sbml_level, sbml_version) sr.setVariable(id) formula = r.replace('**', '^') sr.setMath(libsbml.parseFormula(formula)) sr.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addRule(sr) for id, r in list(net.assignmentRules.items()): try: sr = libsbml.AssignmentRule() except NotImplementedError: sr = libsbml.AssignmentRule(sbml_level, sbml_version) sr.setVariable(id) formula = r.replace('**', '^') sr.setMath(libsbml.parseFormula(formula)) sr.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addRule(sr) for r, r in list(net.algebraicRules.items()): try: sr = libsbml.AlgebraicRule() except NotImplementedError: sr = libsbml.AlgebraicRule(sbml_level, sbml_version) formula = r.replace('**', '^') sr.setMath(libsbml.parseFormula(formula)) sr.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addRule(sr) for id, rxn in list(net.reactions.items()): # Need to identify modifiers in kinetic law and add them to # stoichiometry kl_vars = ExprManip.extract_vars(rxn.kineticLaw) species_in_kl = kl_vars.intersection(list(net.species.keys())) for s in species_in_kl: if s not in rxn.stoichiometry: rxn.stoichiometry[s] = 0 try: srxn = libsbml.Reaction(id) except NotImplementedError: srxn = libsbml.Reaction(sbml_level, sbml_version) srxn.setId(id) srxn.setName(rxn.name) # Handle the case where the model was originally read in from an # SBML file, so that the reactants and products of the Reaction # object are explicitly set. if rxn.reactant_stoichiometry != None and \ rxn.product_stoichiometry != None: for rid, stoich_list in list(rxn.reactant_stoichiometry.items()): for stoich in stoich_list: rxn_add_stoich(srxn, rid, -float(stoich), is_product=False) for rid, stoich_list in list(rxn.product_stoichiometry.items()): for stoich in stoich_list: rxn_add_stoich(srxn, rid, stoich, is_product=True) # Handle the case where the model was created using the SloppyCell # API, in which case reactants and products are inferred from their # stoichiometries else: for rid, stoich in list(rxn.stoichiometry.items()): rxn_add_stoich(srxn, rid, stoich) formula = rxn.kineticLaw.replace('**', '^') try: kl = libsbml.KineticLaw(formula) except NotImplementedError: kl = libsbml.KineticLaw(sbml_level, sbml_version) kl.setFormula(formula) srxn.setKineticLaw(kl) srxn.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addReaction(srxn) for id, e in list(net.events.items()): try: se = libsbml.Event(id) except NotImplementedError: se = libsbml.Event(sbml_level, sbml_version) se.setId(id) se.setName(e.name) formula = e.trigger.replace('**', '^') formula = formula.replace('and_func(', 'and(') formula = formula.replace('or_func(', 'or(') ast = libsbml.parseFormula(formula) if ast is None: raise ValueError('Problem parsing event trigger: %s. Problem may ' 'be use of relational operators (< and >) rather ' 'than libsbml-friendly functions lt and gt.' % formula) try: se.setTrigger(ast) except TypeError: try: trigger = libsbml.Trigger(ast) except NotImplementedError: trigger = libsbml.Trigger(sbml_level, sbml_version) trigger.setMath(ast) se.setTrigger(trigger) formula = str(e.delay).replace('**', '^') try: se.setDelay(libsbml.parseFormula(formula)) except TypeError: try: se.setDelay(libsbml.Delay(libsbml.parseFormula(formula))) except NotImplementedError: delay = libsbml.Delay(sbml_level, sbml_version) delay.setMath(libsbml.parseFormula(formula)) se.setDelay(delay) for varId, formula in list(e.event_assignments.items()): try: sea = libsbml.EventAssignment() except NotImplementedError: sea = libsbml.EventAssignment(sbml_level, sbml_version) sea.setVariable(varId) formula = str(formula).replace('**', '^') formula = formula.replace('and_func(', 'and(') formula = formula.replace('or_func(', 'or(') ast = libsbml.parseFormula(formula) replaceTime(ast) sea.setMath(ast) se.addEventAssignment(sea) se.setMetaId('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addEvent(se) for id, con in list(net.constraints.items()): try: scon = libsbml.Constraint() except NotImplementedError: scon = libsbml.Constraint(sbml_level, sbml_version) scon.setId(con.id) scon.setName(con.name) formula = con.trigger.replace('**', '^') ast = libsbml.parseFormula(formula) if ast is None: raise ValueError( 'Problem parsing constraint math: %s. Problem may ' 'be use of relational operators (< and >) rather ' 'than libsbml-friendly functions lt and gt.' % formula) scon.setMath(ast) se.setcon('SloppyCell_{0:05d}'.format(metaId)) metaId += 1 m.addConstraint(scon) d = libsbml.SBMLDocument(sbml_level, sbml_version) d.setModel(m) sbmlStr = libsbml.writeSBMLToString(d) return sbmlStr
def setUp(self): self.E = libsbml.Event(2,4) if (self.E == None): pass pass