コード例 #1
0
ファイル: test_kami_corpus.py プロジェクト: Kappa-Dev/KAMI
    def test_non_empty_hierarchy(self):
        """."""
        model = KamiCorpus("test")

        plcg1_pY1253 = Protoform("P19174",
                                 synonyms=["PLCG1"],
                                 residues=[
                                     Residue("Y",
                                             1253,
                                             state=State(
                                                 "phosphorylation", True))
                                 ])
        sh2 = Region(name="SH2")
        abl1 = Protoform("P00519", synonyms=["ABL1"])
        abl1_sh2 = RegionActor(abl1, sh2)
        bnd = Binding(plcg1_pY1253, abl1_sh2)

        model.add_interactions([bnd], model)
        assert (model.empty() is False)

        model.export_json("test_non_empty_hierarchy.json")
        new_model = KamiCorpus.load_json("test",
                                         "test_non_empty_hierarchy.json")
        assert (isinstance(new_model, KamiCorpus))
        assert (("test_action_graph", "meta_model")
                in new_model._hierarchy.edges())
コード例 #2
0
    def test_multiple_sh2(self):
        """."""
        phos = State("phosphorylation", True)
        sh2n = Region(name="SH2", order=1)
        sh2c = Region(name="SH2", order=2)

        pik3r1 = Protoform("P27986", synonyms=["PIK3R1", "PI3K1"])
        pik3r1_sh2n = RegionActor(pik3r1, sh2n)
        pik3r1_sh2c = RegionActor(pik3r1, sh2c)

        frs2_py196 = Protoform("Q8WU20",
                               synonyms=["FRS2"],
                               residues=[Residue("Y", 196, phos)])
        frs2_py349 = Protoform("Q8WU20",
                               synonyms=["FRS2"],
                               residues=[Residue("Y", 349, phos)])

        bnds = []
        bnds.append(Binding(frs2_py196, pik3r1_sh2n))
        bnds.append(Binding(frs2_py349, pik3r1_sh2c))
        corpus = KamiCorpus("test")
        corpus.add_interactions(bnds, anatomize=True)
コード例 #3
0
    def test_bnd_generation(self):
        """Test generation of a binding nugget graph."""
        left = SiteActor(Protoform("A"), Site("pY"), Region("Reg"))
        right = Protoform("B")
        bnd = Binding(left, right)

        corpus = KamiCorpus("test")
        identifier = EntityIdentifier(
            corpus.action_graph,
            corpus.get_action_graph_typing())
        generator = BndGenerator(identifier)
        n, _, _, _ = generator.generate(bnd)
        print_graph(n.graph)
コード例 #4
0
 def test_site_residue_reconnect(self):
     sh2 = Region(name="SH2")
     b = Binding(
         SiteActor(protoform=Protoform(uniprotid="P00533",
                                       hgnc_symbol="EGFR",
                                       residues=[
                                           Residue("Y",
                                                   1092,
                                                   state=State(
                                                       "phosphorylation",
                                                       True))
                                       ]),
                   site=Site(name="motif1092", start=1088, end=1096)),
         RegionActor(protoform=Protoform("P62993", hgnc_symbol="GRB2"),
                     region=sh2))
     corpus = KamiCorpus("test")
     corpus.add_interaction(b)
コード例 #5
0
    def test_advanced_site_actor(self):
        # General phosphorylation state.
        phos = State("phosphorylation", True)
        unphos = State("phosphorylation", False)

        # General SH2 regions.
        sh2 = Region(name="SH2")
        sh2n = Region(name="SH2", order=1)
        sh2c = Region(name="SH2", order=2)

        # Test site.
        s1 = Site(name="test_site")

        inters = []

        # Modification using SiteActor.
        m = Modification(enzyme=Protoform("P00519", hgnc_symbol="ABL1"),
                         substrate=SiteActor(protoform=Protoform(
                             "P00519", hgnc_symbol="ABL1"),
                                             site=Site(name="site800",
                                                       start=796,
                                                       end=804)),
                         target=Residue("Y", 800,
                                        State("phosphorylation", False)),
                         value=True)
        inters.append(m)
        m = Modification(enzyme=Protoform("P00519", hgnc_symbol="ABL1"),
                         substrate=SiteActor(protoform=Protoform(
                             "P00533", hgnc_symbol="EGFR"),
                                             site=Site(name="site800",
                                                       start=796,
                                                       end=804)),
                         target=Residue("Y", 800,
                                        State("phosphorylation", False)),
                         value=True)
        inters.append(m)

        # Binding using SiteActor.
        b = Binding(
            SiteActor(protoform=Protoform("P00533", hgnc_symbol="EGFR"),
                      site=Site(name="site800", start=796, end=804)),
            RegionActor(protoform=Protoform("P62993", hgnc_symbol="GRB2"),
                        region=sh2))
        inters.append(b)
        corpus = KamiCorpus("test")
        corpus.add_interactions(inters, anatomize=True)
