150 likes | 282 Views
2IF35: Formal Modelling in Cell Biology. Glycolysis in PRISM & Maude Fall 2007 Mohammed El-Kebir Koen Schuurmans Monique Hendriks Tim Muller. Outline. Glycolysis in yeast Interesting properties Model in Maude Model in PRISM Comparison of models. Glycolysis.
E N D
2IF35: Formal Modelling in Cell Biology Glycolysis in PRISM & Maude Fall 2007 Mohammed El-Kebir Koen Schuurmans Monique Hendriks Tim Muller
Outline • Glycolysis in yeast • Interesting properties • Model in Maude • Model in PRISM • Comparison of models
Glycolysis • Glucose is as a source of energy in many organisms • During glycolysis the energy is released • Oxidation of glucose • Netto production of 2 ATP molecules • Besides ATP there are several other side-products We will consider glycolysis in yeast
Model in Maude mod GLYCOLYSIS-YEAST-GALAZZO is sorts Substrate Product Intermediate Substance . subsorts Substrate Product Intermediate < Substance . op _ _ : Substance Substance -> Substance [ctor assoc comm id: null] . op null : -> Substance . ops Glc-out ATP ADP : -> Substrate . ops Glc-in G6P FDP PEP : -> Intermediate . ops Carbo Glycerol Ethanol : -> Product . rl [Glucose-transporter] : Glc-out => Glc-in . rl [Hexokinase] : Glc-in ATP => G6P ADP . rl [Enzyme3] : G6P ATP => Carbo ADP . rl [PGI-PFK] : G6P ATP => FDP ADP . rl [Enzyme5] : FDP ADP ADP => PEP PEP ATP ATP . rl [Enzyme6] : PEP PEP ADP ADP => Ethanol Ethanol ATP ATP . rl [Enzyme7] : FDP => Glycerol Glycerol . rl [ATPase] : ATP => ADP . endm
Model in Maude rl [Hexokinase]:Glc-in ATP => G6P ADP Rl[Enzyme6]:PEP PEP ADP ADP =>Ethanol Ethanol ATP ATP
Model checking in Maude • Using rewritemaude> rew Glc-in ATP ATPrewrites: 2 in 0ms cpu (0ms real) (~ rewrites/second)result Substance: ADP ADP Carbo • Using searchMaude> search Glc-in ATP ATP =>* Ethanol s:Substance .search in MC-gallazzo : Glc-in ATP ATP =>* Ethanol s:Substance .Solution 1 (state 11)states: 12 rewrites: 12 in 0ms cpu (0ms real) (~ rewrites/second)s:Substance --> ATP ATP EthanolSolution 2 (state 12)states: 13 rewrites: 13 in 0ms cpu (0ms real) (~ rewrites/second)s:Substance --> ATP ADP Ethanol • Show PathMaude> show path 11 .state 0, Substance: ATP ATP Glc-in =[Hexokinase]===>state 1, Substance: ATP ADP G6P =[PGI-PFK]===>state 4, Substance: ADP ADP FDP =[Enzyme5]===>state 7, Substance: ATP ATP PEP =[ATPase]===>state 9, Substance: ATP ADP PEP PEP =[ATPase]===>state 10, Substance: ADP ADP PEP PEP =[Enzyme6]===>state 11, Substance: ATP ATP Ethanol Ethanol • Using LTL formulae
Model checking in Maude(LTL) load galazzo load model-checker mod MC-gallazzo is inc GLYCOLYSIS-YEAST-GALAZZO . inc MODEL-CHECKER . inc NAT . sort Place . subsort Substrate Product Intermediate < Place < Substance . op mc : Substance -> State [ctor] . var M : Substance . var P : Place . var n : Nat . op count : Substance Place -> Nat . eq count(P M,P) = s count(M,P) . eq count(M,P) = 0 [owise] . op nEthanol : Nat -> Prop . eq mc(M) |= nEthanol(n) = count(M,Ethanol) == n . endm
Model checking in Maude(LTL) • Model checking by finding counter-examples • []~ Ethanol, when starting with Glc-in ATP ATPmaude >red modelCheck(vm(Glc-in ATP ATP), []~ nEthanol(2)) .rewrites: 40 in 0ms cpu (0ms real) (~ rewrites/second)result ModelCheckResult: counterexample({vm(ATP ATP Glc-in),'Hexokinase} {vm(ATP ADP G6P),'PGI-PFK} {vm(ADP ADP FDP),'Enzyme5} {vm(ATP ATP PEP PEP), 'ATPase} {vm(ATP ADP PEP PEP),'ATPase} {vm(ADP ADP PEP PEP),'Enzyme6} {vm(ATP ATP Ethanol Ethanol),'ATPase} {vm(ATP ADP Ethanol Ethanol),'ATPase}, {vm(ADP ADP Ethanol Ethanol),deadlock}) • Glc-in ATP ATP => []<> EthanolMaude> red modelCheck(vm(Glc-in ATP ATP), []<> nEthanol(2)) .rewrites: 18 in 0ms cpu (0ms real) (~ rewrites/second)result ModelCheckResult: counterexample({vm(ATP ATP Glc-in),'Hexokinase} {vm(ATP ADP G6P),'Enzyme3}, {vm(ADP ADP Carbo),deadlock}) • Fairness
Model in PRISM • One module per molecule; Example (pep): module pep PEP : [0..MAX_MOLECULES] init 0; [eq5] PEP < (MAX_MOLECULES - 1) -> 1 : (PEP' = PEP + 2); [eq6] PEP > 1 -> PEP : (PEP' = PEP - 2); endmodule • Synchronization goes over reactions; Example (eq5): [eq5] PEP < (MAX_MOLECULES - 1) -> 1 : (PEP' = PEP + 2); // in module PEP [eq5] FDP > 0 -> FDP : (FDP' = FDP - 1); // in module FDP [eq5] ATP < (MAX_MOLECULES - 1) & (AXP > ATP) -> AXP - ATP : (ATP' = ATP + 2); // in ATP [eq5] true -> Vm5 : true; // in module baserates
Model checking in PRISM • Modal formulas: • P=? [ETHANOL=0 U CARBO>=1] • P>0.8 [ATP>0 U ETHANOL>3] • P=? [true U<=1 ETHANOL>=1] • Checking with modal formulas: • Verification • Tiny models only • Single simulation • Not suitable for precise results • Multiple simulations • Not formal
Results found • Verification: • P=? [ETHANOL=0 U CARBO>=1] --> 0.223 IN 221 sec (7 mol) • P>0.8 [ATP>0 U ETHANOL>3] --> No answer IN 1800 sec (7 mol) • P=? [true U<=1 ETHANOL>=1] --> 0.159 IN 0.54 sec (5 mol) • P=? [true U<=1 ETHANOL>=1] --> 0.305 IN 102.187 sec (8 mol) • Multiple simulations (1000 steps): • P=? [true U ETHANOL>=1] --> 1.0 IN 401 sec (>>500 mol) • Single simulations (mean of 3): • ATP 60; GLC 50 • Alc 1842, CO2 546, Glyc 366 • ATP 120; GLC 50 • Alc 2378, CO2 607, Glyc 208 • ATP 120; GLC 150 • Alc 2496, CO2 738, Glyc 498 • ATP 60; GLC 150 • Twice dead, one time, barely alive: Alc 1486, CO2410, Glyc 206
Simplifications in PRISM model • Galazzo model uses Michaelis-Menten kinetics • Enzyme has a maximal rate, which can only be reached if substrate is abundant • Reversible reactions are not modeled • Only forward kinetics • Rates are chosen arbitrarily, no experimental justification • Feedback loops have little impact
Comparison • Maude is purely qualitative, as no rates can be expressed • Prism can be both quantitative and qualitative • State explosion in PRISM, makes model checking infeasible • In PRISM you can simulate a run • Maude considers all possibilities