simulating biological systems in the stochastic pi calculus n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Simulating Biological Systems in the Stochastic Pi-calculus PowerPoint Presentation
Download Presentation
Simulating Biological Systems in the Stochastic Pi-calculus

Loading in 2 Seconds...

play fullscreen
1 / 141

Simulating Biological Systems in the Stochastic Pi-calculus - PowerPoint PPT Presentation


  • 47 Views
  • Uploaded on

Simulating Biological Systems in the Stochastic Pi-calculus. Andrew Phillips with Luca Cardelli Microsoft Research, Cambridge UK. Biological Computing. Modelling Biology. The Human Genome project: Map out the complete genetic code in humans

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Simulating Biological Systems in the Stochastic Pi-calculus' - mikkel


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
simulating biological systems in the stochastic pi calculus

Simulating Biological Systems in the Stochastic Pi-calculus

Andrew Phillips

with

Luca Cardelli

Microsoft Research, Cambridge UK

modelling biology
Modelling Biology
  • The Human Genome project:
    • Map out the complete genetic code in humans
    • To understand and predict gene and protein behaviour
    • Like reading the source code of a computer program...
    • But 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:
    • Conduct virtual experiments, saving time and money.
    • Need tools for modelling complex parallel systems.
    • Should also scale up to very large systems.
    • The beginnings of a biological programming language...
programming biology
Languages for complex, parallel computer systems:

Languages for complex, parallel biological systems:

Programming Biology

stochasticp-calculus

large connected reaction graphs
Large, Connected Reaction Graphs

http://www.celldesigner.org/

compositional modelling
Compositional Modelling

Build complex models incrementally, by direct composition of simpler components:

model analysis
Model Analysis
  • A formal programming language
  • Analysis techniques (types,equivalences,model-checking)
  • Could help provide insight into fundamental properties of biological systems
equivalent models
Equivalent Models
  • Can we replace one model with another?
related work
Related Work
  • Stochastic p-calculus proposed by [Priami, 1995]
  • Used to 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 p-calculus [BioSPI]
    • A subset of p-calculus with limited choice
    • Compiles a calculus process to an FCP procedure
    • Executed by the FCP Logix platform [Silverman et al., 1987]
graphical stochastic p calculus
Graphical Stochastic p-calculus
  • Display stochastic p-calculus models as graphs
    • [Phillips and Cardelli, 2005]
    • Helps make the stochastic p-calculus more accessible
    • Defined a graphical calculus and graphical execution model
    • Proved equivalent to the stochastic p-calculus
    • [Phillips, Cardelli and Castagna, 2006]

PROVED EQUIVALENT

the s tochastic pi m achine
The Stochastic PiMachine
  • A simulation algorithm for stochastic p-calculus
    • [Phillips and Cardelli, 2004]
    • Based on standard theory of chemical kinetics [Gillespie, 1977]
    • The probability of a reaction is proportional to its rate
    • Proved correct with respect to the stochastic p-calculus.

PROVED CORRECT