コード例 #6
0
    def test_sites(self):
        # Create genes.
        egfr = Protoform("P00533")
        grb2 = Protoform("P62993")

        # Create a RegionActor and a SiteActor fo GRB2.
        grb2_sh2 = RegionActor(protoform=grb2, region=Region(name="SH2"))
        grb2_site = SiteActor(protoform=grb2, site=Site(name="pY"))

        inters = []
        # This works (RegionActor).
        # inters.append(BinaryBinding([egfr], [grb2_sh2]))
        # This does not work (SiteActor)
        inters.append(Binding(egfr, grb2_site))

        corpus = KamiCorpus("test")
        corpus.add_interactions(inters, anatomize=True)
        print_graph(corpus.get_nugget("test_nugget_1"))
コード例 #7
0
ファイル: test_kami_corpus.py プロジェクト: Kappa-Dev/KAMI
    def __init__(self):
        """Initialize test class with a model."""
        self.model = KamiCorpus("test")

        egfr = Protoform("P00533")
        fgfr1 = Protoform("P11362")
        fgfr1_pysite = SiteActor(
            Protoform("P11362"),
            Site("pY",
                 residues=[Residue("Y", 463, State("phosphorylation", True))]))
        abl1_sh2 = RegionActor(Protoform("P00519"), Region("SH2"))

        target = Residue("Y", 463, State("phosphorylation", False))
        modification = Modification(enzyme=egfr,
                                    substrate=fgfr1,
                                    target=target)
        binding = Binding(abl1_sh2, fgfr1_pysite)

        self.model.add_interactions([modification, binding])
コード例 #8
0
    def test_bookkeeping(self):
        interactions = []

        i1 = LigandModification(
            RegionActor(Protoform("P00533"), Region(start=712, end=979)),
            Protoform("P00533"),
            Residue("Y", 1092, state=State("phosphorylation", False)))
        interactions.append(i1)

        i2 = Modification(
            Protoform("P00519"), Protoform("P00533"),
            Residue("S", 800, state=State("phosphorylation", False)))
        interactions.append(i2)

        i3 = Binding(Protoform("P00424"),
                     SiteActor(Protoform("P00533"), Site(start=799, end=900)))
        interactions.append(i3)

        corpus = KamiCorpus("test")
        corpus.add_interactions(interactions)
