Ejemplo n.º 1
0
 def test_CVTerm_createFromNode(self):
     qual_triple = libsbml.XMLTriple("is", "", "bqbiol")
     bag_triple = libsbml.XMLTriple()
     li_triple = libsbml.XMLTriple()
     att = libsbml.XMLAttributes()
     att.add("", "This is my resource")
     att1 = libsbml.XMLAttributes()
     li_token = libsbml.XMLToken(li_triple, att)
     bag_token = libsbml.XMLToken(bag_triple, att1)
     qual_token = libsbml.XMLToken(qual_triple, att1)
     li = libsbml.XMLNode(li_token)
     bag = libsbml.XMLNode(bag_token)
     node = libsbml.XMLNode(qual_token)
     bag.addChild(li)
     node.addChild(bag)
     term = libsbml.CVTerm(node)
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_IS)
     xa = term.getResources()
     self.assert_(xa.getLength() == 1)
     self.assert_(("rdf:resource" == xa.getName(0)))
     self.assert_(("This is my resource" == xa.getValue(0)))
     _dummyList = [qual_triple]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [bag_triple]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [li_triple]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [li_token]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [bag_token]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [qual_token]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [att]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [att1]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [node]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [bag]
     _dummyList[:] = []
     del _dummyList
     _dummyList = [li]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 2
0
def reactionAnnotationsToSBML(sbmlDocument, annotationDict):
    '''
    Receives a series of annotations associated with their associated species
    and fills in a corresponding sbmlDocument with this information
    '''
    for reaction in sbmlDocument.getModel().getListOfReactions():
        transformedName = reaction.getName()
        if len(annotationDict[transformedName]) == 0:
            continue
        for element in annotationDict[transformedName]:
            term = libsbml.CVTerm()
            if element.startswith('BQB'):
                term.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
                term.setBiologicalQualifierType(bioqual.index(element))
            else:
                term.setQualifierType(libsbml.MODEL_QUALIFIER)
                term.setModelQualifierType(modqual.index(element))
            for annotation in annotationDict[transformedName][element]:
                term.addResource(annotation)
            reaction.addCVTerm(term)

        annotation = libsbml.RDFAnnotationParser.createAnnotation()
        cvterms = libsbml.RDFAnnotationParser.createCVTerms(reaction)
        rdfAnnotation = libsbml.RDFAnnotationParser.createRDFAnnotation()
        rdfAnnotation.addChild(cvterms)
        annotation.addChild(rdfAnnotation)
        reaction.setAnnotation(annotation)
 def test_CVTerm_setBiolQualifierType(self):
     term = libsbml.CVTerm(libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(term.getModelQualifierType() == libsbml.BQM_UNKNOWN)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_UNKNOWN)
     i = term.setBiologicalQualifierType(libsbml.BQB_IS)
     self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS)
     self.assert_(term.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_IS)
     self.assert_(term.getModelQualifierType() == libsbml.BQM_UNKNOWN)
     i = term.setQualifierType(libsbml.MODEL_QUALIFIER)
     self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     self.assert_(term.getModelQualifierType() == libsbml.BQM_UNKNOWN)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_UNKNOWN)
     i = term.setBiologicalQualifierType(libsbml.BQB_IS)
     self.assert_(i == libsbml.LIBSBML_INVALID_ATTRIBUTE_VALUE)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     self.assert_(term.getModelQualifierType() == libsbml.BQM_UNKNOWN)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_UNKNOWN)
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 4
0
    def annotate_sbase(sbase: libsbml.SBase, annotation: Annotation):
        """ Annotate SBase based on given annotation data

        :param sbase: libsbml.SBase
        :param annotation: Annotation
        :return:
        """
        qualifier, resource = annotation.qualifier.value, annotation.resource
        cv = libsbml.CVTerm()  # type: libsbml.CVTerm

        # set correct type of qualifier
        if qualifier.startswith("BQB"):
            cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
            sbml_qualifier = ModelAnnotator.get_SBMLQualifier(qualifier)
            cv.setBiologicalQualifierType(sbml_qualifier)
        elif qualifier.startswith('BQM'):
            cv.setQualifierType(libsbml.MODEL_QUALIFIER)
            sbml_qualifier = ModelAnnotator.get_SBMLQualifier(qualifier)
            cv.setModelQualifierType(sbml_qualifier)
        else:
            LOGGER.error('Unsupported qualifier: {}'.format(qualifier))

        cv.addResource(resource)

        # meta id has to be set
        if not sbase.isSetMetaId():
            sbase.setMetaId(utils.create_metaid(sbase))

        success = sbase.addCVTerm(cv)

        if success != 0:
            LOGGER.error("RDF not written: ", success)
            LOGGER.error(libsbml.OperationReturnValue_toString(success))
            LOGGER.error("{}, {}, {}".format(object, qualifier, resource))
