Example #1
0
 def test_internal_consistency_check_99904_param(self):
   d = libsbml.SBMLDocument(2,4)
   p = libsbml.Parameter(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("cc")
   p.setId("p")
   p.setMetaId("mmm")
   m.addParameter(p)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #2
0
 def test_internal_consistency_check_99904_react(self):
   d = libsbml.SBMLDocument(2,4)
   r = libsbml.Reaction(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("cc")
   r.setId("r")
   r.setMetaId("mmm")
   m.addReaction(r)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #3
0
 def test_internal_consistency_check_20306(self):
   d = libsbml.SBMLDocument(3,1)
   m = d.createModel()
   fd = m.createFunctionDefinition()
   fd.setId("fd")
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 20306 )
   ast = libsbml.parseFormula("lambda(x, 2*x)")
   fd.setMath(ast)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #4
0
 def test_internal_consistency_check_99901(self):
   d = libsbml.SBMLDocument(2,4)
   c = libsbml.Compartment(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   dim = 2
   c.setSpatialDimensions(dim)
   c.setId("c")
   m.addCompartment(c)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 10103 )
   d = None
   pass  
Example #5
0
 def test_internal_consistency_check_21007(self):
   d = libsbml.SBMLDocument(3,1)
   m = d.createModel()
   r = m.createConstraint()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 21007 )
   ast = libsbml.parseFormula("lambda(x, 2*x)")
   r.setMath(ast)
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #6
0
 def test_internal_consistency_check_99905_unit(self):
   d = libsbml.SBMLDocument(2,4)
   u = libsbml.Unit(2,4)
   d.setLevelAndVersion(2,2,False)
   m = d.createModel()
   ud = m.createUnitDefinition()
   ud.setId("ud")
   u.setKind(libsbml.UNIT_KIND_MOLE)
   u.setSBOTerm(9)
   ud.addUnit(u)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #7
0
 def test_SBMLConvert_convertFromL3_persistent(self):
     d = libsbml.SBMLDocument(3, 1)
     m = d.createModel()
     e = m.createEvent()
     t = e.createTrigger()
     t.setPersistent(False)
     self.assert_(d.setLevelAndVersion(1, 1, False) == False)
     self.assert_(d.setLevelAndVersion(1, 2, False) == True)
     self.assert_(d.setLevelAndVersion(2, 1, False) == True)
     self.assert_(d.setLevelAndVersion(2, 2, False) == True)
     self.assert_(d.setLevelAndVersion(2, 3, False) == True)
     self.assert_(d.setLevelAndVersion(2, 4, False) == True)
     self.assert_(d.setLevelAndVersion(3, 1, False) == True)
     pass
