Kappa-Dev / KAMI

Bio-curation library for modelling cellular signalling
MIT License
7 stars 0 forks source link

Regions with same name are merged even if they have different range #10

Closed slegare2 closed 6 years ago

slegare2 commented 6 years ago

Example with two Binding interactions: 1) LRP6 binds WNT9B through LRP6's first beta-propeller region (range 16-298). 2) LRP6 binds WNT3A through LRP6's second beta-propeller region (range 630-904).

Once I create_nuggets with those interactions, the two beta-propeller regions are merged onto one region with range 16-904.

import json
import pickle
from kami.entities import (Gene, Region, Site, Residue, State, RegionActor, SiteActor)
from kami.interactions import (Binding, Modification)
from kami.hierarchy import (KamiHierarchy)
from kami.resolvers.black_box import create_nuggets

rule_list = []

rule_list.append(
    Binding(
        [RegionActor(
            gene=Gene(uniprotid="O75581", hgnc_symbol="LRP6"),
            region=Region(name="Six-bladed beta-propeller, TolB-like",
                          interproid="IPR011042", start=16, end=298))],
        [Gene(uniprotid="O14905", hgnc_symbol="WNT9A")]))

rule_list.append(
    Binding(
        [RegionActor(
            gene=Gene(uniprotid="O75581", hgnc_symbol="LRP6"),
            region=Region(name="Six-bladed beta-propeller, TolB-like",
                          interproid="IPR011042", start=630, end=904))],
        [Gene(uniprotid="P56704", hgnc_symbol="WTN3A")]))

hierarchy = KamiHierarchy()
create_nuggets(rule_list, hierarchy, anatomize=True)

# Print start and end of region.
node_id = "O75581_Region_Six-bladed beta-propeller, TolB-like_IPR011042_16_298"
start = (list(hierarchy.graph['action_graph'].node[node_id]["start"])[0])
end = (list(hierarchy.graph['action_graph'].node[node_id]["end"])[0])
print("start=", start, "end=", end)

# Get the KamiStudio file for visualization.
kstudio = hierarchy.get_studio_v1()
outfile = open('multiregion.json', 'w')
json.dump(kstudio, outfile, indent=4, sort_keys=False)