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
Esempio n. 2
0
 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
Esempio n. 3
0
    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)