Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Biology Andrew Phillips with Luca Cardelli Microsoft Research, Cambridge UK.

Similar presentations


Presentation on theme: "Programming Biology Andrew Phillips with Luca Cardelli Microsoft Research, Cambridge UK."— Presentation transcript:

1 Programming Biology Andrew Phillips with Luca Cardelli Microsoft Research, Cambridge UK

2 Biological Computing 2

3 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... 3

4 Programming Biology Languages for complex, parallel computer systems: Languages for complex, parallel biological systems: 4 stochastic  -calculus

5 Biological Modelling Today Describe individual reactions 5

6 Biological Modelling Today Add reactions for each new protein. 6

7 Large, Connected Reaction Graphs 7 http://www.celldesigner.org/

8 Biological Modelling Tomorrow Traditional approach: model the reactions Stochastic  -calculus: model the components 8

9 Compositional Modelling Build complex models by composing simpler components. The models are easier to revise and maintain. 9

10 Model Analysis A formal programming language Analysis techniques (types,equivalences,model-checking) Could help provide insight into fundamental properties of biological systems 10

11 Verifying Biological Models Is it safe to replace one system with another? 11

12 Outline Programming Language Development Introduction to Stochastic Pi-calculus Programming Gene Networks Programming an Immune System Pathway 12

13 Programming Language Development Initial Challenges

14 Related Work Stochastic  -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  -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] 14

15 Graphical Stochastic  -calculus Display stochastic  -calculus models as graphs [Phillips and Cardelli, 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, 2006] 15 PROVED EQUIVALENT let gLow() = delay@g_pep; (Low() | gLow()) and Low()= ( new low@uLow:chan do !pep(low); ?low; Low() or delay@d_pep ) let gMed() = delay@g_pep; (Med() | gMed()) and Med()= ( new med@uMed:chan do !pep(med); ?med; Med() or delay@d_pep ) let gHigh() = delay@g_pep; (High() | gHigh()) and High()= ( new high@uHigh:chan do !pep(high); ?high; High() or delay@d_pep ) let gMHC() = delay@g_MHC;(gMHC() | MHCo() ) and gTPN() = delay@g_TPN;( gTPN() | TPN() ) and TPN()= ( new uT@unbind_TPN:chan do !tpn(uT); ?uT; TPN() or delay@degrade_TPN ) and MHCo()= do ?pep(u);MHCc_pep(u) or ?tpn(uT);MHCo_TPN(uT) or delay@degrade_MHCo and MHCc_pep(u:chan) = do delay@egress; MHCe_pep(u) or !u; MHCo() and MHCe_pep(u:chan) = delay@degrade_MHCe and MHCo_TPN(uT:chan)= do ?pep(u)*a; MHCc_TPN_pep(u,uT) or !uT*v; MHCo() and MHCc_TPN_pep(u:chan,uT:chan)= do !uT; MHCc_pep(u) or !u*q; MHCo_TPN(uT)

16 The Stochastic Pi Machine A simulation algorithm for stochastic  -calculus [Phillips and Cardelli, 2004 & 2007] 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  -calculus. 16 PROVED CORRECT

17 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, Canada, Philippines, Japan,...) 17 http://research.microsoft.com/~aphillip/spim

18 Visualising Simulations in 3D Generate a 3D view of the interactions Software by Rich Williams, MSRC 18

19 Introduction to Stochastic Pi-calculus Chemical Reactions

20 Ionization: Na + Cl  Na + + Cl - Na can ionize Cl at rate(ionize) = 100s -1 Cl - can deionize Na + at rate(deionize) = 10s -1 20 let Na() = !ionize; Na_plus() and Na_plus() = ?deionize; Na() run Na() let Cl() = ?ionize; Cl_minus() and Cl_minus() = !deionize; Cl() run Cl()

21 Ionization: Na + Cl  Na + + Cl - Na can ionize Cl by an output on the ionize channel 21 let Na() = !ionize; Na_plus() and Na_plus() = ?deionize; Na() run Na() let Cl() = ?ionize; Cl_minus() and Cl_minus() = !deionize; Cl() run Cl()

22 Ionization: Na + Cl  Na + + Cl - Cl - can deionize Na + by an output on the deionize channel 22 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()