Example #8
0
 def test_internal_consistency_check_99904_rule_alg(self):
   d = libsbml.SBMLDocument(2,4)
   r = libsbml.AlgebraicRule(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("cc")
   r.setMetaId("mmm")
   r.setFormula("2")
   m.addRule(r)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #9
0
 def test_RDFAnnotation_testMissingMetaId(self):
     doc = libsbml.SBMLDocument(3, 1)
     model = doc.createModel()
     self.assert_(model != None)
     model.setId("test1")
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     term.addResource("testResource")
     term.setModelQualifierType(libsbml.BQM_IS)
     model.setMetaId("t1")
     model.addCVTerm(term)
     model.setMetaId("")
     test = model.toSBML()
     self.assert_(test == "<model id=\"test1\"/>")
     pass
 def test_internal_consistency_check_99903(self):
   d = libsbml.SBMLDocument(2,4)
   c = libsbml.Compartment(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c.setConstant(True)
   c.setId("c")
   m.addCompartment(c)
   r = m.createAssignmentRule()
   r.setVariable("c")
   r.setFormula("2*3")
   errors = d.checkInternalConsistency()
   self.assert_( errors == 3 )
   d = None
   pass  
Example #11
0
 def test_SBMLConvert_convertToL2v4_DuplicateAnnotations_model(self):
   d = libsbml.SBMLDocument(2,1)
   m = d.createModel()
   annotation =  "<rdf/>\n<rdf/>";
   i = (m).setAnnotation(annotation)
   self.assert_( d.getLevel() == 2 )
   self.assert_( d.getVersion() == 1 )
   self.assert_( (m).getAnnotation().getNumChildren() == 2 )
   self.assert_( d.setLevelAndVersion(2,4,True) == True )
   self.assert_( d.getLevel() == 2 )
   self.assert_( d.getVersion() == 4 )
   m = d.getModel()
   self.assert_( (m).getAnnotation().getNumChildren() == 1 )
   _dummyList = [ d ]; _dummyList[:] = []; del _dummyList
   pass  
 def test_internal_consistency_check_20805(self):
   d = libsbml.SBMLDocument(3,1)
   m = d.createModel()
   ia = m.createInitialAssignment()
   ast = libsbml.parseFormula("lambda(x, 2*x)")
   ia.setMath(ast)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 20805 )
   ia.setSymbol("fd")
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_internal_consistency_check_20908(self):
   d = libsbml.SBMLDocument(3,1)
   m = d.createModel()
   r = m.createAssignmentRule()
   ast = libsbml.parseFormula("lambda(x, 2*x)")
   r.setMath(ast)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 20908 )
   r.setVariable("fd")
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_internal_consistency_check_99904_unitdef(self):
   d = libsbml.SBMLDocument(2,4)
   u = libsbml.UnitDefinition(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("cc")
   u.setId("ud")
   u.setMetaId("mmm")
   u.createUnit()
   m.addUnitDefinition(u)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_internal_consistency_check_99911_rule_rate(self):
   d = libsbml.SBMLDocument(2,4)
   m = d.createModel()
   p = m.createParameter()
   p.setId("p")
   p.setConstant(False)
   r = libsbml.RateRule(2,4)
   d.setLevelAndVersion(2,1,False)
   r.setVariable("p")
   r.setSBOTerm(2)
   m.addRule(r)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_SBMLConvert_convertToL3_unit(self):
     d = libsbml.SBMLDocument(2, 2)
     m = d.createModel()
     sid = "C"
     ud = m.createUnitDefinition()
     ud.setId(sid)
     u = ud.createUnit()
     u.setKind(libsbml.UNIT_KIND_MOLE)
     self.assert_(d.setLevelAndVersion(3, 1, False) == True)
     u1 = m.getUnitDefinition(0).getUnit(0)
     self.assert_(u1.hasRequiredAttributes() == 1)
     _dummyList = [d]
     _dummyList[:] = []
     del _dummyList
     pass
Example #17
0
def save_model(model, filename):
    """ Save a model to an SBML file.

    Arguments:
        model (Model): model
        filename (str): file path
    """

    document = sb.SBMLDocument(DEFAULT_SBML_LEVEL, DEFAULT_SBML_VERSION)
    sbml_model = document.createModel(model.id)
    save_compartments(model, sbml_model)
    save_metabolites(model, sbml_model)
    save_reactions(model, sbml_model)
    writer = sb.SBMLWriter()
    writer.writeSBML(document, filename)
 def test_SBMLConvert_convertToL2_SBMLDocument(self):
     d = libsbml.SBMLDocument(1, 2)
     self.assert_(d.setLevelAndVersion(2, 1, False) == True)
     self.assert_(d.getLevel() == 2)
     self.assert_(d.getVersion() == 1)
     self.assert_(d.setLevelAndVersion(2, 2, False) == True)
     self.assert_(d.getLevel() == 2)
     self.assert_(d.getVersion() == 2)
     self.assert_(d.setLevelAndVersion(2, 3, False) == True)
     self.assert_(d.getLevel() == 2)
     self.assert_(d.getVersion() == 3)
     _dummyList = [d]
     _dummyList[:] = []
     del _dummyList
     pass
 def test_internal_consistency_check_99904_species(self):
   d = libsbml.SBMLDocument(2,4)
   s = libsbml.Species(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("c")
   s.setCompartment("c")
   s.setId("s")
   s.setMetaId("mmm")
   m.addSpecies(s)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
Example #20
0
 def test_SBMLConvert_convertToL1_Species_Amount(self):
   d = libsbml.SBMLDocument(2,1)
   m = d.createModel()
   sid =  "C";
   c = libsbml.Compartment(2,4)
   s = libsbml.Species(2,4)
   c.setId(sid)
   m.addCompartment(c)
   s.setCompartment(sid)
   s.setInitialAmount(2.34)
   m.addSpecies(s)
   self.assert_( d.setLevelAndVersion(1,2,True) == True )
   self.assert_( s.getInitialAmount() == 2.34 )
   _dummyList = [ d ]; _dummyList[:] = []; del _dummyList
   pass  
 def test_internal_consistency_check_99924(self):
   d = libsbml.SBMLDocument(2,4)
   u = libsbml.Unit(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("cc")
   ud = m.createUnitDefinition()
   ud.setId("ud")
   u.setKind(libsbml.UNIT_KIND_MOLE)
   u.setMultiplier(9)
   ud.addUnit(u)
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_internal_consistency_check_99915_rate(self):
   d = libsbml.SBMLDocument(2,4)
   d.setLevelAndVersion(1,2,False)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("c")
   c.setConstant(False)
   r = m.createRateRule()
   r.setL1TypeCode(libsbml.SBML_SPECIES_CONCENTRATION_RULE)
   r.setFormula("2")
   r.setVariable("c")
   r.setUnits("mmm")
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass  
 def test_SBMLConvert_convertFromL3_conversionFactor(self):
     d = libsbml.SBMLDocument(3, 1)
     m = d.createModel()
     sid = "P"
     m.setConversionFactor(sid)
     c = m.createParameter()
     c.setId(sid)
     c.setConstant(True)
     self.assert_(d.setLevelAndVersion(1, 1, True) == False)
     self.assert_(d.setLevelAndVersion(1, 2, True) == False)
     self.assert_(d.setLevelAndVersion(2, 1, True) == False)
     self.assert_(d.setLevelAndVersion(2, 2, True) == False)
     self.assert_(d.setLevelAndVersion(2, 3, True) == False)
     self.assert_(d.setLevelAndVersion(2, 4, True) == False)
     self.assert_(d.setLevelAndVersion(3, 1, True) == True)
     pass
Example #24
0
def simple_sbml_model():
    """Some testmodel"""
    document = libsbml.SBMLDocument(3, 1)
    model = document.createModel()
    model.setTimeUnits("second")
    model.setExtentUnits("mole")
    model.setSubstanceUnits('mole')
    c1 = model.createCompartment()
    c1.setId('C1')
    model.addCompartment(c1)
    s1 = model.createSpecies()
    s1.setId('S1')
    s1.setCompartment('C1')
    model.addSpecies(s1)

    return document, model
Example #25
0
def test_constant_species_to_parameters():
    document = libsbml.SBMLDocument(3, 1)
    model = document.createModel()
    model.setTimeUnits("second")
    model.setExtentUnits("mole")
    model.setSubstanceUnits('mole')

    s = model.createSpecies()
    s.setId('x1')
    s.setConstant(True)
    s.setInitialConcentration(1.0)

    petab.constant_species_to_parameters(model)

    assert len(list(model.getListOfParameters())) == 1
    assert len(list(model.getListOfSpecies())) == 0
Example #26
0
def create_sbml_model(compartment_id="default",
                      time_units='second',
                      extent_units='mole',
                      substance_units='mole',
                      length_units='metre',
                      area_units='square_metre',
                      volume_units='litre',
                      volume=1e-6,
                      model_id=None):
    '''
    Creates an SBML Level 3 Version 2 model with some fixed standard settings.
    Returns the SBMLDocument and the Model object as a tuple.
    Refer to python-libsbml for more information on SBML API.
    '''
    document = libsbml.SBMLDocument(3, 2)
    model = document.createModel()
    if model_id is None:
        model_id = 'biocrnpyler_' + str(np.random.randint(1e6))
    model.setId(model_id)
    model.setName(model_id)
    # Define units for area (not used, but keeps COPASI from complaining)
    unitdef = model.createUnitDefinition()
    unitdef.setId('square_metre')
    unit = unitdef.createUnit()
    unit.setKind(libsbml.UNIT_KIND_METRE)
    unit.setExponent(2)
    unit.setScale(0)
    unit.setMultiplier(1)

    # Set up required units and containers
    model.setTimeUnits(time_units)  # set model-wide time units
    model.setExtentUnits(extent_units)  # set model units of extent
    model.setSubstanceUnits(substance_units)  # set model substance units
    model.setLengthUnits(length_units)  # area units (never used?)
    model.setAreaUnits(area_units)  # area units (never used?)
    model.setVolumeUnits(volume_units)  # default volume unit

    # Define the default compartment
    compartment = model.createCompartment()
    compartment.setId(compartment_id)
    compartment.setName(compartment_id)
    compartment.setConstant(True)  # keep compartment size constant
    compartment.setSpatialDimensions(3)  # 3 dimensional compartment
    compartment.setVolume(volume)  # 1 microliter

    # Returning document is enough. document.getModel() gives the model, and model.getCompartment(0) gives the compartment.
    return document, model
Example #27
0
def create_sbml_model(compartment_id="default",
                      time_units='second',
                      extent_units='mole',
                      substance_units='mole',
                      length_units='metre',
                      area_units='square_metre',
                      volume_units='litre',
                      volume=1e-6,
                      model_id=None,
                      **kwargs):
    """Creates an SBML Level 3 Version 2 model with some fixed standard settings.
    Refer to python-libsbml for more information on SBML API.
    :param compartment_id:
    :param time_units:
    :param extent_units:
    :param substance_units:
    :param length_units:
    :param area_units:
    :param volume_units:
    :param volume:
    :param model_id:
    :return:  the SBMLDocument and the Model object as a tuple
    """
    document = libsbml.SBMLDocument(3, 2)
    model = document.createModel()
    if model_id is None:
        model_id = 'biocrnpyler_' + str(randint(1, 1e6))
    model.setId(model_id)
    model.setName(model_id)
    # Define units for area (not used, but keeps COPASI from complaining)
    unitdef = model.createUnitDefinition()
    unitdef.setId('square_metre')
    unit = unitdef.createUnit()
    unit.setKind(libsbml.UNIT_KIND_METRE)
    unit.setExponent(2)
    unit.setScale(0)
    unit.setMultiplier(1)

    # Set up required units and containers
    model.setTimeUnits(time_units)  # set model-wide time units
    model.setExtentUnits(extent_units)  # set model units of extent
    model.setSubstanceUnits(substance_units)  # set model substance units
    model.setLengthUnits(length_units)  # area units (never used?)
    model.setAreaUnits(area_units)  # area units (never used?)
    model.setVolumeUnits(volume_units)  # default volume unit

    return document, model
Example #28
0
def template_doc_update(model_id):
    """ Create template update model.

    :param model_id: model identifier
    :return: SBMLDocument
    """
    sbmlns = libsbml.SBMLNamespaces(SBML_LEVEL, SBML_VERSION, 'comp',
                                    SBML_COMP_VERSION)
    doc = libsbml.SBMLDocument(sbmlns)
    doc.setPackageRequired(SBML_COMP_NAME, True)

    # model
    model = doc.createModel()
    model.setId("{}_update".format(model_id))
    model.setName("{} (UPDATE)".format(model_id))
    model.setSBOTerm(comp.SBO_CONTINOUS_FRAMEWORK)
    return doc
Example #29
0
def test_event() -> None:
    objects = [
        Parameter(sid="p1", value=0.0, constant=False),
        Event(sid="e1", trigger="time >= 10", assignments={"p1": 10.0}),
    ]

    doc = libsbml.SBMLDocument(3, 1)
    model = doc.createModel()
    factory.create_objects(model, obj_iter=objects)

    events = model.getListOfEvents()
    assert len(events) == 1
    e = model.getEvent("e1")
    assert e is not None
    assert e.getId() == "e1"
    assignments = e.getListOfEventAssignments()
    assert len(assignments) == 1
 def test_internal_consistency_check_20623(self):
   d = libsbml.SBMLDocument(3,1)
   m = d.createModel()
   c = m.createCompartment()
   c.setId("c")
   c.setConstant(True)
   s = m.createSpecies()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 5 )
   self.assert_( d.getError(0).getErrorId() == 20623 )
   self.assert_( d.getError(1).getErrorId() == 20614 )
   self.assert_( d.getError(2).getErrorId() == 20623 )
   self.assert_( d.getError(3).getErrorId() == 20623 )
   self.assert_( d.getError(4).getErrorId() == 20623 )
   s.setId("s")
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 4 )
   self.assert_( d.getError(0).getErrorId() == 20614 )
   self.assert_( d.getError(1).getErrorId() == 20623 )
   self.assert_( d.getError(2).getErrorId() == 20623 )
   self.assert_( d.getError(3).getErrorId() == 20623 )
   s.setCompartment("c")
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 3 )
   self.assert_( d.getError(0).getErrorId() == 20623 )
   self.assert_( d.getError(1).getErrorId() == 20623 )
   self.assert_( d.getError(2).getErrorId() == 20623 )
   s.setHasOnlySubstanceUnits(True)
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 2 )
   self.assert_( d.getError(0).getErrorId() == 20623 )
   self.assert_( d.getError(1).getErrorId() == 20623 )
   s.setBoundaryCondition(True)
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 1 )
   self.assert_( d.getError(0).getErrorId() == 20623 )
   s.setConstant(True)
   d.getErrorLog().clearLog()
   errors = d.checkInternalConsistency()
   self.assert_( errors == 0 )
   d = None
   pass