Simulating the Dynamics of Complex Biological Systems Maria J Schilstra Biocomputation Research Group University of Hertfordshire, Hatfield, UK Stephen R. Martin Physical Biochemistry MRC National Instritute for Medical Resaerch, London, UK Computer simulation • “An attempt to model a real-life or hypothetical situation on a computer, so that it can be studied to see how the system works. By changing variables, predictions may be made about the behaviour of the system.” (Wikipedia) Running example Microtubule Dynamic Instability • Michison & Kirschner (1984): “Microtubules in vitro coexist in growing and shrinking populations which interconvert rather infrequently” Cartoon G-end (net growth) S-end (rapid shrinkage) “Rescue” “Catastrophe” Microtubule Dynamic Instability • Michison & Kirschner (1984): “microtubules in vitro coexist in growing and shrinking populations which interconvert rather infrequently” • Horio & Hotani (1986): – – – – Average lifetime of growing microtubules: 3 min Growth rate: 0.6 m/min (16 subunits/s) Average lifetime of shrinking microtubules: 18 s Shrinkage rate: 0.13 m/s (220 subunits/s) Model Notation Model notation “Petri-net” notation Chemical Reaction Notation Gn + TuT Gn+1 TuD TuT 3 Gn Sn Sn Sn-1 + TuD Sn + 3 TuT Gn+3 G S TuT TuD n MT Growing end Shrinking end Tubulin-GTP Tubulin-GDP Number of Tu in MT (TuM) Microtubule G S Petri-net? “Place” (pool, store, state) Contains “items” (tokens, molecules, particles) AB A B “Transition” (reaction, process) Can “fire”; has an average firing rate Transition firing? AB A B X Transition firing? 2A B A 2 A B2 B A B A B+X A+X B B A B A 2 A A Transition firing rate? J = rate at which B appears k (1/s) J = k.[A] (mol/(L.s)) AB A B J = k.nA (items/s) nA = [A].NA.Vol k (L/(mole.s)) J = k.[A][X] mol/(L.s)) A+X B A B A J = k.nA.[X] (items/s) nA = [A].NA.Vol Microtubule dynamic instability model TuD TuT 3 G S Transition firing TuD TuT 3 G S Transition firing TuD TuT 3 G S Counting TuM (bound Tu) TuD TuT 3 G S TuM Counting TuM (bound Tu) TuD TuT 3 G S TuM Firing rates TuT J = kSG nS[TuT]3 TuD 3 kSG J = kGG nG[TuT] kGG G S kGS J = kGS nG TuM kSS J = kSS nS Parameter values Initial conditions TuT J = kSG [S][TuT]3 TuD 3 kSG J = kGG [G][TuT] kGG G S J = kSS [S] kSS kGS kGG 1.6x106 M-1 s-1 kGS 0.0056 s-1 kSS 220 s-1 kSG 5.6x1013 M-3s-1 Vol 10x10-15 L J = kGS [G] TuM amount Conc (M) G 1 0.16x10-9 S 0 0 TuT 300 50x10-9 TuD 0 0 Stochastic Simulation Stochastic? • “Random or probabilistic but with some direction. For example the arrival of people at a post office might be random but average properties (such as the queue length) can be predicted.” (http://www.cs.ucl.ac.uk/staff/W.Langdon/gpdata/glossary.html) • Stochastic simulation: uses a random number generator to produce one or more possible time courses. Stochastic simulation 1. Assess which transitions are “enabled” (can fire) 2. Use a “weighted lottery” to determine which enabled transition will fire first (Tfirst), and when (tnext) 3. Let transition Tfirst fire at time tnext 4. Repeat from 1 as long as there are enabled transitions, and tnext < tstop Firing rates JGG = 1.6x106 x 50x10-9 x 1 = 0.08 s-1 TuTs) (i.e. lifetime Gn = 12.5 JGS = 0.0056 x 1 = 0.0056 s-1 (i.e. lifetimeTuD G = 180 s) 3 kSG J = kGG [G][TuT] kGG G S kSS kGS kGG 1.6x106 M-1 s-1 kGS 0.0056 s-1 kSS 220 s-1 kSG 5.6x1013 M-3s-1 Vol 10x10-15 L J = kGS [G] TuM amount Conc (M) G 1 0.16x10-9 S 0 0 TuT 300 50x10-9 TuD 0 0 Probability that reaction has occurred (Cumulative distribution functions) 1.2 Gn Gn+1 (lifetime Gn: 12.5 s) 1 P 0.8 0.6 G S (lifetime G: 180 s) 0.4 0.2 0 0 50 100 150 t-t 0 (s) P 1 e k ( t t 0 ) 200 250 The weighted lottery 1.2 1 0.8 P rGG = 0.76 rGS = 0.40 0.6 0.4 0.2 0 0 50 tGG = 18 s 100 150 t-t 0 (s) tGS = 92 s 200 250 G G transition fires 0 18 s 20 40 60 TuD TuT 3 kSG kGG G S kGS TuM kSS time (s) The weighted lottery (continued) 1.2 1 rGG = 0.98 P 0.8 rGS = 0.15 0.6 0.4 0.2 0 0 50 tGG = 49 s 100 150 t-t 0 (s) tGS = 30 s 200 250 G S transition fires 0 18 s 20 40 30 s 60 TuD TuT 3 kSG kGG G S kGS TuM kSS time (s) Other transitions enabled 0 18 s 20 40 30 s 60 TuD TuT 3 kSG kGG G S kGS TuM kSS time (s) Trajectory of TuM [TuT] constant (10 M) - 150,000 events 25,000 20,000 15,000 DeltaTuM n Delta 10,000 GG 5,000 - SS -5,000 -10,000 -15,000 -20,000 -25,000 0 600 1200 1800 2400 3000 Time (s) 3600 4200 4800 [TuT] variable 2 million events 150 60 MT length (m) 100 50 40 MT length 30 50 20 10 0 0 0 60 120 Time (min) 180 [TuT], [TuD] (M) TuD TuT More than one MT end TuT TuD G S n G S G n Method 1: modelling all items individually S n Trajectories (6 million events) 60 60 40 40 MT length 30 20 20 [TuT] 10 0 0 0 20 40 Time (min) 60 [TuT] (M) MT length (m) 50 Improving efficiency “First Reaction Algorithm” (Gillespie,1976) • After most recent transition firing at time t: – For each transition Ti: • Compute current firing rate Ji for Ti – Draw two numbers, r1 and r2 • • • • t next t Compute J = sum of all J Compute firing time tfire from J, r1, and t Construct roulette wheel (pie chart) for all J Spin wheel over r2 x 360º, find associated T – Set t to tnext and fire T log[ 1 r2 ] J J1 J4 J2 J3 Algorithms • Accurate (no further assumptions) – First Reaction (Gillespie, 1976) – Next Reaction (Gibson & Bruck, 2000) • Priority queue; exploits independence in system • Approximate – Tau-leaping (Gillespie, 2001) • Assumes that “leap condition” is satisfied (leap condition: negligible changes in firing probability over interval Tau) • Multiple firings per step – Chemical Langevin • Assumes that 1) leap condition is satisfied; 2) All current firing rates are much larger than 1/Tau (“Large yet small”) • Like deterministic trajectory with superimposed noise Deterministic Simulation Deterministic? 60 60 50 40 40 30 20 20 10 0 0 0 20 40 60 Time (min) Average of many trajectories converge to a smooth path, that is entirely determined by the initial conditions Assessing the average trajectory • Stochastic – Many trajectories – Many particles (larger volume) • Deterministic – Numerical integration of coupled ODEs (ordinary differential equations) ODEs • ODE: defines how system variables change with another variable • General form: – d[X]/dt = v+(X) – v-(X) Change in [X] over very small time interval dt Rate at which X is produced Rate at which X is consumed – v+(X) = J+(X) and v-(X) = J-(X) Composing ODEs from firing rates TuD TuT JSG = kSG [S][TuT]3 v+(S) = JSS + JGS 3 kSG kGG JGG = kGG [G][TuT] G S kGS JGS = kGS [G] TuM kSS JSS = kSS [S] v(S) = JSG + JSS d[S ] J SS J GS ( J SS J SG ) dt J GS J SG kGS [G ] k SG [ S ][TuT ]3 The full system Growing ends Shrinking ends Free Tu-GTP Free Tu-GDP Bound Tu d [G ] k SG [ S ][TuT ]3 kGS [G ] dt d[S ] kGS [G ] k SG [ S ][TuT ]3 dt d [TuT ] kGG [G ][TuT ] 3k SG [ S ][TuT ]3 dt d [TuD ] k SS [ S ] dt d [TuM ] kGG [G ][TuT ] k SS [ S ] dt Predicting average trajectories: Numerical integration 1. Set component concentrations to their initial values e.g. [TuT] = 50.0 M, [G] =1.6 nM, [S]=[TuM]=[TuD]=0.0 2. For each component, compute concentration change over small time interval t e.g. [TuM] = [TuM]t+t – [TuM]t = {kGS[G]t [TuT]t - kSG[S]t} x t 3. Solve all concentrations at t + t e.g. [TuM]t+t = 0.0 M + (1.6x106 M-1s-1 x 50 M x 1.6 nM – 220 s-1 x 0.0 M) x 1 ms = 0.128 nM 4. Set t to t+t, and [X]t to [X]t+t, and repeat from 2 until end condition is fulfilled e.g. t > tmax or no more significant changes in any concentration Result 60 60 50 40 40 30 20 20 10 0 0 0 20 40 Time (min) 60 Things to keep in mind • Main assumption: firing rates (J) remain constant over t – Therefore: [X] used to compute J must be negligible, so that t must be made sufficiently small – Sophisticated algorithms calculate most efficient t before each time step – Assessment of efficient t uses “accuracy” parameter • Approach invalid when J not constant over t (within set limits) – Causes: accuracy too low – Warning signs: wildly oscillating trajectories, negative concentrations, very different results for greater accuracy Algorithms • Forward (explicit) – Solve: • [G]t+t = [G]t + { kSG[S]t – kGS[G]t [TuT]t3 } x t – Examples: Euler, Runge-Kutta, Adams-Bashford – Use: for many ODE systems (easier to implement, individual steps less computationally intensive than implicit methods) • Backward (implicit) – Solve: • [G]t= [G]t +t + { kSG[S]t +t – kGS[G]t +t [TuT]t +t 3 } x t – Examples: Gear, Adams-Moulton – Use: for “stiff” systems (concentrations changing on very different time scales) Stochastic vs deterministic approaches Stochastic • Deal with finite numbers of items • Cheap assessment of inherent “noise” • Assessment of average population behaviour expensive • Easy to form mental picture • Easy to incorporate in physical models Deterministic • Deal with populations of infinite size • No information about inherent noise • Assessment of average population behaviour computationally cheap • More difficult to grasp and use • Integration with other model types not trivial Stochastic or deterministic? • “Well-stirred containers” – Deterministic faster, results less confusing than stochastic • “Noise” (deviations from average) important for interpretation experimental results – Many items: deterministic with superimposed variation; approximate stochastic (Tau-leap, chemical Langevin) – Few items: accurate stochastic (Gillespie, Gibson-Bruck) • Firing probabilities depend on geometry that changes after each event (e.g. detailed description of microtubule ends) – Accurate stochastic, needs tailor-made software Software tools • Programming languages – C/C++, C#, Delphi , Java, Python, VBasic… • High level math/statistics software – Maple, Mathematica, MATLAB, Octave, R … • Dynamical Systems software – Berkeley-Madonna, Dymola, ModelMaker, XPP… • Dedicated chemical kinetics software – Deterministic: CellDesigner, DBSolve , E-Cell, Gepasi, Jarnac/JDesigner, Promot-DIVA, PySces, Virtual Cell… – Stochastic: Dizzy, StochKit… – Both: Copasi, NetBuilder’… Acknowledgement • Peter Bayley, Justin Molloy (NIMR, London) • The SBML Forum • Jack Correia • The Wellcome Trust, EPSRC, UH