the spim simulator
The SPiM Simulator
  • Simulation algorithm mapped to functional code (F#)
    • Used as the basis for implementing the SPiM simulator.
    • [Phillips, 2006] GUI by James Margetson, MSRC
    • 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

visualising simulations in 3d
Visualising Simulations in 3D
  • Generate a 3D view of the interactions

Software by Rich Williams, MSRC

course outline
Course Outline
  • The Stochastic Pi-calculus
  • Gene Networks
  • Signalling Networks
  • Immune System Pathway
the stochastic pi calculus

The Stochastic Pi-calculus

Introductory Tutorial

calculus syntax
Calculus Syntax

p::= ?x(m) Input value m on channel x

!x(n)   Output value n on channel x

trDelay at rate r

P::= p1.P1 + ... + pN.PNChoice between actions

P1 | ... | PMParallel composition of processes

X(n)   Instance of X with arguments n

new x1,...,xNP Restriction of names x1,...,xN to P

E::= X(m) = P Definition of X, where fn(P) Ím

E1, ... ,ENUnion of definitions

execution stochastic delay
Execution: Stochastic Delay

tr.P1 + ... + pN.PN

execution stochastic delay1
Execution: Stochastic Delay

tr.P1 + ... + pN.PN ¾®P1

execution interaction
Execution: Interaction

!x(n).P1 + ... + pN.PN | ?x(m).Q1 + ... + pM.QM

execution interaction1
Execution: Interaction

!x(n).P1 + ... + pN.PN | ?x(m).Q1 + ... + pM.QM

¾®P1 |Q1{n/m}

{n/m}

execution binding interaction
Execution: Binding Interaction

new n (!x(n).P1 + ... + pN.PN ) | ?x(m).Q1 + ... + pM.QM

execution binding interaction1
Execution: Binding Interaction

new n (!x(n).P1 + ... + pN.PN ) | ?x(m).Q1 + ... + pM.QM

¾® new n ( P1 | Q1{n/m} )

n

{n/m}

ionization na cl na cl
Ionization: Na + Cl  Na+ + Cl-

let Na() = !ionize; Na_plus()

and Na_plus() = ?deionize; Na()

run Na()

let Cl() = ?ionize; Cl_minus()

and Cl_minus() = !deionize; Cl()

run Cl()

  • Na can ionize Cl at rate(ionize) = 100s-1
  • Cl-can deionize Na+ at rate(deionize) = 10s-1
ionization na cl na cl1
Ionization: Na + Cl  Na+ + Cl-

let Na() = !ionize; Na_plus()

and Na_plus() = ?deionize; Na()

run Na()

let Cl() = ?ionize; Cl_minus()

and Cl_minus() = !deionize; Cl()

run Cl()

  • Na can ionize Cl by an output on the ionize channel
ionization na cl na cl2
Ionization: Na + Cl  Na+ + Cl-

let Na() = !ionize; Na_plus()

and Na_plus() = ?deionize; Na()

run Na_plus()

let Cl() = ?ionize; Cl_minus()

and Cl_minus() = !deionize; Cl()

run Cl_minus()

  • Cl-can deionize Na+ by an output on the deionize channel
ionization na cl na cl3
Ionization: Na + Cl  Na+ + Cl-

let Na() = !ionize; Na_plus()

and Na_plus() = ?deionize; Na()

run Na()

let Cl() = ?ionize; Cl_minus()

and Cl_minus() = !deionize; Cl()

run Cl()

  • Na and Cl are no longer charged
ionization na cl na cl4
Ionization: Na + Cl  Na+ + Cl-
  • A number of Na and Cl atoms can be composed in parallel.
ionization na cl na cl5
Ionization: Na + Cl  Na+ + Cl-
  • One of the Na atoms can ionize one of the Cl atoms.
ionization na cl na cl6
Ionization: Na + Cl  Na+ + Cl-
  • Additional Na and Cl atoms can interact in parallel.
ionization na cl na cl7
Ionization: Na + Cl  Na+ + Cl-
  • A Cl-ion can deionize any of the Na+ ions.
ionization na cl na cl8
Ionization: Na + Cl  Na+ + Cl-
  • These reactions can continue indefinitely...
virtual experiment na cl na cl
Virtual Experiment: Na + Cl  Na+ + Cl-
  • What happens if we mix 100×Na and 100×Cl ?
  • Use a more compact representation to count populations.
  • The colour is proportional to the number of atoms:
virtual experiment na cl na cl1
Virtual Experiment: Na + Cl  Na+ + Cl-
  • One of the Na atoms can ionize one of the Cl atoms.
virtual experiment na cl na cl2
Virtual Experiment: Na + Cl  Na+ + Cl-
  • Additional Na and Cl atoms can interact in parallel.
virtual experiment na cl na cl3
Virtual Experiment: Na + Cl  Na+ + Cl-
  • A Cl-ion can deionize any of the Na+ ions.
virtual experiment na cl na cl4
Virtual Experiment: Na + Cl  Na+ + Cl-
  • Eventually an Equilibrium is reached...
virtual experiment na cl na cl5
Virtual Experiment: Na + Cl  Na+ + Cl-
  • At equilibrium: 100×[Na][Cl] = 10×[Na+][Cl-]
  • Approximately 76×Na and 24×Na+
binding h cl hcl
Binding: H + Cl  HCl

let H() = new e@10.0 (

!share(e); H_Bound(e))

and H_Bound(e) = !e; H()

let Cl() = ?share(e); Cl_Bound(e)

and Cl_Bound(e) = ?e; Cl()

run ( H() | Cl() )

  • H has a private electron e.
  • H can share its electron with Cl at rate(share) = 100s-1
  • HCl can break its private bond at rate(e) = 10s-1
binding h cl hcl1
Binding: H + Cl  HCl

let H() = new e@10.0 (

!share(e); H_Bound(e))

and H_Bound(e) = !e; H()

let Cl() = ?share(e); Cl_Bound(e)

and Cl_Bound(e) = ?e; Cl()

run ( H() | Cl() )

  • H can share its electron with Cl on the share channel.
binding h cl hcl2
Binding: H + Cl  HCl

let H() = new e@10.0 (

!share(e); H_Bound(e))

and H_Bound(e) = !e; H()

let Cl() = ?share(e); Cl_Bound(e)

and Cl_Bound(e) = ?e; Cl()

run new e (H_Bound(e) |Cl_Bound(e))

  • HCl can break its private bond by synchronising on e.

e

binding h cl hcl3
Binding: H + Cl  HCl

let H() = new e@10.0 (

!share(e); H_Bound(e))

and H_Bound(e) = !e; H()

let Cl() = ?share(e); Cl_Bound(e)

and Cl_Bound(e) = ?e; Cl()

run (H() | Cl() )

  • H and Cl are no longer bound
binding h cl hcl4
Binding: H + Cl  HCl
  • A number of H and Cl atoms can be composed in parallel.
binding h cl hcl5
Binding: H + Cl  HCl
  • One of the H atoms can bind with one of the Cl atoms
binding h cl hcl6
Binding: H + Cl  HCl

e

  • Additional H and Cl atoms can bind in parallel.
binding h cl hcl7
Binding: H + Cl  HCl

e

  • A single HCl molecule can split into H and Cl atoms.

e

binding h cl hcl8
Binding: H + Cl  HCl

e

  • These reactions can continue indefinitely...
virtual experiment h cl hcl
Virtual Experiment: H + Cl  HCl
  • As with the previous reaction, we mix 100×H and 100×Cl
virtual experiment h cl hcl1
Virtual Experiment: H + Cl  HCl
  • One of the H atoms can bind with one of the Cl atoms
virtual experiment h cl hcl2
Virtual Experiment: H + Cl  HCl
  • Additional H and Cl atoms can bind in parallel.

e x1

virtual experiment h cl hcl3
Virtual Experiment: H + Cl  HCl
  • A single HCl molecule can split into H and Cl atoms.

e x2

virtual experiment h cl hcl4
Virtual Experiment: H + Cl  HCl
  • Eventually an Equilibrium is reached...

e x1

virtual experiment h cl hcl5
Virtual Experiment: H + Cl  HCl
  • At equilibrium: 100×[H][Cl] = 10×[HCl]
  • Approximately 3×H and 97×HCl
calculus syntax1
Calculus Syntax

p-calculus:

Graphical p-calculus:

calculus semantics
Calculus Semantics

P ~ Q

a

a

~

P’

Q’

gene networks

Gene Networks

with

Luca Cardelli (MSR Cambridge)

Ralf Blossey (IRI Lille)

gene with negative control
val transcribe = 0.1 val degrade = 0.001

val unblock = 0.0001

new a@1.0:chan new b@1.0:chan

let Neg(a:chan,b:chan) =

do delay@transcribe;

(Protein(b) | Neg(a,b))

or ?a; Blocked(a,b)

and Blocked(a:chan,b:chan) =

delay@unblock; Neg(a,b)

and Protein(b:chan) =

do !b; Protein(b)

or delay@degrade

run Neg(a,b)

Neg(a,b) produces protein b and is blocked by protein a

Gene with Negative Control

a

b

gene simulation
Gene Simulation
  • Simulation results show evolution over time
  • Level of protein b fluctuates around 100
gene simulation 0s
Gene Simulation: 0s
  • A protein b can be transcribed at rate 0.1
  • P(transcribe) = 1

x1

gene simulation 10 50401s
Gene Simulation: 10.50401s
  • Another protein b can be transcribed
  • P(transcribe) = 0.1 / 0.101

x1

x1

gene simulation 19 7126s
Gene Simulation: 19.7126s
  • And another...
  • P(transcribe) = 0.1 / 0.102

x1

x2

gene simulation 26 80166s
Gene Simulation: 26.80166s
  • A protein b can be degraded at rate 0.001
  • P(degrade) = 0.003 / 0.103

x1

x3

gene simulation 30 31779s
Gene Simulation: 30.31779s
  • Eventually reach an equilibrium between transcription and degradation

x1

x2

gene simulation 2980 631s
Gene Simulation: 2980.631s
  • Equilibrium at about 100 proteins.
  • P(transcribe) = 0.1 / 0.2 = P(degrade)

x1

x100

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:

( Neg(lac,tet)

| Neg(tet,lambda)

| Neg(lambda,lac)

| Neg(tet,gfp)

)

© 2000 Elowitz, M.B., Leibler. S. A Synthetic Oscillatory Network of Transcriptional Regulators. Nature 403:335-338.

repressilator simulation

lac

lac

lambda

lambda

lac

lambda

tet

tet

tet

Repressilator Simulation
  • Alternate oscillation of proteins: tet, lac, lambda, tet, ...
  • Why are the oscillations in a particular order?
repressilator debugging
Repressilator: Debugging

lac

lambda

  • Understand how the oscillations are produced.
  • Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)

