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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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