23 Ionization: Na + Cl  Na + + Cl - Na and Cl are no longer charged 23 let Na() = !ionize; Na_plus() and Na_plus() = ?deionize; Na() run Na() let Cl() = ?ionize; Cl_minus() and Cl_minus() = !deionize; Cl() run Cl()

24 Ionization: Na + Cl  Na + + Cl - A number of Na and Cl atoms can be composed in parallel. 24

25 Ionization: Na + Cl  Na + + Cl - One of the Na atoms can ionize one of the Cl atoms. 25

26 Ionization: Na + Cl  Na + + Cl - Additional Na and Cl atoms can interact in parallel. 26

27 Ionization: Na + Cl  Na + + Cl - A Cl - ion can deionize any of the Na + ions. 27

28 Ionization: Na + Cl  Na + + Cl - These reactions can continue indefinitely... 28

29 Virtual Experiment: Na + Cl  Na + + Cl - What happens if we mix 100×Na and 100×Cl ? Use a more compact representation to count populations. 29

30 Virtual Experiment: Na + Cl  Na + + Cl - One of the Na atoms can ionize one of the Cl atoms. 30

31 Virtual Experiment: Na + Cl  Na + + Cl - Additional Na and Cl atoms can interact in parallel. 31

32 Virtual Experiment: Na + Cl  Na + + Cl - A Cl - ion can deionize any of the Na + ions. 32

33 Virtual Experiment: Na + Cl  Na + + Cl - Eventually an Equilibrium is reached... 33

34 Virtual Experiment: Na + Cl  Na + + Cl - At equilibrium: 100×[Na][Cl] = 10×[Na + ][Cl - ] Approximately 76×Na and 24×Na + 34

35 3D Simulation: Na + Cl  Na + + Cl - 35

36 Gene Networks with Luca Cardelli (MSR Cambridge) Ralf Blossey (IRI Lille)

37 Programming a Biological Clock 37

38 Gene with Negative Control Neg(a,b) produces protein b and is blocked by protein a 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) 38 transcribe = 0.1 unblock = 0.0001 degrade = 0.001 rate(a,b) = 1.0 ba

39 Gene Simulation Simulation results show evolution over time Level of protein b fluctuates around 100 39

40 Gene Simulation: 0s A protein b can be transcribed at rate 0.1 P(transcribe) = 1 40 x1 reactionrate (s -1 ) transcribe0.1 degrade0 total0.1

41 Gene Simulation: 10.50401s Another protein b can be transcribed P(transcribe) = 0.1 / 0.101 41 x1 x1 reactionrate (s -1 ) transcribe0.1 degrade0.001 total0.101

42 Gene Simulation: 19.7126s And another... P(transcribe) = 0.1 / 0.102 42 x1 x2 reactionrate (s -1 ) transcribe0.1 degrade0.001*2 total0.102

43 Gene Simulation: 26.80166s A protein b can be degraded at rate 0.001 P(degrade) = 0.003 / 0.103 43 x1 x3 reactionrate (s -1 ) transcribe0.1 degrade0.001*3 total0.103

44 Gene Simulation: 30.31779s Eventually reach an equilibrium between transcription and degradation 44 x1 x2 reactionrate (s -1 ) transcribe0.1 degrade0.001*2 total0.102

45 Gene Simulation: 2980.631s Equilibrium at about 100 proteins. P(transcribe) = 0.1 / 0.2 = P(degrade) 45 x1 x100 reactionrate (s -1 ) transcribe0.1 degrade0.001*100 total0.2

46 Repressilator [Elowitz and Leibler, 2000] A gene network engineered in live bacteria. Modelled as a simple combination of Neg gates: 46 ( 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.

47 Repressilator Simulation Alternate oscillation of proteins: tet, lac, lambda, tet,... Why are the oscillations in a particular order? 47 tetlambdalactetlambdalac tetlambdalac

48 Repressilator: Debugging Understand how the oscillations are produced. Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac) 48 tet lambdalac

49 Repressilator: 0s 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 49 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.1*3000000.3

50 Repressilator: 5.568177s The tet protein can block the lambda gene at rate 1.0 P(tet) = 1.0 / 1.301 50 x1 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.1*300.0011.0001.301

51 Repressilator: 6.329912s Now no lambda protein can be transcribed. But lac protein can still be transcribed at rate 0.1 P(transcribe) = 0.2 / 0.2011 51 x1 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.1*20.00010.0010000.2011