コード例 #9
0
ファイル: test_kamiql.py プロジェクト: Kappa-Dev/KAMI
    def __init__(self):
        """Initialize tests."""
        # Create an empty KAMI corpus
        self.nxcorpus = KamiCorpus("EGFR_signalling")
        try:
            h = Neo4jHierarchy(uri="bolt://localhost:7687",
                               user="******",
                               password="******")
            h._clear()
            self.neo4jcorpus = KamiCorpus("egfr",
                                          backend="neo4j",
                                          uri="bolt://localhost:7687",
                                          user="******",
                                          password="******")
        except:
            warnings.warn("Neo4j is down, skipping Neo4j-related tests")
            self.neo4jcorpus = None

        # Create an interaction object
        egfr = Protoform("P00533")
        egf = Protoform("P01133")

        kinase = Region(name="Protein kinase",
                        start=712,
                        end=979,
                        states=[State("activity", True)])

        egfr_kinase = RegionActor(protoform=egfr, region=kinase)

        interaction1 = LigandModification(
            enzyme=egfr_kinase,
            substrate=egfr,
            target=Residue("Y", 1092, state=State("phosphorylation", False)),
            value=True,
            rate=1,
            desc="Phosphorylation of EGFR homodimer")

        # Aggregate the interaction object to the corpus
        self.nxcorpus.add_interaction(interaction1)
        self.neo4jcorpus.add_interaction(interaction1)

        grb2 = Protoform("P62993", states=[State("activity", True)])
        grb2_sh2 = RegionActor(protoform=grb2, region=Region(name="SH2"))

        shc1 = Protoform("P29353")
        shc1_pY = SiteActor(
            protoform=shc1,
            site=Site(
                name="pY",
                residues=[Residue("Y", 317, State("phosphorylation", True))]))
        interaction1 = Binding(grb2_sh2, shc1_pY)

        grb2_sh2_with_residues = RegionActor(protoform=grb2,
                                             region=Region(
                                                 name="SH2",
                                                 residues=[
                                                     Residue("S",
                                                             90,
                                                             test=True),
                                                     Residue("D",
                                                             90,
                                                             test=False)
                                                 ]))

        egfr_pY = SiteActor(
            protoform=egfr,
            site=Site(
                name="pY",
                residues=[Residue("Y", 1092, State("phosphorylation", True))]))

        interaction2 = Binding(grb2_sh2_with_residues, egfr_pY)

        axl_PK = RegionActor(protoform=Protoform("P30530", hgnc_symbol="AXL"),
                             region=Region("Protein kinase",
                                           start=536,
                                           end=807))
        interaction3 = SelfModification(axl_PK,
                                        target=Residue(
                                            "Y", 821,
                                            State("phosphorylation", False)),
                                        value=True)

        interaction4 = AnonymousModification(RegionActor(protoform=Protoform(
            "P30530",
            hgnc_symbol="AXL",
            residues=[
                Residue("Y", 703, state=State("phosphorylation", True)),
                Residue("Y", 779, state=State("phosphorylation", True))
            ]),
                                                         region=Region(
                                                             "Protein kinase",
                                                             start=536,
                                                             end=807)),
                                             target=State("activity", False),
                                             value=True)

        egf_egfr = Protoform(egfr.uniprotid, bound_to=[egf])
        interaction5 = Binding(egf_egfr, egf_egfr)
        interaction6 = Unbinding(egf_egfr, egf_egfr)

        interaction7 = LigandModification(
            egfr_kinase,
            shc1,
            target=Residue("Y", 317, State("phosphorylation", False)),
            value=True,
            enzyme_bnd_region=Region("egfr_BND"),
            enzyme_bnd_site=Site("egfr_BND"),
            substrate_bnd_region=Region("shc1_BND"),
            substrate_bnd_site=Site("sch1_BND"))

        interactions = [
            interaction1, interaction2, interaction3, interaction4,
            interaction5, interaction6, interaction7
        ]

        self.nxcorpus.add_interactions(interactions)
        self.neo4jcorpus.add_interactions(interactions)

        # Create a protein definition for GRB2
        # protoform = Protoform(
        #     "P62993",
        #     regions=[Region(
        #         name="SH2",
        #         residues=[
        #             Residue("S", 90, test=True),
        #             Residue("D", 90, test=False)])])

        # ashl = Product("Ash-L", residues=[Residue("S", 90)])
        # s90d = Product("S90D", residues=[Residue("D", 90)])
        # grb3 = Product("Grb3", removed_components={"regions": [Region("SH2")]})

        # self.grb2_definition = Definition(protoform, [ashl, s90d, grb3])

        # self.model = self.nxcorpus.instantiate(
        #     "EGFR_signalling_GRB2", [self.grb2_definition],
        #     default_bnd_rate=0.1,
        #     default_brk_rate=0.1,
        #     default_mod_rate=0.1)
        self.query1 = ("""
            MATCH (:protoform)<--(r1:REGION)-->(i:interaction)-*-(n4:protoform)
            RETURN p1, i, p2;
            """)