tet

repressilator 0s
Repressilator: 0s

x1

x1

x1

  • Initially there is one copy of each gene
  • Any one of the proteins can be transcribed at rate 0.1
  • P(transcribe) = 0.3 / 0.3
repressilator 5 568177s
Repressilator: 5.568177s

x1

x1

x1

x1

  • The tet protein can block the lambda gene at rate 1.0
  • P(tet) = 1.0 / 1.301
repressilator 6 329912s
Repressilator: 6.329912s

x1

x1

x1

x1

  • Now no lambda protein can be transcribed.
  • But lac protein can still be transcribed at rate 0.1
  • P(transcribe) = 0.2 / 0.2011
repressilator 11 62149s
Repressilator: 11.62149s

x1

x1

x1

x1

x1

  • The lac protein can block the tet gene at rate 1.0
  • P(lac) = 1.0 / 1.2021
repressilator 13 21617s
Repressilator: 13.21617s

x1

x1

x1

x1

x1

  • Now no tet or lambda protein can be transcribed.
  • A tet protein can degrade at rate 0.001
  • P(degrade) = 0.002 / 0.1022
repressilator
Repressilator

x1

x1

x1

x1

  • Meanwhile, lots of lac protein is transcribed
repressilator1
Repressilator

x1

  • Represents one oscillation cycle
  • Equilibrium between transcription and degradation
  • Eventually, lambda or lac gene unblocks at rate 0.0001
  • P(unblock) = 0.0002 / 0.2002

