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())
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)
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)
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)
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)
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"))
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])
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)
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; """)
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)
def test_binding(self): bnd = Binding(self.substrate_region_actor, self.enzyme_site_actor) print(bnd) print(bnd.__repr__())