52 Repressilator: 11.62149s The lac protein can block the tet gene at rate 1.0 P(lac) = 1.0 / 1.2021 52 x1 x1 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.1*20.00010.001*2001.01.2021

53 Repressilator: 13.21617s Now no tet or lambda protein can be transcribed. A tet protein can degrade at rate 0.001 P(degrade) = 0.002 / 0.1022 53 x1 x1 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.10.0001*20.001*20000.1022

54 Repressilator Meanwhile, lots of lac protein is transcribed 54 x1 x1 x1 x1 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.10.0001*20.0010000.1012

55 Repressilator 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 55 x1 x1 x1 x100 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.10.0001*20.001*1000000.2002

56 Repressilator Suppose the lac gene unblocks There is a high probability that it will block immediately P(lac) = 100.0 / 100.3001 56 x1 x1 x1 x100 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.1*20.00010.001*100001.0*100100.3001

57 Repressilator: 11039.31s Eventually, the lambda gene unblocks at rate 0.0001 P(unblock) = 0.0002 / 0.2002 57 x1 x1 x1 x100 Reactiontranscribeunblockdegradetetlambdalactotal Rate s -1 0.10.0001*20.001*1000000.2002

58 Repressilator: 11039.77s There is nothing to block the lambda gene. The lambda protein can now take over... A high probability of oscillating in a particular order. 58 x1 x1 x100 x1

59 Repressilator Simulation in 3D 59

60 Programming Better Oscillators We observe irregular oscillations when degrade << unblock 60

61 Repressilator with Dimers Refined model of a gene with cooperative binding Different implementation, same main program Neg(lac,tet) | Neg(tet,lambda) | Neg(lambda,lac) 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 61

62 Dimers Improve Regularity Proteins form dimers first Improves regularity of oscillations Investigating stochasticity, cooperativity, ODEs [Blossey, Cardelli, Phillips, 2007] 62

63 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 Lac), aTc (represses Tet) 1 output: GFP (linked to P -) 63 © 2002 AAAS. Reprinted with permission from Guet et al. Combinatorial Synthesis of Genetic Networks. Science 296 (5572): 1466 - 1470

64 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) 64 r ba transcribe = 0.1 unblock = 0.0001 degrade = 0.001 rate(a,b,r) = 1.0

65 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] 65 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)

66 Programming our Immune System with Luca Cardelli (MSR Cambridge) Leonard Goldstein (Cambridge University) Tim Elliott (Southampton University) Joern Werner (Southampton University)

67 MHC: A Biological Virus Scanner 67 ©2005 from Immunobiology, Sixth Edition by Janeway et al. ©2005 from Immunobiology, Sixth Edition by Janeway et al. Reproduced by permission of Garland Science/Taylor & Francis LLC.

68 Investigate the Role of Tapasin 68 ©2005 from Immunobiology, Sixth Edition by Janeway et al. ©2005 from Immunobiology, Sixth Edition by Janeway et al. Reproduced by permission of Garland Science/Taylor & Francis LLC.

69 Peptide Loading Model Each graph represents a component 69

70 Peptide Loading Model MHC can load a peptide 70 x1

71 Peptide Loading Model The loaded peptide can escape 71 x1 u

72 Peptide Loading Model The loaded peptide can escape 72 x1

73 Peptide Loading Model MHC can bind tapasin 73 x1

74 Peptide Loading Model The bound tapasin can unbind 74 x1 uT

75 Peptide Loading Model The bound tapasin can unbind 75 x1

76 Experimental Setup Assume low, medium and high affinity peptides 76

77 Model Parameters MHC spends < 2h on average in the ER. 77 NameRate min -1 Time min Range min -1 Description gpep500.02Active transport of peptides into the ER dpep100.1Degradation of free peptides inside the ER bind11Binding of peptides to MHC (per molecule) low30.33Unbinding of low affinity peptides from MHC med1.20.83Unbinding of medium affinity peptides from MHC high0.52Unbinding of high affinity peptides from MHC gMHC100.1Assembly of MHC complexes inside the ER dMHCo0.011000.01 - 100Degradation of free MHC inside the ER dMHCe0.01100Degradation of loaded MHC at the cell surface egress110.01 - 1Egression of loaded MHC from the ER gTPN100.1Production of tapasin inside the ER dTPN0.01100Degradation of free tapasin inside the ER bindT1000.011 - 1000Binding of tapasin to MHC (per molecule) uT110.01 - 1Unbinding of tapasin from loaded MHC