x1

x1

x100

repressilator2
Repressilator

x1

  • Suppose the lac gene unblocks
  • There is a high probability that it will block immediately
  • P(lac) = 100.0 / 100.3001

x1

x1

x100

repressilator 11039 31s
Repressilator: 11039.31s

x1

  • Eventually, the lambda gene unblocks at rate 0.0001
  • P(unblock) = 0.0002 / 0.2002

x1

x1

x100

repressilator 11039 77s
Repressilator: 11039.77s

x1

x1

x1

x100

  • There is nothing to block the lambda gene.
  • The lambda protein can now take over...
  • A high probability of oscillating in a particular order.
programming better oscillators
Programming Better Oscillators
  • We observe irregular oscillations when degrade << unblock
repressilator with dimers
let Neg(a:chan,b:chan) = (

new b2@dimerize:chan Neg2(a,b2,b)

)

and Neg2(a:chan,b2:chan,b:chan) =

do delay@transcribe;

(Protein(b2,b) | Neg2(a,b2,b))

or ?a; Blocked(a,b2,b)

and Blocked(a:chan,b2:chan,b:chan) =

delay@unblock; Neg2(a,b2,b)

and Protein(b2:chan, b:chan) =

do ?b2; Protein2(b) or !b2

or delay@degrade

and Protein2(b:chan) =

do !b; Protein2(b)

or delay@degrade

Refined model of a gene with cooperative binding

