simulating biological systems in the stochastic -calculus andrew phillips with luca cardelli...
TRANSCRIPT
Simulating Biological Systems in the Stochastic -calculusSimulating Biological Systems in the Stochastic -calculus
Andrew Phillips with Luca Cardelli
Microsoft Research, Cambridge UK
Andrew Phillips with Luca Cardelli
Microsoft Research, Cambridge UK
Biological ComputingBiological Computing
Modelling BiologyModelling Biology
The Human Genome project:Scientists hoped that DNA code would help predict system behaviour
Functional meaning of the code is still a mystery
Systems Biology: Understand and precisely describe the behaviour of biological systems
Two complementary approaches:Look at experimental results and “infer” general system properties
Build detailed models of systems and test these in the lab
Biological Modelling:Need tools for modelling complex parallel systems.
Should also scale up to very large systems.
The beginnings of a biological programming language...
The Human Genome project:Scientists hoped that DNA code would help predict system behaviour
Functional meaning of the code is still a mystery
Systems Biology: Understand and precisely describe the behaviour of biological systems
Two complementary approaches:Look at experimental results and “infer” general system properties
Build detailed models of systems and test these in the lab
Biological Modelling:Need tools for modelling complex parallel systems.
Should also scale up to very large systems.
The beginnings of a biological programming language...
Programming BiologyProgramming Biology
Languages for complex, parallel computer systems:Languages for complex, parallel computer systems:
Languages for complex, parallel biological systems:Languages for complex, parallel biological systems:
stochastic -calculus
Reactions vs. ComponentsReactions vs. Components
Traditional modelling: model individual reactionsTraditional modelling: model individual reactions
Reactions.txt
Large, Connected Reaction GraphsLarge, Connected Reaction Graphs
http://www.celldesigner.org/
Reactions vs. ComponentsReactions vs. Components
Traditional modelling: model individual reactionsTraditional modelling: model individual reactions
Stochastic -calculus: model componentsStochastic -calculus: model components
Reactions.txt
Build complex models incrementally, by direct composition of simpler components:Build complex models incrementally, by direct
composition of simpler components:
Compositional ModellingCompositional Modelling Graph.txt
Graph.txt
A mathematical programming language
A range of analysis techniques (types, equivalences, model checking)Could provide insight into fundamental properties of biological systems
A mathematical programming language
A range of analysis techniques (types, equivalences, model checking)Could provide insight into fundamental properties of biological systems
Model AnalysisModel Analysis Graph.txt
Related WorkRelated 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]
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]
OutlineOutline
Project Overview
Gene Networks
Immune System Pathway
Project Overview
Gene Networks
Immune System Pathway
Project OverviewProject Overview
Graphical Stochastic -calculusGraphical Stochastic -calculus
Display stochastic -calculus models as graphs[Phillips and Cardelli, Bioconcur 2005]
Helps make the stochastic -calculus more accessible
Defined a graphical calculus and graphical execution model
Proved equivalent to the stochastic -calculus
[Phillips, Cardelli and Castagna, TCSB 2006]
Display stochastic -calculus models as graphs[Phillips and Cardelli, Bioconcur 2005]
Helps make the stochastic -calculus more accessible
Defined a graphical calculus and graphical execution model
Proved equivalent to the stochastic -calculus
[Phillips, Cardelli and Castagna, TCSB 2006]
PROVED EQUIVALENT
let generate_pep(k:float,free:chan,bound:chan,c:chan,e:chan)=
delay@gpep;(pep(k,free,bound,c,e)|generate_pep(k,free,bound,c,e))
and pep(k:float,free:chan,bound:chan,c:chan,e:chan)= (
new u@k:chan
or !bind(u,c,e);pep_bound(u,k,free,bound,c,e)
or delay@dpep
)
and pep_bound(u:chan,k:float,free:chan,bound:chan,c:chan,e:chan) =
?u;pep(k,free,bound,c,e)
let TPN()= (
new [email protected]:chan
!bindT(uT);(?uT;TPN())
)
let MHCo()=
do ?bind(u,c,e);MHCo_pep(u,c,e)
or ?bindT(uT);MHCo_TPN(uT)
and MHCo_pep(u:chan,c:chan,e:chan)=
do delay@trigger;MHCt_pep(u,c,e)
or !u;MHCo()
and MHCt_pep(u:chan,c:chan,e:chan)=
do !u;delay@close;MHCc()
or delay@close;MHCc_pep(u,c,e)
and MHCc_pep(u:chan,c:chan,e:chan)=
do delay@open;MHCo_pep(u,c,e)
or !c
and MHCc()=
do ?bindT(uT);MHCc_TPN(uT)
or delay@open;MHCo()
and MHCo_TPN(uT:chan)=
do ?bind(u,c,e);MHCo_TPN_pep(u,c,e,uT)
or !uT;MHCo() (* *)
and MHCo_TPN_pep(u:chan,c:chan,e:chan,uT:chan)=
do delay@r*trigger;MHCt_TPN_pep(u,c,e,uT)
or !u;MHCo_TPN(uT)
and MHCt_TPN_pep(u:chan,c:chan,e:chan,uT:chan)=
do !u;delay@close;MHCc_TPN(uT)
or delay@close;MHCc_TPN_pep(u,c,e,uT)
and MHCc_TPN_pep(u:chan,c:chan,e:chan,uT:chan)=
do delay@open;MHCo_TPN_pep(u,c,e,uT)
or !uT;MHCc_pep(u,c,e)
and MHCc_TPN(uT:chan)=
do delay@open;MHCo_TPN(uT)
or !uT;MHCc() (* *)
The Stochastic Pi MachineThe Stochastic Pi Machine
A simulation algorithm for stochastic -calculus[Phillips and Cardelli, Bioconcur 2004]
Based on standard theory of chemical kinetics [Gillespie 1977]
The probability of a reaction is proportional to the rate of the reaction times the number of reactants.
Proved correct with respect to the stochastic -calculus.
A simulation algorithm for stochastic -calculus[Phillips and Cardelli, Bioconcur 2004]
Based on standard theory of chemical kinetics [Gillespie 1977]
The probability of a reaction is proportional to the rate of the reaction times the number of reactants.
Proved correct with respect to the stochastic -calculus.
PROVED CORRECT
The SPiM SimulatorThe SPiM Simulator
Simulation algorithm mapped to functional code (OCaml / F#)Used as the basis for implementing the SPiM simulator.
[Phillips, SPiM 2006]
Close correspondence between formal algorithm and functional code
Correct specification improves confidence in simulation results
Used in various research centres (UK, France, Italy, Sweden...)
Simulation algorithm mapped to functional code (OCaml / F#)Used as the basis for implementing the SPiM simulator.
[Phillips, SPiM 2006]
Close correspondence between formal algorithm and functional code
Correct specification improves confidence in simulation results
Used in various research centres (UK, France, Italy, Sweden...)
http://research.microsoft.com/~aphillip/spim
Gene Networks LibraryGene Networks Library
Proposed a combinatorial library of gene gates [Blossey, Cardelli, Phillips, TCSB 2006]
Used as building blocks to model complex gene networks
Explain behaviour of controversial gene networks engineered in vivo
Proposed a combinatorial library of gene gates [Blossey, Cardelli, Phillips, TCSB 2006]
Used as building blocks to model complex gene networks
Explain behaviour of controversial gene networks engineered in vivo
© 2000 Elowitz, M.B., Leibler. S. A Synthetic Oscillatory Network of Transcriptional Regulators. Nature 403:335-338.
0
20
40
60
80
100
120
140
160
0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000
!tet
!lambda
!lac
!gfp
Immune System ModellingImmune System Modelling
Model of MHC Class I Antigen Presentation A key pathway in the immune system
[Goldstein, MPhil Dissertation 2005]
Ongoing collaboration with Immunologists at Southampton University
[Cardelli, Elliott, Goldstein, Phillips, Werner. In preparation]
Model of MHC Class I Antigen Presentation A key pathway in the immune system
[Goldstein, MPhil Dissertation 2005]
Ongoing collaboration with Immunologists at Southampton University
[Cardelli, Elliott, Goldstein, Phillips, Werner. In preparation]
© 2003 Nature Reviews Immunology, 3(12):952–96.© 2003 Current Opinion in Immunology, 15:75–81.
Gene NetworksGene Networks
withLuca Cardelli (MSR Cambridge)Ralf Blossey (IRI Lille)
withLuca Cardelli (MSR Cambridge)Ralf Blossey (IRI Lille)
Gene with Negative ControlGene with Negative Control
val transcribe = 0.1 val degrade = 0.001
val unblock = 0.0001
new [email protected]:chan new [email protected]:chan
let Neg(a:chan,b:chan) =
do delay@transcribe; ( Protein(b) | Neg(a,b) )
or ?a; delay@unblock; Neg(a,b)
and Protein(b:chan) =
do !b; Protein(b)
or delay@degrade
run Neg(a,b)
val transcribe = 0.1 val degrade = 0.001
val unblock = 0.0001
new [email protected]:chan new [email protected]:chan
let Neg(a:chan,b:chan) =
do delay@transcribe; ( Protein(b) | Neg(a,b) )
or ?a; delay@unblock; Neg(a,b)
and Protein(b:chan) =
do !b; Protein(b)
or delay@degrade
run Neg(a,b)
Graph.txt
transcribe = 0.1unblock = 0.0001
degrade = 0.001rate(a,b) = 1.0
Source.txt
Neg(a,b) produces protein b and is blocked by protein aNeg(a,b) produces protein b and is blocked by protein a
ba
Neg GateNeg Gate
A protein b can be transcribed at rate 0.1 s-1A protein b can be transcribed at rate 0.1 s-1
x1
Neg GateNeg Gate
Another protein b can be transcribedAnother protein b can be transcribed
x1
x1
Neg GateNeg Gate
And another...And another...
x1
x2
Neg GateNeg Gate
A protein b can be degraded at rate 0.001 s-1A protein b can be degraded at rate 0.001 s-1
x1
x3
Neg GateNeg Gate
Equilibrium between transcription and degradationEquilibrium between transcription and degradation
x1
x2
Neg GateNeg Gate
Level of protein b stabilises at around 100Level of protein b stabilises at around 100
Results
0
20
40
60
80
100
120
140
0 50000 100000 150000 200000
!b
Results
Repressilator [Elowitz and Leibler, 2000]Repressilator [Elowitz and Leibler, 2000]
A gene network engineered in live bacteria.
Modelled as a simple combination of Neg gates:
A gene network engineered in live bacteria.
Modelled as a simple combination of Neg gates:
Neg(lac,tet)
| Neg(tet,lambda)
| Neg(lambda,lac)
| Neg(tet,gfp)
Source.txt
© 2000 Elowitz, M.B., Leibler. S. A Synthetic Oscillatory Network of Transcriptional Regulators. Nature 403:335-338.
0
20
40
60
80
100
120
140
160
0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000
!tet
!lambda
!lac
!gfp
Repressilator: DebuggingRepressilator: Debugging
Why do we get oscillations?
Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)
Why do we get oscillations?
Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)tet
lambdalac
Graph.txt
Repressilator: Debugging (1)Repressilator: Debugging (1)
Initially there is one copy of each gene
Any one of the proteins can be transcribed at rate 0.1
Initially there is one copy of each gene
Any one of the proteins can be transcribed at rate 0.1
Graph.txt
x1 x1 x1
x1 x1 x1
Repressilator: Debugging (2)Repressilator: Debugging (2)
The tet protein can block the lambda gene at rate 1.0The tet protein can block the lambda gene at rate 1.0
x1
x1
x1
x1
Repressilator: Debugging (3)Repressilator: Debugging (3)
Now no lambda protein can be transcribed.
But lac protein can still be transcribed.
Now no lambda protein can be transcribed.
But lac protein can still be transcribed.
x1
x1 x1
Repressilator: Debugging (4)Repressilator: Debugging (4)
The lac protein can block the tet gene at rate 1.0The lac protein can block the tet gene at rate 1.0
x1
x1 x1
x1
x1
x1
Repressilator: Debugging (5)Repressilator: Debugging (5)
Now no tet protein can be transcribed.
All of the tet protein eventually degrades at rate 0.001
Now no tet protein can be transcribed.
All of the tet protein eventually degrades at rate 0.001
x1 x1
x1
x1
x1
Repressilator: Debugging (5)Repressilator: Debugging (5)
Meanwhile, lots of lac protein is transcribedMeanwhile, lots of lac protein is transcribed
x1
x1
x1
x1
Repressilator: Debugging (363)Repressilator: Debugging (363)
Represents one oscillation cycle
Eventually, the lambda gene unblocks at rate 0.0001
Represents one oscillation cycle
Eventually, the lambda gene unblocks at rate 0.0001
x100
x1
x1
x100
Repressilator: Debugging (2173)Repressilator: Debugging (2173)
The lambda protein can now take over...The lambda protein can now take over...
x1
Repressilator: ResultsRepressilator: Results
Alternate oscillation of proteins: tet, lac, lambda, tet, ...Alternate oscillation of proteins: tet, lac, lambda, tet, ...
Results
0
20
40
60
80
100
120
140
160
0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000
!tet
!lambda
!lac
tet
lambdalac
tet
lambdalac
tet
lambdalac
Refined Neg GateRefined Neg Gate
let Neg(a,b) = (
do delay@transcribe; (Protein(b) | Neg(a,b))
or !a(u1); Blocked(a,b,u1)
)
and Blocked(a,b,u1) = (
do ?u1; Neg(a,b)
or !a(u2); ?u2; Blocked(a,b,u1)
)
and Protein(b) = (
do delay@degrade
or ?b(u); !u; Protein(b)
)
let Neg(a,b) = (
do delay@transcribe; (Protein(b) | Neg(a,b))
or !a(u1); Blocked(a,b,u1)
)
and Blocked(a,b,u1) = (
do ?u1; Neg(a,b)
or !a(u2); ?u2; Blocked(a,b,u1)
)
and Protein(b) = (
do delay@degrade
or ?b(u); !u; Protein(b)
)
Graph.txt
Source.txt
Refined Neg gate with cooperative binding
Different implementation, same main program
Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)
Refined Neg gate with cooperative binding
Different implementation, same main program
Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)
Negp Gate with InhibitorNegp Gate with Inhibitor
val transcribe = 0.1 val degrade = 0.001
val unblock = 0.0001 new [email protected]:chan new [email protected]:chan new [email protected]:chan
let Negp(a:chan,b:chan,r:chan) = do delay@t; (Proteinp(b,r) | Negp(a,b,r)) or ?a; delay@u; Negp(a,b,r)
and Proteinp(b:chan,r:chan) = do !b; Proteinp(b,r) or ?r or delay@d
let Inh(r:chan) = !r; Inh(r)
Run Negp(a,b,r)
val transcribe = 0.1 val degrade = 0.001
val unblock = 0.0001 new [email protected]:chan new [email protected]:chan new [email protected]:chan
let Negp(a:chan,b:chan,r:chan) = do delay@t; (Proteinp(b,r) | Negp(a,b,r)) or ?a; delay@u; Negp(a,b,r)
and Proteinp(b:chan,r:chan) = do !b; Proteinp(b,r) or ?r or delay@d
let Inh(r:chan) = !r; Inh(r)
Run Negp(a,b,r)
Graph.txtSource.txt
r
ba
transcribe = 0.1unblock = 0.0001
degrade = 0.001rate(a,b,r) = 1.0
Bacteria Logic Gates [Guet et al., 2002]Bacteria Logic Gates [Guet et al., 2002]
3 genes: tetR, lacI, cI
5 promoters: PL1, PL2, PT, P-, P+
125 possible networks consisting of 3 promoter-gene units
2 inputs: IPTG (represses Tet), aTc (represses Lac)
1 output: GFP (linked to P-)
3 genes: tetR, lacI, cI
5 promoters: PL1, PL2, PT, P-, P+
125 possible networks consisting of 3 promoter-gene units
2 inputs: IPTG (represses Tet), aTc (represses Lac)
1 output: GFP (linked to P-)
© 2002 AAAS. Reprinted with permission from Guet et al. Combinatorial Synthesis of Genetic Networks. Science 296 (5572): 1466 - 1470
Bacteria Logic Gates [Guet et al., 2002]Bacteria Logic Gates [Guet et al., 2002]
IPTG, aTc as boolean inputs, GFP as boolean outputIPTG, aTc as boolean inputs, GFP as boolean output
© 2002 AAAS. Reprinted with permission from Guet et al. Combinatorial Synthesis of Genetic Networks. Science 296 (5572): 1466 - 1470
D038() = tet() | lac() | cI() | gfp()tet() = Negp(TetR,TetR,aTc)lac() = Negp(TetR,LacI,IPTG)cI() = Neg(LacI,lcI)gfp() = Neg(lcI,GFP)
D038() D038() | Inh(aTc)D038() | Inh(IPTG)D038() | Inh(aTc) | Inh(IPTG)
Combinatorial Library of GenesCombinatorial Library of Genes
Model complex gene networks from simpler building blocks.
Also used simulation to investigate system behaviour.
[Blossey, Cardelli, Phillips, TCSB 2006]
Model complex gene networks from simpler building blocks.
Also used simulation to investigate system behaviour.
[Blossey, Cardelli, Phillips, TCSB 2006]
Immune System Modelling:MHC I Antigen PresentationImmune System Modelling:MHC I Antigen Presentation
withLuca Cardelli (MSR Cambridge)Leonard Goldstein (Cambridge University)Tim Elliott (Southampton University)Joern Werner (Southampton University)
withLuca Cardelli (MSR Cambridge)Leonard Goldstein (Cambridge University)Tim Elliott (Southampton University)Joern Werner (Southampton University)
MHC I Antigen PresentationMHC I Antigen Presentation
A key pathway of the immune system:A key pathway of the immune system:
MHC I complexes can signal when a cell is infected.
They present peptides (small pieces of virus or bacteria) at the surface of infected cells.
A way of marking infected cells for destruction.
© 2003 Jonathan W. Yewdell, Eric Reits, and Jacques Neefjes. Making sense of mass destruction: quantitating MHC class I antigen presentation. Nature Reviews Immunology, 3(12):952–96.
MHC I Antigen PresentationMHC I Antigen Presentation
[© 2005 from Immunobiology, Sixth Edition by Janeway et al. Reproduced by permission of Garland Science/Taylor & Francis LLC.][© 2005 from Immunobiology, Sixth Edition by Janeway et al. Reproduced by permission of Garland Science/Taylor & Francis LLC.]
MHC I AssemblyMHC I Assembly
MHC I complexes follow an assembly line:MHC I complexes follow an assembly line:
© 2003 Antony N Antoniou, Simon J Powis, and Tim Elliott. Assembly and export of MHC class I peptide ligands. Current Opinion in Immunology, 15:75–81.
Peptide Selection: Flytrap ModelPeptide Selection: Flytrap Model
MHC I captures peptides like a Venus Flytrap. Sensitive to disease peptides only.MHC I captures peptides like a Venus Flytrap. Sensitive to disease peptides only.
peptide enters open MHC
disease peptide is capturedand presented at cell surface
non diseasepeptide escapes
Flytrap Model: -calculusFlytrap Model: -calculus Graph.txtSource.txt
x1
x1 x200 x200
x1
x1 x200 x199
Flytrap Model: -calculusFlytrap Model: -calculus
u
x1
Flytrap Model: -calculusFlytrap Model: -calculus
x1
x1 x200 x199
u
x1
Flytrap Model: -calculusFlytrap Model: -calculus
x1
x1 x200 x199
u
x1
Simulation ResultsSimulation Results
Tapasin allows disease peptides to be rapidly selected in favour of non-disease peptides.
Next steps: Investigate influence of tapasin in the lab.
Incrementally build a more detailed immune system model.
Construct a minimal functional model of the system.
Tapasin allows disease peptides to be rapidly selected in favour of non-disease peptides.
Next steps: Investigate influence of tapasin in the lab.
Incrementally build a more detailed immune system model.
Construct a minimal functional model of the system.
No Tapasin Always with Tapasin Transient binding to Tapasin
0
20
40
60
80
100
120
140
160
0 200 400 600 800 10000
20
40
60
80
100
120
140
160
0 200 400 600 800 10000
20
40
60
80
100
120
140
160
0 200 400 600 800 1000
Simplified FlytrapSimplified Flytrap
Similar results obtained with a simpler model
Hypothesis: Tapasin is the 2nd stage of a 2-stage filter
Perhaps an explanation of system function.
Similar results obtained with a simpler model
Hypothesis: Tapasin is the 2nd stage of a 2-stage filter
Perhaps an explanation of system function.
Graph.txt
Future PlansFuture Plans
Interface SPiM with stochastic analysis tools
Improve scalability of core SPiM algorithm
Prove correctness of multiprocessor algorithm
Extend SPiM with membranes
Stochastic -calculus and ODEs
Improve SPiM user interface and debugging
Collaborate with medical researchers to model and simulate a range of biological systems
Collaborate with pharmaceutical industry to design a next-generation programming language for Systems Biology
Interface SPiM with stochastic analysis tools
Improve scalability of core SPiM algorithm
Prove correctness of multiprocessor algorithm
Extend SPiM with membranes
Stochastic -calculus and ODEs
Improve SPiM user interface and debugging
Collaborate with medical researchers to model and simulate a range of biological systems
Collaborate with pharmaceutical industry to design a next-generation programming language for Systems Biology
Thanks.Thanks.
Questions?Questions?
ReferencesReferences
Graphical Stochastic -calculus:[Phillips and Cardelli, Bioconcur 2005]
[Phillips, Cardelli and Castagna, TCSB 2006]
SPiM Simulator:[Phillips and Cardelli, Bioconcur 2004]
[Phillips, SPiM 2005]
Gene Networks:[Blossey, Cardelli, Phillips, TCSB 2006]
Antigen Presentation:[Goldstein, MPhil Dissertation 2005]
Graphical Stochastic -calculus:[Phillips and Cardelli, Bioconcur 2005]
[Phillips, Cardelli and Castagna, TCSB 2006]
SPiM Simulator:[Phillips and Cardelli, Bioconcur 2004]
[Phillips, SPiM 2005]
Gene Networks:[Blossey, Cardelli, Phillips, TCSB 2006]
Antigen Presentation:[Goldstein, MPhil Dissertation 2005]