Ejemplo n.º 5
0
def speciesAnnotationsToSBML(sbmlDocument, annotationDict, speciesNameDict):
    """
    Receives a series of annotations associated with their associated species
    and fills in a corresponding sbmlDocument with this information
    """
    for species in sbmlDocument.getModel().getListOfSpecies():
        transformedName = speciesNameDict[species.getName()]
        if len(annotationDict[transformedName]) == 0:
            species.unsetCVTerms()
            continue
        for element in annotationDict[transformedName]:
            term = libsbml.CVTerm()
            if element.startswith("BQB"):
                term.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
                term.setBiologicalQualifierType(bioqual.index(element))
            else:
                term.setQualifierType(libsbml.MODEL_QUALIFIER)
                term.setModelQualifierType(modqual.index(element))
            for annotation in annotationDict[transformedName][element]:
                term.addResource(annotation)
            species.addCVTerm(term)

        annotation = libsbml.RDFAnnotationParser.createAnnotation()
        cvterms = libsbml.RDFAnnotationParser.createCVTerms(species)
        rdfAnnotation = libsbml.RDFAnnotationParser.createRDFAnnotation()
        if cvterms:
            rdfAnnotation.addChild(cvterms)
        else:
            print(species)
        annotation.addChild(rdfAnnotation)
        species.setAnnotation(annotation)
Ejemplo n.º 6
0
    def set_annotation(self, element, annotation, urn, elementtype):
        '''
        Set an annotation for a given SBML element.

        Parameters
        ----------
        element : libsbml object
           Element that needs to be annotated.
        annotation : str
           The identifier part of the annotation string.
        urn : str
           URN that links to the external web resource.
        elementtype : str
           What kind of element needs to be annotated? Model or Biological?
        '''
        element.setMetaId(element.getId() + "_meta")
        cv_term = libsbml.CVTerm()
        if elementtype == 'Model':
            cv_term.setQualifierType(0)
            cv_term.setModelQualifierType(libsbml.BQB_IS)
        else:
            cv_term.setQualifierType(1)
            cv_term.setBiologicalQualifierType(libsbml.BQB_IS)

        resource_term = "http://identifiers.org/" + urn + '/' + annotation
        cv_term.addResource(resource_term)

        return cv_term
