Comments
Description
Transcript
Andrew Phillips
Simulating Biological Systems in the Stochastic π-calculus Andrew Phillips [email protected] Ralf Blossey [email protected] Andrew Phillips - Trento 2006 1 Summary of Molecular Biology Andrew Phillips - Trento 2006 2 Understanding Biological Systems The Human Genome project generated vast quantities of data Challenge: Two complementary approaches: Look at experimental results and “infer” general system properties Build detailed models of systems and test these in the lab Traditional modelling tools do not scale: Understand and precisely describe the behaviour of biological systems If a small part of the model changes, need to update the rest e.g. Differential Equations, Chemical Notations... Need a more scalable approach. Andrew Phillips - Trento 2006 3 Process Calculi for Biology Ongoing Experiment: Modelling: Perform in silico experiments on biological system models Use these to formulate testable hypotheses for experimentation in vivo Analysis: Model very large systems incrementally By composing simpler models of subsystems in an intuitive way Simulation: Use process calculi to model, simulate and analyse biological systems A range of established techniques (types, equivalences, model checking) Could provide insight into fundamental properties of biological systems π-calculus: one of the simplest and most well-studied calculi Andrew Phillips - Trento 2006 4 Related Work Stochastic π-calculus proposed by [Priami, 1995] Used to model and simulate a range of biological systems: RTK MAPK pathway [Regev et al., 2001] Gene Regulation by positive Feedback [Priami et al., 2001] Cell Cycle Control in Eukaryotes [Lecca and Priami, 2003] First simulator for stochastic π-calculus [BioSPI] A subset of π-calculus with limited choice Compiles a calculus process to an FCP procedure Executed by the FCP Logix platform [Silverman et al., 1987] Andrew Phillips - Trento 2006 5 Outline: simulating biological systems in the stochastic π-calculus The stochastic π-calculus The SPiM language and simulator Repressilator Compositional Gene Networks Andrew Phillips - Trento 2006 6 The Stochastic π-calculus Andrew Phillips - Trento 2006 7 Calculus Syntax π::= ?x(m) !x(n) τr P::= π1.P1 + ... + πN.PN P1 | ... | PM X(n) Choice between actions Parallel composition of processes Instance of X with arguments n new z P Restriction of names z to a process X(m) = P Ε1, ... ,ΕN Definition of X, where fn(P) ⊆ m Union of definitions Ε::= Input value m on channel x at rate(x) s-1 Output value n on channel x at rate(x) s-1 Delay at r s-1 Andrew Phillips - Trento 2006 8 Graphical Syntax [Phillips and Cardelli, 2005] Choice Parallel Instance X(m) = P P new z ( π1.P1 + ... + πN.PN ) new z ( P1 | ... | PN ) new z X(n) E Definition Union X(m) = P Ε1, ... ,ΕN Andrew Phillips - Trento 2006 9 Graphical Syntax: Execution P Null Parallel new z 0 new z ( P1 | ... | PN ) Instance X(m) = P new z X(n) Ø During execution: Highlight nodes in the graph to represent state Draw links between nodes to represent complexes Andrew Phillips - Trento 2006 10 Execution: Stochastic Delay τr.P1 + ... + πN.PN Andrew Phillips - Trento 2006 11 Execution: Stochastic Delay τr.P1 + ... + πN.PN → P1 Andrew Phillips - Trento 2006 12 Execution: Interaction !x(n).P1 + ... + πN.PN | ?x(m).Q1 + ... + πM.QM Andrew Phillips - Trento 2006 13 Execution: Interaction {n/m} !x(n).P1 + ... + πN.PN → P1 | | ?x(m).Q1 + ... + πM.QM Q1{n/m} Andrew Phillips - Trento 2006 14 Execution: Binding new n (!x(n).P1 + ... + πN.PN ) | Andrew Phillips - Trento 2006 ?x(m).Q1 + ... + πM.QM 15 Execution: Binding {n/m} n new n (!x(n).P1 + ... + πN.PN ) → new n ( P1 | | Andrew Phillips - Trento 2006 ?x(m).Q1 + ... + πM.QM Q1{n/m} ) 16 The SPiM Language and Simulator with Luca Cardelli (Microsoft Research) Andrew Phillips - Trento 2006 17 Abstract Machine Defined an abstract machine for the stochastic π-calculus. Uses standard kinetic theory [Gillespie 1977] Probability of a reaction determined by: [Phillips and Cardelli, 2004] Reaction rate Number of reactants Proved both correct with respect to the calculus. Direct mapping to functional code. Implemented in F# / OCaml. Used as the basis for implementing the SPiM simulator. Andrew Phillips - Trento 2006 18 The SPiM Simulator [Phillips, 2005] Language Definition (v0.04) Andrew Phillips - Trento 2006 19 Repressilator Andrew Phillips - Trento 2006 20 Repressilator [Elowitz and Leibler, 2000] Andrew Phillips - Trento 2006 21 Repressilator: Genes let Gene() = do delay@transcribe; (Protein() | Gene()) or ?Promoter; delay@unblock; Gene() and Protein() = do !P; Protein() or delay@degrade val transcribe = 0.1 val degrade = 0.001 val unblock = 0.0001 val bind = 1.0 Andrew Phillips - Trento 2006 22 Repressilator: Network Andrew Phillips - Trento 2006 23 Repressilator: Oscillations Any of the genes can transcribe. Supposing tet starts first. Andrew Phillips - Trento 2006 24 Repressilator: Oscillations The Tet protein can inhibit the lambda gene Andrew Phillips - Trento 2006 25 Repressilator: Oscillations Lambda is now blocked, but lac can still transcribe. Andrew Phillips - Trento 2006 26 Repressilator: Oscillations The Lac protein can inhibit the tet gene. Andrew Phillips - Trento 2006 27 Repressilator: Oscillations Both the tet and lambda genes are blocked. Tet can degrade. Andrew Phillips - Trento 2006 28 Repressilator: Oscillations Now only the lac gene can transcribe Andrew Phillips - Trento 2006 29 Repressilator: Oscillations A large amount of Lac protein is produced, but lambda unblocks. Andrew Phillips - Trento 2006 30 Repressilator: Oscillations Eventually, the Lambda protein will overtake Lac. Oscillations... Andrew Phillips - Trento 2006 31 Repressilator: Results Alternate Oscillation of Proteins: 140 120 100 TetR() LacI() LambdacI() 80 60 40 20 0 0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000 Variable Oscillation of GFP: 160 140 120 100 GFP() 80 60 40 20 0 0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000 Andrew Phillips - Trento 2006 32 Compositional Gene Networks Andrew Phillips - Trento 2006 33 Combinatorial Synthesis [Guet et al., 2002] 3 genes: tetR, lacI, λcI 5 promoters: PL1, PL2, PT, Pλ-, Pλ+ 2 inputs: IPTG (represses Tet), aTc (represses Lac) 1 output: GFP (linked to Pλ-) 125 possible networks consisting of 3 promoter-gene units Andrew Phillips - Trento 2006 34 In Vivo Logic Gates [Guet et al., 2002] IPTG and aTc as boolean inputs, GFP as boolean output Andrew Phillips - Trento 2006 35 Unexpected Results [Guet et al., 2002] Andrew Phillips - Trento 2006 36 Library of Genes [Blossey et al., 2005] Constructed a library of genes: The circuits are built by simple combinations of the library e.g: D038() = (tet(PT) | lac(PT) | cI(PL2) | gfp(Plm)) D016() = (tet(PT) | lac(PL1) | cI(PL2) | gfp(Plm)) Stochastic simulation of resulting networks Andrew Phillips - Trento 2006 37 Library of Genes new PTetR @1.0: chan new PLacI @1.0: chan new PLambdacI @1.0: chan new PGFP @1.0: chan new RaTc @100.0: chan new RIPTG @100.0: chan val PL1 = (PLacI, 0.01, 0.0) val PL2 = (PLacI, 0.01, 0.0) val PT = (PTetR, 0.01, 0.0) val Plm = (PLambdacI, 0.01, 0.0) val Plp = (PLambdacI, 0.01, 1.0) [Blossey et al., 2005] let TetR() = rTr(PTetR,RaTc) let LacI() = rTr(PLacI,RIPTG) let LambdacI() = Tr(PLambdacI) let GFP() = Tr(PGFP) let IPTG() = Repressor(RIPTG) let aTc() = Repressor(RaTc) let tet(pr:promoter) = Gene(pr, TetR) let lac(pr:promoter) = Gene(pr, LacI) let cI(pr:promoter) = Gene(pr,LambdacI) let gfp(pr:promoter) = Gene(pr, GFP) D038() = (tet(PT) | lac(PT) | cI(PL2) | gfp(Plm)) D016() = (tet(PT) | lac(PL1) | cI(PL2) | gfp(Plm)) Andrew Phillips - Trento 2006 38 Simulation Results: D038 D038() = (tet(PT) | lac(PT) | cI(PL2) | gfp(Plm)) Andrew Phillips - Trento 2006 39 Thanks. Questions? Andrew Phillips - Trento 2006 40