Different implementation, same main program

Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac)

Repressilator with Dimers
dimers improve regularity
Dimers Improve Regularity
  • Proteins form dimers first
  • Improves regularity of oscillations
  • Investigating stochasticity, cooperativity, ODEs
  • [Blossey, Cardelli, Phillips, 2007]
gene with additional inhibitor
val transcribe = 0.1 val degrade = 0.001

val unblock = 0.0001

new a@1.0:chan new b@1.0:chan

new r@1.0:chan

let Negp(a:chan,b:chan,r:chan) =

do delay@transcribe;

(Proteinp(b,r) | Negp(a,b,r))

or ?a; Blockedp(a,b,r)

and Blockedp(a:chan,b:chan,r:chan) =

delay@unblock; Negp(a,b,r)

and Proteinp(b:chan,r:chan) =

do !b; Proteinp(b,r)

or ?r

or delay@degrade

let Inh(r:chan) = !r; Inh(r)

run Negp(a,b,r)

Gene with additional Inhibitor

r

a

b

bacteria logic gates guet et al 2002
Bacteria Logic Gates [Guet et al., 2002]

© 2002 AAAS. Reprinted with permission from Guet et al. Combinatorial Synthesis of Genetic Networks. Science 296 (5572): 1466 - 1470

  • 3 genes: tetR, lacI, lcI
  • 5 promoters: PL1, PL2, PT, Pl-, Pl+
  • 125 possible networks consisting of 3 promoter-gene units
  • 2 inputs: IPTG (represses Lac), aTc (represses Tet)
  • 1 output: GFP (linked to Pl-)
combinatorial library of genes
Combinatorial Library of Genes
  • Can model 125 networks using just 2 modules (Neg, Negp).
  • Used simulation to investigate system behaviour.
  • Can easily refine the modules without rewiring the networks.
  • [Blossey, Cardelli, Phillips, 2006]

let D038() =

( Negp(TetR,TetR,aTc)

| Negp(TetR,LacI,IPTG)

| Neg(LacI,LambdacI)

| Neg(LambdacI,GFP)

)

D038()

D038() | Inh(aTc)

D038() | Inh(IPTG)

D038() | Inh(aTc) | Inh(IPTG)

signalling networks

Signalling Networks

with

Luca Cardelli (MSR Cambridge)

Jasmin Fisher (EPFL Lausanne)

enzymatic reactions
Enzymatic Reactions

x1

x1

  • An enzyme can bind to a substrate
enzymatic reactions1
Enzymatic Reactions

x1

x1

  • The enzyme and substrate can unbind

r

enzymatic reactions2
Enzymatic Reactions

x1

x1

  • The enzyme can bind to the substrate again
enzymatic reactions3
Enzymatic Reactions

x1

x1

  • The enzyme can react with the substrate

r

enzymatic reactions4
Enzymatic Reactions

x1

  • The enzyme is restored and the substrate is transformed into a product

x1

mapk cascade huang and ferrel 1996
Mapk Cascade [Huang and Ferrel, 1996]
  • Signals the presence of an input enzyme

x1

x100

x1

x100

x1

x10

x1

immune system modelling mhc i antigen presentation

Immune System Modelling:MHC I Antigen Presentation

with

Luca Cardelli (MSR Cambridge)

Leonard Goldstein (Cambridge University)

Tim Elliott (Southampton University)

Joern Werner (Southampton University)

mhc a biological virus scanner
MHC: A Biological Virus Scanner

©2005 from Immunobiology, Sixth Edition by Janeway et al. 

Reproduced by permission of Garland Science/Taylor & Francis LLC.

mhc a biological virus scanner1
MHC: A Biological Virus Scanner

©2005 from Immunobiology, Sixth Edition by Janeway et al. 

Reproduced by permission of Garland Science/Taylor & Francis LLC.

investigate the role of tapasin
Investigate the Role of Tapasin

©2005 from Immunobiology, Sixth Edition by Janeway et al. 

Reproduced by permission of Garland Science/Taylor & Francis LLC.

peptide loading model
Peptide Loading Model
  • Each graph represents a component
peptide loading model1
Peptide Loading Model
  • MHC can load a peptide

x1

x1