コード例 #10
0
    def test_sh2_py_semantics(self):
        """."""
        phos = State("phosphorylation", True)
        dok1_py398 = Protoform("Q99704",
                               synonyms=["DOK1", "p62DOK1"],
                               residues=[Residue("Y", 398, phos)])

        abl2 = Protoform("P42684", synonyms=["ABL2"])
        sh2 = Region(name="SH2")

        abl2_sh2 = RegionActor(abl2, sh2)

        bnd = Binding(dok1_py398, abl2_sh2)

        corpus = KamiCorpus("test")
        nugget_id = corpus.add_interaction(bnd)

        semantic_entities = [
            "sh2_domain", "sh2_domain_pY_bnd", "pY_site", "pY_residue",
            "phosphorylation"
        ]

        print(corpus.get_nugget(nugget_id).nodes())
        assert ("pY_site" in corpus.get_nugget(nugget_id).nodes())
        assert ("pY_residue" in corpus.get_nugget(nugget_id).nodes())
        assert ("pY_residue_phospho" in corpus.get_nugget(nugget_id).nodes())

        assert ((nugget_id, "sh2_pY_binding_semantic_nugget")
                in corpus.nugget_relations())

        for entity in semantic_entities:
            assert (entity in corpus._hierarchy.get_relation(
                "sh2_pY_binding_semantic_nugget", nugget_id).keys())

        site_actor_no_residue = SiteActor(Protoform("A"),
                                          Site("pY-site", start=100, end=150))

        bnd = Binding(abl2_sh2, site_actor_no_residue)
        nugget_id = corpus.add_interaction(bnd)
        assert (len(corpus.get_nugget(nugget_id).nodes()) == 7)
        binding_nodes = []
        for n in corpus.action_graph.nodes():
            if corpus.get_action_graph_typing()[n] == "bnd":
                binding_nodes.append(n)
        assert (len(binding_nodes) == 1)

        assert ((nugget_id, "sh2_pY_binding_semantic_nugget")
                in corpus.nugget_relations())

        for entity in semantic_entities:
            assert (entity in corpus._hierarchy.get_relation(
                "sh2_pY_binding_semantic_nugget", nugget_id).keys())

        site_actor_no_phospho = SiteActor(
            Protoform("A"),
            Site("pY-site", start=100, end=150, residues=[Residue("Y")]))
        bnd = Binding(abl2_sh2, site_actor_no_phospho)
        nugget_id = corpus.add_interaction(bnd)
        assert (len(corpus.get_nugget(nugget_id).nodes()) == 8)
        binding_nodes = []
        for n in corpus.action_graph.nodes():
            if corpus.get_action_graph_typing()[n] == "bnd":
                binding_nodes.append(n)
        assert (len(binding_nodes) == 1)
        assert ((nugget_id, "sh2_pY_binding_semantic_nugget")
                in corpus.nugget_relations())

        for entity in semantic_entities:
            assert (entity in corpus._hierarchy.get_relation(
                "sh2_pY_binding_semantic_nugget", nugget_id).keys())

        site_actor_with_residue = SiteActor(
            Protoform("A"),
            Site("pY-site",
                 start=100,
                 end=150,
                 residues=[
                     Residue("Y", loc=145, state=State("phosphorylation"))
                 ]))

        bnd = Binding(abl2_sh2, site_actor_with_residue)
        nugget_id = corpus.add_interaction(bnd)
        assert (len(corpus.get_nugget(nugget_id).nodes()) == 7)
        binding_nodes = []
        for n in corpus.action_graph.nodes():
            if corpus.get_action_graph_typing()[n] == "bnd":
                binding_nodes.append(n)
        assert (len(binding_nodes) == 1)
        assert ((nugget_id, "sh2_pY_binding_semantic_nugget")
                in corpus.nugget_relations())

        for entity in semantic_entities:
            assert (entity in corpus._hierarchy.get_relation(
                "sh2_pY_binding_semantic_nugget", nugget_id).keys())

        site_actor_with_residue1 = SiteActor(
            Protoform("B"),
            Site("pY-site",
                 residues=[
                     Residue("Y", loc=145, state=State("phosphorylation"))
                 ]))
        site_actor_with_residue2 = SiteActor(
            Protoform("B"),
            Site("some site",
                 residues=[
                     Residue("Y", loc=145, state=State("phosphorylation"))
                 ]))
        bnd1 = Binding(abl2_sh2, site_actor_with_residue1)
        bnd2 = Binding(abl2_sh2, site_actor_with_residue2)
        corpus.add_interactions([bnd1, bnd2])
        print_graph(corpus.action_graph)
コード例 #11
0
 def test_binding(self):
     bnd = Binding(self.substrate_region_actor, self.enzyme_site_actor)
     print(bnd)
     print(bnd.__repr__())