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
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
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
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()]
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
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
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