Ejemplo n.º 7
0
 def test_CVTerm_create(self):
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
 def test_CVTerm_copyConstructor(self):
     CVTerm1 = libsbml.CVTerm(libsbml.BIOLOGICAL_QUALIFIER)
     CVTerm1.addResource("http://www.geneontology.org/#GO:0005892")
     self.assert_(
         CVTerm1.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(CVTerm1.getResources().getLength() == 1)
     self.assert_(CVTerm1.getResources().getValue(0) ==
                  "http://www.geneontology.org/#GO:0005892")
     CVTerm2 = libsbml.CVTerm(CVTerm1)
     self.assert_(
         CVTerm2.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(CVTerm2.getResources().getLength() == 1)
     self.assert_(CVTerm2.getResources().getValue(0) ==
                  "http://www.geneontology.org/#GO:0005892")
     CVTerm2 = None
     CVTerm1 = None
     pass
Ejemplo n.º 9
0
def add_annotation_for_rxn(rxn, ecs):

    rxn.metaid = rxn.id
    for ec in ecs:
        cv = libsbml.CVTerm()
        cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
        cv.setBiologicalQualifierType(libsbml.BQB_IS)
        cv.addResource("http://identifiers.org/ec-code/" + ec)
        rxn.addCVTerm(cv)
Ejemplo n.º 10
0
def add_elem_dblinks(elem, dblinks):

    if dblinks.strip() == "":
        return
    for dblink in dblinks.split("#"):
        cv = libsbml.CVTerm()
        cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
        cv.setBiologicalQualifierType(libsbml.BQB_IS)
        cv.addResource("http://identifiers.org/" + dblink)
        elem.addCVTerm(cv)
Ejemplo n.º 11
0
    def annotate_sbase(sbase: libsbml.SBase, annotation: Annotation) -> None:
        """Annotate SBase based on given annotation data.

        :param sbase: libsbml.SBase
        :param annotation: Annotation
        :return:
        """
        qualifier, resource = annotation.qualifier.value, annotation.resource
        cv: libsbml.CVTerm = libsbml.CVTerm()

        # set correct type of qualifier
        if isinstance(qualifier, str):
            if qualifier.startswith("BQB"):
                cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
                sbml_qualifier = ModelAnnotator.get_SBMLQualifier(qualifier)
                success = check(
                    cv.setBiologicalQualifierType(str(sbml_qualifier)),
                    f"Set biological qualifier: '{sbml_qualifier}'",
                )
                if success != 0:
                    logger.error(
                        f"Could not set biological qualifier: {qualifier}")
            elif qualifier.startswith("BQM"):
                cv.setQualifierType(libsbml.MODEL_QUALIFIER)
                sbml_qualifier = ModelAnnotator.get_SBMLQualifier(qualifier)
                success = check(
                    cv.setModelQualifierType(str(sbml_qualifier)),
                    f"Set model qualifier: '{sbml_qualifier}'",
                )
                if success != 0:
                    logger.error(f"Could not set model qualifier: {qualifier}")
            else:
                logger.error(f"Unsupported qualifier: '{qualifier}'")
        else:
            msg = (f"qualifier is not a string, but: '{qualifier}' of type "
                   f"'{type(qualifier)}'.")
            logger.error(msg)
            raise ValueError(msg)

        success = check(cv.addResource(resource),
                        f"Add resource: '{resource}'")
        if success != 0:
            logger.error(f"Could not add resource: {resource}")

        # meta id has to be set
        if not sbase.isSetMetaId():
            sbase.setMetaId(utils.create_metaid(sbase))

        success = sbase.addCVTerm(cv)

        if success != 0:
            logger.error(
                f"Annotation RDF for CVTerm could not be written: {cv}")
            logger.error(libsbml.OperationReturnValue_toString(success))
            logger.error(f"{sbase}, {qualifier}, {resource}")
Ejemplo n.º 12
0
 def test_Validation_CVTerm1(self):
     cv = libsbml.CVTerm()
     self.assert_(cv != None)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.setQualifierType(libsbml.MODEL_QUALIFIER)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.setModelQualifierType(libsbml.BQM_IS)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.addResource("ggg")
     self.assertEqual(True, (cv.hasRequiredAttributes()))
     cv = None
     pass
Ejemplo n.º 13
0
 def test_Validation_CVTerm2(self):
     cv = libsbml.CVTerm()
     self.assert_(cv != None)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.setBiologicalQualifierType(libsbml.BQB_IS)
     self.assertEqual(False, (cv.hasRequiredAttributes()))
     cv.addResource("ggg")
     self.assertEqual(True, (cv.hasRequiredAttributes()))
     cv = None
     pass
Ejemplo n.º 14
0
 def test_CVTerm_addResource(self):
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     resource = "GO6666"
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     term.addResource(resource)
     xa = term.getResources()
     self.assert_(xa.getLength() == 1)
     self.assert_(("rdf:resource" == xa.getName(0)))
     self.assert_(("GO6666" == xa.getValue(0)))
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 15
0
 def test_CVTerm_getResources(self):
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     resource = "GO6666"
     resource1 = "OtherURI"
     term.addResource(resource)
     term.addResource(resource1)
     number = term.getNumResources()
     self.assert_(number == 2)
     self.assert_(("GO6666" == term.getResourceURI(0)))
     self.assert_(("OtherURI" == term.getResourceURI(1)))
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 16
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
Ejemplo n.º 17
0
def find_or_add_cv_term(terms,
                        type=libsbml.BIOLOGICAL_QUALIFIER,
                        bio_type=libsbml.BQB_IS):
    term = None
    if terms:
        for t in terms:
            if t.getQualifierType() == type and t.getBiologicalQualifierType(
            ) == bio_type:
                term = t
                break
    if term == None:
        term = libsbml.CVTerm()
        term.setQualifierType(type)
        term.setBiologicalQualifierType(bio_type)
    return term
Ejemplo n.º 18
0
 def test_CVTerm_set_get(self):
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     term.setModelQualifierType(libsbml.BQM_IS)
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     self.assert_(term.getModelQualifierType() == libsbml.BQM_IS)
     term.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
     term.setBiologicalQualifierType(libsbml.BQB_IS)
     self.assert_(term.getQualifierType() == libsbml.BIOLOGICAL_QUALIFIER)
     self.assert_(term.getBiologicalQualifierType() == libsbml.BQB_IS)
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 19
0
 def test_RDFAnnotation2_modelWithHistoryAndCVTerms(self):
     h = libsbml.ModelHistory()
     c = libsbml.ModelCreator()
     c.setFamilyName("Keating")
     c.setGivenName("Sarah")
     h.addCreator(c)
     d = libsbml.Date(2008, 11, 17, 18, 37, 0, 0, 0, 0)
     h.setCreatedDate(d)
     h.setModifiedDate(d)
     self.m2.unsetModelHistory()
     self.m2.setModelHistory(h)
     cv = libsbml.CVTerm()
     cv.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
     cv.setBiologicalQualifierType(libsbml.BQB_IS_VERSION_OF)
     cv.addResource("http://www.geneontology.org/#GO:0005892")
     self.m2.addCVTerm(cv)
     ann = libsbml.RDFAnnotationParser.parseModelHistory(self.m2)
     expected = wrapString(
         "<annotation>\n" +
         "  <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:vCard=\"http://www.w3.org/2001/vcard-rdf/3.0#\" xmlns:bqbiol=\"http://biomodels.net/biology-qualifiers/\" xmlns:bqmodel=\"http://biomodels.net/model-qualifiers/\">\n"
         + "    <rdf:Description rdf:about=\"#_000001\">\n" +
         "      <dc:creator rdf:parseType=\"Resource\">\n" +
         "        <rdf:Bag>\n" +
         "          <rdf:li rdf:parseType=\"Resource\">\n" +
         "            <vCard:N rdf:parseType=\"Resource\">\n" +
         "              <vCard:Family>Keating</vCard:Family>\n" +
         "              <vCard:Given>Sarah</vCard:Given>\n" +
         "            </vCard:N>\n" + "          </rdf:li>\n" +
         "        </rdf:Bag>\n" + "      </dc:creator>\n" +
         "      <dcterms:created rdf:parseType=\"Resource\">\n" +
         "        <dcterms:W3CDTF>2008-11-17T18:37:00Z</dcterms:W3CDTF>\n" +
         "      </dcterms:created>\n" +
         "      <dcterms:modified rdf:parseType=\"Resource\">\n" +
         "        <dcterms:W3CDTF>2008-11-17T18:37:00Z</dcterms:W3CDTF>\n" +
         "      </dcterms:modified>\n" + "      <bqbiol:isVersionOf>\n" +
         "        <rdf:Bag>\n" +
         "          <rdf:li rdf:resource=\"http://www.geneontology.org/#GO:0005892\"/>\n"
         + "        </rdf:Bag>\n" + "      </bqbiol:isVersionOf>\n" +
         "    </rdf:Description>\n" + "  </rdf:RDF>\n" + "</annotation>")
     if (ann != None):
         self.assertEqual(True, self.equals(expected, ann.toXMLString()))
         pass
         pass
     pass
Ejemplo n.º 20
0
def write_annotations_to_sbml( sbml_model, annotation_df ):
    for le in sbml_elements:
        for elem in getattr(sbml_model, 'getListOf'+le)():
            if not elem.isSetMetaId():
                # libsbml does not set annotation if no meta-id is set
                elem.setMetaId(elem.getId())
            elem_annos = annotation_df[annotation_df['ID']==elem.getId()]            
            for qtype in ['Biological', 'Model']:
                libsbml_qtype = qtype.upper() + '_QUALIFIER'
                for quali in elem_annos[elem_annos['qualifier_type']==libsbml_qtype]['qualifier'].unique():

                    cv = libsbml.CVTerm()
                    cv.setQualifierType( qualifier_type_2_sbml[ libsbml_qtype ] )
                    libsbml_qualifier_code = globals()[ qtype.lower()+'_qualifier_2_sbml' ][ quali ]
                    getattr( cv, 'set%sQualifierType' %qtype )( libsbml_qualifier_code )
                    for index,anno in elem_annos[ (elem_annos['qualifier_type']==libsbml_qtype) & (elem_annos['qualifier']==quali)].iterrows():
                        cv.addResource( anno['URI'] )
                    elem.addCVTerm(cv)
    return sbml_model
 def test_CVTerm_removeResource(self):
     term = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     resource = "GO6666"
     self.assert_(term != None)
     self.assert_(term.getQualifierType() == libsbml.MODEL_QUALIFIER)
     term.addResource(resource)
     xa = term.getResources()
     self.assert_(xa.getLength() == 1)
     i = term.removeResource("CCC")
     self.assert_(i == libsbml.LIBSBML_INVALID_ATTRIBUTE_VALUE)
     xa = term.getResources()
     self.assert_(xa.getLength() == 1)
     i = term.removeResource(resource)
     self.assert_(i == libsbml.LIBSBML_OPERATION_SUCCESS)
     xa = term.getResources()
     self.assert_(xa.getLength() == 0)
     _dummyList = [term]
     _dummyList[:] = []
     del _dummyList
     pass
Ejemplo n.º 22
0
def sbml_rdf_fixer():
    __doc__ = 'Too hard to workout. Abbanded.'
    sbml = libsbml.SBMLReader().readSBML("Gthg_2.4.xml")
    error_check(sbml)
    model = sbml.getModel()
    for sp in model.getListOfSpecies():
        if not sp.getCVTerms():
            print(
                sp.addCVTerm(libsbml.CVTerm(libsbml.BIOLOGICAL_QUALIFIER),
                             True))
        bag = sp.getCVTerm(0)
        notes = sp.getNotesString()
        regexmatch = re.search('CHEBI:\s+(.*?)[<;]', notes)
        if regexmatch:
            name = regexmatch.group(1)
            bag.addResource("urn:miriam:chebi:CHEBI%3A" + name)
        regexmatch = re.search('KEGG:\s+(.*?)[<;]', notes)
        if regexmatch:
            name = regexmatch.group(1)
            bag.addResource("urn:miriam:kegg.compound:" + name)
    libsbml.writeSBMLToFile(sbml, "test enrich.xml")
Ejemplo n.º 23
0
def uncertainty() -> libsbml.SBMLDocument:
    """Create uncertainty with UncertParameter."""
    doc: libsbml.SBMLDocument = _distrib_doc()
    model: libsbml.Model = doc.createModel()

    # parameter
    p: libsbml.Parameter = _create_parameter("p1", model=model)
    p_distrib: libsbml.DistribSBasePlugin = p.getPlugin("distrib")

    # --------------------------------------------
    # Build generic uncertainty for parameter
    # --------------------------------------------
    # 5.0 (mean) +- 0.3 (std) [2.0 - 8.0]

    uncertainty: libsbml.Uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("Basic example: 5.0 +- 0.3 [2.0 - 8.0]")
    unit = libsbml.UnitKind_toString(libsbml.UNIT_KIND_MOLE)
    up_mean: libsbml.UncertParameter = uncertainty.createUncertParameter()
    up_mean.setType(libsbml.DISTRIB_UNCERTTYPE_MEAN)
    up_mean.setValue(5.0)
    up_mean.setUnits(unit)

    up_sd: libsbml.UncertParameter = uncertainty.createUncertParameter()
    up_sd.setType(libsbml.DISTRIB_UNCERTTYPE_STANDARDDEVIATION)
    up_sd.setValue(0.3)
    up_sd.setUnits(unit)

    up_range = libsbml.UncertSpan()
    up_range.setType(libsbml.DISTRIB_UNCERTTYPE_RANGE)
    up_range.setValueLower(2.0)
    up_range.setValueUpper(8.0)
    up_range.setUnits(unit)
    check(uncertainty.addUncertParameter(up_range), "add the span")

    check(
        uncertainty.setAnnotation(
            """
    <body xmlns='http://www.w3.org/1999/xhtml'>
        <p>Experimental data from study</p>
    </body>
    """
        ),
        "set annotations",
    )

    # add an annotation with SBO terms
    uncertainty.setMetaId("meta_uncertainty1")
    cv1 = libsbml.CVTerm()
    cv1.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
    cv1.setBiologicalQualifierType(6)  # "BQB_IS_DESCRIBED_BY"
    cv1.addResource("https://identifiers.org/pubmed/123456")
    check(uncertainty.addCVTerm(cv1), "add cv term")

    cv2 = libsbml.CVTerm()
    cv2.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
    cv2.setBiologicalQualifierType(10)  # "BQB_HAS_PROPERTY"
    cv2.addResource("http://purl.obolibrary.org/obo/ECO_0006016")
    check(uncertainty.addCVTerm(cv2), "add cv term")

    # --------------------------------------------
    # Set of all UncertParameters
    # --------------------------------------------
    # create second uncertainty which contains all the individual uncertainties
    uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("UncertParameter example")
    for k, parameter_type in enumerate(
        [
            libsbml.DISTRIB_UNCERTTYPE_COEFFIENTOFVARIATION,
            libsbml.DISTRIB_UNCERTTYPE_KURTOSIS,
            libsbml.DISTRIB_UNCERTTYPE_MEAN,
            libsbml.DISTRIB_UNCERTTYPE_MEDIAN,
            libsbml.DISTRIB_UNCERTTYPE_MODE,
            libsbml.DISTRIB_UNCERTTYPE_SAMPLESIZE,
            libsbml.DISTRIB_UNCERTTYPE_SKEWNESS,
            libsbml.DISTRIB_UNCERTTYPE_STANDARDDEVIATION,
            libsbml.DISTRIB_UNCERTTYPE_STANDARDERROR,
            libsbml.DISTRIB_UNCERTTYPE_VARIANCE,
        ]
    ):

        up: libsbml.UncertParameter = uncertainty.createUncertParameter()
        up.setType(parameter_type)
        up.setValue(k)
        up.setUnits(unit)

    # --------------------------------------------
    # Set of all UncertSpans
    # --------------------------------------------
    uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("UncertSpan example")
    for k, parameter_type in enumerate(
        [
            libsbml.DISTRIB_UNCERTTYPE_CONFIDENCEINTERVAL,
            libsbml.DISTRIB_UNCERTTYPE_CREDIBLEINTERVAL,
            libsbml.DISTRIB_UNCERTTYPE_INTERQUARTILERANGE,
            libsbml.DISTRIB_UNCERTTYPE_RANGE,
        ]
    ):

        up_range = libsbml.UncertSpan()
        up_range.setType(parameter_type)
        up_range.setValueLower(k - 1.0)
        up_range.setValueUpper(k + 1.0)
        up_range.setUnits(unit)
        check(uncertainty.addUncertParameter(up_range), "add the span")

    # --------------------------------------------
    # Use math for distribution definition
    # --------------------------------------------
    # 5.0 dimensionless * normal(1.0 mole, 3.0 mole)
    uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("math example: 5.0 dimensionless * normal(1.0 mole, 3.0 mole)")
    up = uncertainty.createUncertParameter()
    up.setType(libsbml.DISTRIB_UNCERTTYPE_DISTRIBUTION)
    up.setDefinitionURL("http://www.sbml.org/sbml/symbols/distrib/normal")
    ast = libsbml.parseL3FormulaWithModel(
        "5.0 dimensionless * normal(1.0 mole, 3.0 mole)", model
    )
    if not ast:
        raise ValueError
    up.setMath(ast)

    # --------------------------------------------
    # Use externalParameter
    # --------------------------------------------
    # https://sites.google.com/site/probonto/
    uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("ExternalParameter example")
    up = uncertainty.createUncertParameter()
    up.setType(libsbml.DISTRIB_UNCERTTYPE_EXTERNALPARAMETER)
    up.setName("skewness")
    up.setValue(0.25)
    up.setUnits(unit)
    up.setDefinitionURL("http://purl.obolibrary.org/obo/STATO_0000068")

    # --------------------------------------------
    # Use external distribution definition
    # --------------------------------------------
    uncertainty = p_distrib.createUncertainty()
    uncertainty.setName("External distribution example")
    up = uncertainty.createUncertParameter()
    up.setType(libsbml.DISTRIB_UNCERTTYPE_DISTRIBUTION)
    up.setName("Geometric 1")
    up.setDefinitionURL("http://www.probonto.org/ontology#PROB_k0000782")
    up.setUnits(unit)

    # success probability of Geometric-1
    up_mean_geo1 = up.createUncertParameter()
    up_mean_geo1.setType(libsbml.DISTRIB_UNCERTTYPE_EXTERNALPARAMETER)
    up_mean_geo1.setName("success probability of Geometric 1")
    up_mean_geo1.setValue(0.4)
    up_mean_geo1.setDefinitionURL("http://www.probonto.org/ontology#PROB_k0000789")

    return doc
Ejemplo n.º 24
0
def add_cvterm(term):
    controlled_vocab = libsbml.CVTerm()
    controlled_vocab.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
    controlled_vocab.setBiologicalQualifierType(libsbml.BQB_IS)
    controlled_vocab.addResource(term)
    return controlled_vocab
Ejemplo n.º 25
0
doc = libsbml.SBMLDocument(3, 2)  # type: libsbml.SBMLDocument
model = doc.createModel()  # type: libsbml.Model
p = model.createParameter()  # type: libsbml.Parameter
p.setId("p")

check(
    p.setAnnotation("""
<body xmlns='http://www.w3.org/1999/xhtml'>
    <p>First annotation</p>
</body>
"""), "set annotations")

# add an annotation with SBO terms
p.setMetaId("meta_uncertainty1")
cv1 = libsbml.CVTerm()
cv1.setQualifierType(libsbml.BIOLOGICAL_QUALIFIER)
cv1.setBiologicalQualifierType(6)  # "BQB_IS_DESCRIBED_BY"
cv1.addResource("https://identifiers.org/pubmed/123456")
check(p.addCVTerm(cv1), "add cv term")

sbml = libsbml.writeSBMLToString(doc)
print("-" * 80)
print(sbml)
print("-" * 80)

check(
    p.setAnnotation("""
<body xmlns='http://www.w3.org/1999/xhtml'>
    <p>New annotation.</p>
</body>
Ejemplo n.º 26
0
import libsbml as sbml

doc = sbml.SBMLDocument(3, 2)
model = doc.createModel()
model.setMetaId("META_MODEL")

cvt = sbml.CVTerm()
cvt.setQualifierType(sbml.BIOLOGICAL_QUALIFIER)
cvt.setBiologicalQualifierType(sbml.BQB_IS)
cvt.addResource("www.some.reference.de/bug/annotation")

print(sbml.writeSBMLToString(doc))

model.addCVTerm(cvt)
print(sbml.writeSBMLToString(doc))

model.unsetAnnotation()

ann = "<test><other/></test>"
model.appendAnnotation(ann)
print(sbml.writeSBMLToString(doc))

model.unsetAnnotation()
model.appendAnnotation(ann)
model.addCVTerm(cvt)
print(sbml.writeSBMLToString(doc))

model.unsetAnnotation()
model.addCVTerm(cvt)
print(sbml.writeSBMLToString(doc))
model.appendAnnotation(ann)
Ejemplo n.º 27
0
 def test_RDFAnnotation_parseCVTerms(self):
     node = libsbml.RDFAnnotationParser.parseCVTerms(
         self.m.getCompartment(0))
     self.assert_(node.getNumChildren() == 1)
     rdf = node.getChild(0)
     self.assert_(("RDF" == rdf.getName()))
     self.assert_(("rdf" == rdf.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == rdf.getURI()))
     self.assert_(rdf.getNumChildren() == 1)
     desc = rdf.getChild(0)
     self.assert_(("Description" == desc.getName()))
     self.assert_(("rdf" == desc.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == desc.getURI()))
     self.assert_(desc.getNumChildren() == 1)
     is1 = desc.getChild(0)
     self.assert_(("is" == is1.getName()))
     self.assert_(("bqbiol" == is1.getPrefix()))
     self.assert_(is1.getNumChildren() == 1)
     Bag = is1.getChild(0)
     self.assert_(("Bag" == Bag.getName()))
     self.assert_(("rdf" == Bag.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == Bag.getURI()))
     self.assert_(Bag.getNumChildren() == 4)
     li = Bag.getChild(0)
     self.assert_(("li" == li.getName()))
     self.assert_(("rdf" == li.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == li.getURI()))
     self.assert_(li.getNumChildren() == 0)
     li1 = Bag.getChild(1)
     self.assert_(("li" == li1.getName()))
     self.assert_(("rdf" == li1.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == li1.getURI()))
     self.assert_(li1.getNumChildren() == 0)
     li2 = Bag.getChild(2)
     self.assert_(("li" == li2.getName()))
     self.assert_(("rdf" == li2.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == li2.getURI()))
     self.assert_(li2.getNumChildren() == 0)
     li3 = Bag.getChild(3)
     self.assert_(("li" == li3.getName()))
     self.assert_(("rdf" == li3.getPrefix()))
     self.assert_(
         ("http://www.w3.org/1999/02/22-rdf-syntax-ns#" == li3.getURI()))
     self.assert_(li3.getNumChildren() == 0)
     node = None
     node1 = libsbml.RDFAnnotationParser.parseCVTerms(None)
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(None)
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.parseCVTerms(
         self.m.getCompartment(2))
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(
         self.m.getCompartment(2))
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.parseCVTerms(self.m)
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(self.m)
     self.assert_(node1 == None)
     c = libsbml.Compartment(3, 1)
     c.setMetaId("_002")
     node1 = libsbml.RDFAnnotationParser.parseCVTerms(c)
     self.assert_(node1 == None)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(c)
     self.assert_(node1 == None)
     cv = libsbml.CVTerm(libsbml.BIOLOGICAL_QUALIFIER)
     cv.setBiologicalQualifierType(23)
     cv.addResource("http://myres")
     c.addCVTerm(cv)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(c)
     self.assert_(node1 == None)
     c = None
     m1 = libsbml.Model(3, 1)
     m1.setMetaId("_002")
     cv = libsbml.CVTerm(libsbml.MODEL_QUALIFIER)
     cv.setModelQualifierType(23)
     cv.addResource("http://myres")
     m1.addCVTerm(cv)
     node1 = libsbml.RDFAnnotationParser.createCVTerms(m1)
     self.assert_(node1 == None)
     pass