peptide loading model2
Peptide Loading Model
  • The loaded peptide can escape

x1

x1

u

peptide loading model3
Peptide Loading Model
  • The loaded peptide can escape

x1

x1

peptide loading model4
Peptide Loading Model
  • MHC can bind tapasin

x1

x1

peptide loading model5
Peptide Loading Model
  • The bound tapasin can unbind

x1

uT

x1

peptide loading model6
Peptide Loading Model
  • The bound tapasin can unbind

x1

x1

experimental setup
Experimental Setup
  • Assume low, medium and high affinity peptides
model parameters
Model Parameters
  • MHC spends < 2h on average in the ER.
tapasin hypotheses
Tapasin Hypotheses
  • Tapasin:
    • Can increase peptide loading at ER entrance
    • Can destabilise loaded MHC
  • Peptide:
    • Can increase tapasin unbinding from MHC
peptide filtering
Peptide Filtering
  • How does MHC egress the right peptides?
  • Consider a loaded peptide with unbinding rate u
  • Competition between unbinding and egression

P(egress,u) = egress / (u + egress)

P(egress,u) = 1/(1 + u / egress)

egress  : P(egress,u)  1

egress  0 : P(egress,u)  1/ u

x1

peptide discrimination
Peptide Discrimination
  • Consider 3 loaded MHC complexes
  • Stable peptides are more likely to egress

Pi(egress) = P(egress,ui) / kP(egress,uk)

egress : Pi(egress)  1/k1 = 1/3

egress  0: Pi(egress)  (1/ ui) / k (1/ uk )

x1

x1

x1

discrimination upper bound
Discrimination Upper Bound
  • Assume low = 6/2, med = 6/5, high = 6/12
  • Upper bound as egresstends to 0

Pi(egress)  (1/ ui) / k (1/ uk )

= (1/ ui) / (2/6 + 5/6 +12/6)

= (1/ ui)  (6/19)

discrimination vs egression
Discrimination vs Egression
  • Calculate peptide discrimination for different values of egress.
  • Assume 1000 uniformly loaded MHC complexes
peptide editing simulations
Peptide Editing Simulations
  • Simulate peptide editing for different values of egress.
peptide editing results
Peptide Editing Results
  • Simulation results are comparable to predictions
peptide filtering with tapasin
Peptide Filtering with Tapasin
  • Tapasin adds a second filtering stage.

P(uT,u) = uT / (uq + uT)

P(uT,u) = 1 / (1 + uq/uT)

P(uT,egress,u) = P(uT,u)  P(egress,u)

uT, egress : P(uT,egress,u)  11

uT, egress 0 : P(uT,egress,u)  (1/uq)  (1/u)

x1

peptide discrimination1
Peptide Discrimination
  • Tapasin improves upper bound on discrimination

Pi(uT,egress) = P(uT,egress,ui) / k P(uT,egress,uk)

uT,egress: Pi(uT,egress) 11 /k 11 = 1/3

uT,egress 0: Pi(uT,egress)  (1/uiq)(1/ui) / k (1/ukq)(1/uk)

x1

x1

x1

discrimination vs egression1
Discrimination vs Egression
  • Calculate peptide discrimination for different values of uT/q and egress.
  • Assume 1000 uniformly loaded MHC complexes
tapasin improves discrimination
Tapasin Improves Discrimination
  • Max discrimination without tapasin 105:263:632
  • Max discrimination with tapasin 23:145:832
peptide editing simulations1
Peptide Editing Simulations
  • Simulate peptide editing with tapasin, for different values of q and egress .
peptide editing results1
Peptide Editing Results
  • Simulation results are comparable to predictions
mhc alleles model predictions
MHC Alleles: Model Predictions
  • Peptide discrimination in absence of tapasin: Depends on egress.
  • Peptide discrimination in presence of tapasin: Depends on q and ratio of complexes that follow tapasin pathway.
  • Cell surface expression in absence of tapasin: Depends on dMHCo.
mhc alleles model simulations
MHC Alleles: Model Simulations
  • Explain varying dependence on tapasin
peptide loading flytrap model
Peptide Loading: Flytrap Model
  • MHC I captures peptides like a Venus Flytrap.

unstable

peptide escapes

peptide enters

open MHC

