KarrLab/wc_rules

View on GitHub
examples/fceri_ji/submodels2/SykKinase.py

Summary

Maintainability
A
0 mins
Test Coverage
from .graphs import build_Syk, build_receptor, recruit_to_receptor, recruit_to_ligand
from .templates import TransPhosphorylationModel

from wc_rules.modeling.pattern import GraphContainer, Pattern
from wc_rules.modeling.model import AggregateModel

gRecSyk = recruit_to_receptor(build_receptor(['alpha','gamma']), build_Syk(['tsh2','aloop']))
gSykOnSyk = recruit_to_ligand(2,gRecSyk,gRecSyk.duplicate())

class SykKinaseModel(TransPhosphorylationModel):

    def __init__(self,name,aloop_state):
        g = Pattern(gSykOnSyk, constraints = [f'aloop_1.ph == {aloop_state}'])
        super().__init__(name,'aloop_2',g)
        self.verify(self.defaults)


model = AggregateModel(
    name = 'syk_kinase',
    models = [
        SykKinaseModel(name='aloop_unphosphorylated',aloop_state=False),
        SykKinaseModel(name='aloop_phosphorylated',aloop_state=True)
    ]
)

data =    {
    'aloop_unphosphorylated':     {'phosphorylation_rate': 100},
    'aloop_phosphorylated':     {'phosphorylation_rate': 200},
}

model.verify(data)
model.defaults = data