コード例 #1
0
 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  
コード例 #2
0
 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  
コード例 #3
0
 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  
コード例 #4
0
 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  
コード例 #5
0
 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
コード例 #6
0
 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  
コード例 #7
0
 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
コード例 #8
0
 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
コード例 #9
0
 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
コード例 #10
0
 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  
コード例 #11
0
 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  
コード例 #12
0
 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  
コード例 #13
0
 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  
コード例 #14
0
 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
コード例 #15
0
 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
コード例 #16
0
 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  
コード例 #17
0
ファイル: TestEvent.py プロジェクト: gitter-badger/sbmlsolver
 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  
コード例 #18
0
ファイル: TestEvent.py プロジェクト: gitter-badger/sbmlsolver
 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  
コード例 #19
0
 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
コード例 #20
0
ファイル: TestEvent.py プロジェクト: gitter-badger/sbmlsolver
 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  
コード例 #21
0
 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
コード例 #22
0
 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
コード例 #23
0
 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
コード例 #24
0
 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
コード例 #25
0
 def test_Event(self):
     e = libsbml.Event(2, 4)
     self.assertEqual(True, e.hasRequiredAttributes())
     e = None
     pass
コード例 #26
0
    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)
コード例 #27
0
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
コード例 #28
0
ファイル: TestEvent.py プロジェクト: gitter-badger/sbmlsolver
 def setUp(self):
   self.E = libsbml.Event(2,4)
   if (self.E == None):
     pass    
   pass