Exemplo n.º 1
0
 def test_RDFAnnotation_testMissingAbout(self):
     withAbout = wrapString(
         "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
         "  <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=\"#_000004\">\n" +
         "        <bqbiol:is>\n" + "          <rdf:Bag>\n" +
         "            <rdf:li rdf:resource=\"http://www.geneontology.org/#GO:0007274\"/>\n"
         + "          </rdf:Bag>\n" + "        </bqbiol:is>\n" +
         "      </rdf:Description>\n" + "    </rdf:RDF>\n" +
         "  </annotation>")
     emptyAbout = wrapString(
         "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
         "  <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=\"\">\n" +
         "        <bqbiol:is>\n" + "          <rdf:Bag>\n" +
         "            <rdf:li rdf:resource=\"http://www.geneontology.org/#GO:0007274\"/>\n"
         + "          </rdf:Bag>\n" + "        </bqbiol:is>\n" +
         "      </rdf:Description>\n" + "    </rdf:RDF>\n" +
         "  </annotation>")
     noAbout = wrapString(
         "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
         "  <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>\n" + "        <bqbiol:is>\n" +
         "          <rdf:Bag>\n" +
         "            <rdf:li rdf:resource=\"http://www.geneontology.org/#GO:0007274\"/>\n"
         + "          </rdf:Bag>\n" + "        </bqbiol:is>\n" +
         "      </rdf:Description>\n" + "    </rdf:RDF>\n" +
         "  </annotation>")
     cvTerms = libsbml.CVTermList()
     stream = libsbml.XMLInputStream(withAbout, False)
     node = libsbml.XMLNode(stream)
     libsbml.RDFAnnotationParser.parseRDFAnnotation(node, cvTerms)
     self.assert_(cvTerms.getSize() == 1)
     cvTerms = None
     cvTerms = libsbml.CVTermList()
     libsbml.RDFAnnotationParser.parseRDFAnnotation(node, cvTerms)
     self.assert_(cvTerms.getSize() == 1)
     cvTerms = None
     cvTerms = None
     cvTerms = libsbml.CVTermList()
     stream1 = libsbml.XMLInputStream(emptyAbout, False)
     node1 = libsbml.XMLNode(stream1)
     libsbml.RDFAnnotationParser.parseRDFAnnotation(node1, cvTerms)
     self.assert_(cvTerms.getSize() == 0)
     cvTerms = None
     cvTerms = None
     cvTerms = libsbml.CVTermList()
     stream2 = libsbml.XMLInputStream(noAbout, False)
     node2 = libsbml.XMLNode(stream2)
     libsbml.RDFAnnotationParser.parseRDFAnnotation(node2, cvTerms)
     self.assert_(cvTerms.getSize() == 0)
     cvTerms = None
     cvTerms = None
     pass
Exemplo n.º 2
0
    def getModelAnnotations(self):

        model = self.sbmlDocument.getModel()
        annotationXML = model.getAnnotation()
        lista = libsbml.CVTermList()
        libsbml.RDFAnnotationParser.parseRDFAnnotation(annotationXML, lista)
        modelAnnotations = []
        for idx in range(lista.getSize()):
            for idx2 in range(lista.get(idx).getResources().getLength()):
                if lista.get(idx).getQualifierType():
                    modelAnnotations.append(
                        [
                            bioqual[lista.get(idx).getBiologicalQualifierType()],
                            lista.get(idx).getResources().getValue(idx2),
                        ]
                    )
                else:
                    modelAnnotations.append(
                        [
                            modqual[lista.get(idx).getModelQualifierType()],
                            lista.get(idx).getResources().getValue(idx2),
                        ]
                    )

        return modelAnnotations
Exemplo n.º 3
0
def parseAnnotation(annotation):
    speciesAnnotationDict = defaultdict(list)
    lista = libsbml.CVTermList()
    libsbml.RDFAnnotationParser.parseRDFAnnotation(annotation, lista)
    for idx in range(0, lista.getSize()):
        for idx2 in range(0, lista.get(idx).getResources().getLength()):
            resource = lista.get(idx).getResources().getValue(idx2)

            qualifierType = lista.get(idx).getQualifierType()
            qualifierDescription= bioqual[lista.get(idx).getBiologicalQualifierType()] if qualifierType \
                                   else modqual[lista.get(idx).getModelQualifierType()]
            speciesAnnotationDict[qualifierDescription].append(resource)
    return speciesAnnotationDict