78 Tapasin Hypotheses Tapasin: Can increase peptide loading at ER entrance Can destabilise loaded MHC Peptide: Can increase tapasin unbinding from MHC 78 FactorValueRangeDescription a1 1 - 10 Binding of peptides to MHC in presence of tapasin q101 - 100Unbinding of peptides from MHC in presence of tapasin. v0.010 - 0.01Unbinding of tapasin from MHC in absence of peptide.

79 Simulations Match Experiments Improved discrimination with tapasin Why...? 79

80 Peptide Editing Simulation 80

81 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) egress   :P(egress,u)  1 egress  0 : P(egress,u)  egress / u 81 x1

82 Peptide Discrimination Consider 3 loaded MHC complexes Stable peptides are more likely to egress P i (egress) = P(egress,u i ) /  k P(egress,u k ) egress   : P i (egress)  1/  k 1 = 1/3 egress  0: P i (egress)  (1/ u i ) /  k (1/ u k ) 82 x1

83 Discrimination Upper Bound Assume low = 6/2, med = 6/5, high = 6/12 Upper bound as egress tends to 0 P i (egress)  (1/ u i ) /  k (1/ u k ) = (1/ u i ) / (2/6 + 5/6 +12/6) = (1/ u i )  (6/19) 83 affinitylowmedhigh uiui 6/26/56/12 1/u i 2/65/612/6 Pi()Pi() 1/3 Pi(0)Pi(0)2/195/1912/19

84 Discrimination vs Egression Calculate peptide discrimination for different values of egress. Assume 1000 uniformly loaded MHC complexes 84 egresslowmedhigh 100329335337 10294342364 1182331486 0.1117279604 0.01107265629 0105263632

85 Peptide Editing Simulations Simulate peptide editing for different values of egress. 85

86 Peptide Editing Results Simulation results are comparable to predictions 86

87 Peptide Filtering with Tapasin Tapasin adds a second filtering stage. P(uT,u) = uT / (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)  (uT/u  q)  (egress/u) 87 x1

88 Peptide Discrimination Tapasin improves upper bound on discrimination P i (uT,egress) = P(uT,egress,u i ) /  k P(uT,egress,u k ) uT,egress   : P i (uT,egress)  1  1 /  k 1  1 = 1/3 uT,egress  0: P i (uT,egress)  (1/u i  q)  (1/u i ) /  k (1/u k  q)  (1/u k ) 88 x1

89 Discrimination vs Egression Calculate peptide discrimination for different values of uT/q and egress. Assume 1000 uniformly loaded MHC complexes 89 uT/q; egresslowmedhigh 1;188290623 0.1;152227721 0.01;147213740 0.1;0.130170800 0.01;0.127159815 0.01;0.0124147829 0;023145832

90 Tapasin Improves Discrimination Max discrimination without tapasin105:263:632 Max discrimination with tapasin 23:145:832 90

91 Peptide Editing Simulations Simulate peptide editing with tapasin, for different values of q and egress. 91

92 Peptide Editing Results Simulation results are comparable to predictions 92

93 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. 93 RateRangeEffect egress0.1 - 1.0Lower egress gives better filtering in absence of tapasin. dMHCo0.01 - 100Lower degradation gives higher throughput of MHC q1 - 100Higher q gives a better filtering in presence of tapasin.

94 MHC Alleles: Model Simulations Explain varying dependence on tapasin 94 B4402 (Dependent)B2705 (Partially)B4405 (Independent) No TPN 1000 TPN

95 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. 95 Calreticulin Erp57 TAP transporter

96 Conclusions Biological systems work surprisingly well, though we often don’t 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 verify biological computers Smart drugs? Computers in a test tube...? Biological modelling is pushing the boundaries of concurrent programming 96

97 Thanks. 97

98 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. 98

99 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. 99


Download ppt "Programming Biology Andrew Phillips with Luca Cardelli Microsoft Research, Cambridge UK."

Similar presentations


Ads by Google