stable peptide is captured

and presented at cell surface

flytrap model
Flytrap Model
  • MHC undergoes a conformational change after peptide loading
compositional modelling2
Compositional Modelling
  • Adding two new peptides
compositional modelling3
Compositional Modelling
  • Adding a conformational change to MHC
next steps
Next Steps
  • A functional model of MHC I Antigen presentation

[Cardelli, Elliott, Goldstein, Phillips, Werner]

  • Medical Research Grant (MRC 2006-2007) to complete a more detailed MHC model.
  • Medical Research Grant (MRC 2007-2010) to perform targeted experiments.

Calreticulin

TAP transporter

Erp57

conclusions
Conclusions
  • Biological systems work surprisingly well, though we don’t fully understand why
    • We still have a lot to learn from nature.
  • Long-term benefits for medical research:
    • Better understand disease.
    • Speed up the design of a cure.
  • Long-term benefits for computing:
    • Write more robust concurrent / distributed programs
    • Design and verification of biological computers
    • Smart drugs? Computers in a test tube...?
  • Biological modelling is pushing the boundaries of concurrent programming
outlook
Outlook
  • Senior executives of pharmaceutical companies:

“a real need for a modular biological programming language”

references
References
  • [Blossey et al., 2006] Blossey, R., Cardelli, L., and Phillips, A. (2006). A compositional approach to the stochastic dynamics of gene networks. Transactions in Computational Systems Biology, 3939:99–122.
  • [Gillespie, 1977] Gillespie, D. T. (1977). Exact stochastic simulation of coupled chemical reactions. J. Phys. Chem., 81(25):2340–2361.
  • [Guet et al., 2002] Guet, C.C., Elowitz, M.B., Hsing, W. & Leibler, S. (2002) Combinatorial synthesis of genetic networks. Science 296 1466-1470.
  • [Huang and Ferrel, 1996] Huang, C.-Y. F. and Ferrel, J. E. (1996). Ultrasensitivity of the mitogen-activated protein kinase cascade. PNAS, 93:10078–10083.
  • [Lecca and Priami, 2003] Lecca, P. and Priami, C. (2003). Cell cycle control in eukaryotes: a biospi model. In BioConcur’03. ENTCS.
  • [Phillips, 2006] Phillips, A. (2006). The Stochastic Pi-Machine: A Simulator for the Stochastic Pi-calculus. Available from http://research.microsoft.com/˜aphillip/spim/.
  • [Phillips and Cardelli, 2004] Phillips, A. and Cardelli, L. (2004). A correct abstract machine for the stochastic pi-calculus. In Bioconcur’04. ENTCS.
  • [Phillips and Cardelli, 2005] Phillips, A. and Cardelli, L. (2005). A graphical representation for the stochastic pi-calculus. In Bioconcur’05.
references1
References
  • [Phillips et al., 2006] Phillips, A., Cardelli, L., and Castagna, G. (2006). A graphical representation for biological processes in the stochastic pi-calculus. Transactions in Computational Systems Biology, 4230:123–152.
  • [Priami, 1995] Priami, C. (1995). Stochastic -calculus. The Computer Journal, 38(6):578–589. Proceedings of PAPM’95.
  • [Priami et al., 2001] Priami, C., Regev, A., Shapiro, E., and Silverman, W. (2001). Application of a stochastic name-passing calculus to representation and simulation of molecular processes. Information Processing Letters, 80:25–31.
  • [Regev et al., 2001] Regev, A., Silverman, W., and Shapiro, E. (2001). Representation and simulation of biochemical processes using the pi- calculus process algebra. In Altman, R. B., Dunker, A. K., Hunter, L., and Klein, T. E., editors, Pacific Symposium on Biocomputing, volume 6, pages 459–470, Singapore. World Scientific Press.
  • [Sangiorgi and Walker, 2001] Sangiorgi, D. and Walker, D. (2001). The -calculus: a Theory of Mobile Processes. Cambridge University Press.
  • [Silverman et al., 1987] Silverman, W., Hirsch, M., Houri, A., and Shapiro, E. (1987). The logix system user manual, version 1.21. In Shapiro, E., editor, Concurrent Prolog: Collected Papers (Volume II), pages 46–77. MIT Press, London.