Exemplo n.º 4
0
def getSpeciesAnnotationStructure(parser):
    model = parser.model
    for species in model.getListOfSpecies():
        name = species.getName()
        speciesId = species.getId()
        annotation = species.getAnnotation()
        lista = libsbml.CVTermList()
        libsbml.RDFAnnotationParser.parseRDFAnnotation(annotation, lista)
        for idx in range(0, lista.getSize()):
            for idx2 in range(0, lista.get(idx).getResources().getLength()):
                resource = lista.get(idx).getResources().getValue(idx2)
                qualifierType = lista.get(idx).getQualifierType()
                qualifierDescription= bioqual[lista.get(idx).getBiologicalQualifierType()] if qualifierType \
                else modqual[lista.get(idx).getModelQualifierType()]
Exemplo n.º 5
0
def getAnnotationsFromFile(fileName):
    reader = libsbml.SBMLReader()
    document = reader.readSBMLFromFile(fileName)
    model = document.getModel()
    annotationDictionary = collections.defaultdict(list)
    for species in model.getListOfSpecies():
        annotationXML = species.getAnnotation()
        lista = libsbml.CVTermList()
        libsbml.RDFAnnotationParser.parseRDFAnnotation(annotationXML, lista)
        if lista.getSize() == 0:
            annotationDictionary[standardizeName(species.getName())] = []
        for index in range(0, lista.getSize()):
            #name = tmpList.getBiologicalQualifier() if tmpList.getQualifierType() == _libsbml.BIOLOGICAL_QUALIFIER else tmpList.getMo
            for index2 in range(0, lista.get(index).getResources().getNumAttributes()):
                annotationDictionary[standardizeName(species.getName())].append(
                    lista.get(index).getResources().getValue(index2))

    return annotationDictionary
Exemplo n.º 6
0
def getModelAnnotationFromFile(fileName):
    reader = libsbml.SBMLReader()
    document = reader.readSBMLFromFile(fileName)
    model = document.getModel()
    annotationXML = model.getAnnotation()
    lista = libsbml.CVTermList()
    libsbml.RDFAnnotationParser.parseRDFAnnotation(annotationXML,lista)
    metaDict = []

    for idx in range(lista.getSize()):
      for idx2 in range(0, lista.get(idx).getResources().getLength()):
          resource = lista.get(idx).getResources().getValue(idx2)
          qualifierType = lista.get(idx).getQualifierType()
          qualifierDescription= bioqual[lista.get(idx).getBiologicalQualifierType()] if qualifierType \
          else modqual[lista.get(idx).getModelQualifierType()]
          #resource = resolveAnnotation(resource)
          if 'BQB' in qualifierDescription:
            metaDict.append(resource)
    return metaDict
Exemplo n.º 7
0
def extractXMLInfo(fileName):
    #if not hasattr(extractXMLInfo, 'm'):
    #    extractXMLInfo.m = Miriam()

    reader = libsbml.SBMLReader()
    document = reader.readSBMLFromFile(fileName)
    model = document.getModel()
    from collections import defaultdict

    metaArray = defaultdict(list)
    metaDict = {}
    metaDict2 = defaultdict(list)
    if model != None:
        #annotation = model.getAnnotation()
        #lista = libsbml.CVTermList()
        #libsbml.RDFAnnotationParser.parseRDFAnnotation(annotation,lista)
        #for idx in range(0,lista.getSize()):
        #  resource = lista.get(idx).getResources().getValue(0)
        #  metaArray.add(resource)

        for species in model.getListOfSpecies():
            name = species.getName()
            speciesId = species.getId()
            annotation = species.getAnnotation()
            lista = libsbml.CVTermList()
            libsbml.RDFAnnotationParser.parseRDFAnnotation(annotation, lista)
            for idx in range(0, lista.getSize()):
                for idx2 in range(0,
                                  lista.get(idx).getResources().getLength()):
                    resource = lista.get(idx).getResources().getValue(idx2)
                    qualifierType = lista.get(idx).getQualifierType()
                    qualifierDescription= bioqual[lista.get(idx).getBiologicalQualifierType()] if qualifierType \
                    else modqual[lista.get(idx).getModelQualifierType()]
                    #resource = resolveAnnotation(resource)
                    metaArray[qualifierDescription].append(resource)
                    metaDict[speciesId] = (name, resource,
                                           qualifierDescription)
                    metaDict2[resource].append(
                        [speciesId, name, qualifierDescription])

    return metaArray, metaDict, metaDict2