def get_bioc_relations(self, docid, relations): # <relation id="5618#7534"> # <infon key="Gene1">5618</infon> # <infon key="Gene2">7534</infon> # <infon key="relation">PPIm</infon> # </relation> biocDoc=BioCDocument() biocDoc.id = docid biocDoc.relations=[] for rel in relations: bioc_rel = BioCRelation() rel_list = list(rel) infon = {} infon["relation"] = "PPIm" infon["Gene1"] = rel_list[0] infon["Gene2"] = rel_list[0] if len(rel_list) == 2: infon["Gene2"] = rel_list[1] bioc_rel.id="{}#{}".format(infon["Gene1"], infon["Gene2"]) bioc_rel.infons=infon biocDoc.relations.append(bioc_rel) return biocDoc
def __parse_relation(self, tree): relation = BioCRelation() if 'id' in tree.attrib: relation.id = tree.attrib['id'] relation.infons = self.__parse_infons(tree) for child in tree.findall('node'): relation.add_node(BioCNode(child.attrib['refid'], child.attrib['role'])) return relation
def test_is_valid(self, relations_infons, gene1, gene2, expected): # arrange sut = BiocRelation() doc = BioCDocument() for dict in relations_infons: dict["relation"] = "PPIm" relation = BioCRelation() relation.infons = dict doc.add_relation(relation) # Act actual = sut.is_valid(doc, gene1, gene2) # Assert self.assertEqual(expected, actual)