...

Andrew Phillips

by user

on
Category:

biology

129

views

Report

Comments

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
Fly UP