using blenx for systems biology
play

Using BlenX for Systems Biology Corrado Priami CoSBi Outline of - PowerPoint PPT Presentation

Using BlenX for Systems Biology Corrado Priami CoSBi Outline of the talk 1. Systems biology 2. BlenX genesis 3. Computational tools 4. A couple of examples Systems Biology: some challenges Interaction Emergence Multi-level, multi-scale


  1. Using BlenX for Systems Biology Corrado Priami CoSBi

  2. Outline of the talk 1. Systems biology 2. BlenX genesis 3. Computational tools 4. A couple of examples

  3. Systems Biology: some challenges Interaction Emergence Multi-level, multi-scale Partial knowledge Ambiguous observations Low-level local mechanisms affect high-level global behavior

  4. The conceptual framework

  5. A molecular machinery

  6. The metaphor

  7. BlenX genesis Case Studies Evolutionary Pressure BlenX Beta binders Stochastic π -calculus Implementation

  8. The origin: Stochastic π -calculus act ::= (a!y, r) | (a?x, r) | (tau, r) P ::= 0 | Σ i act i .P i | P1|P2 | (new x)P | [x=y]P |!P

  9. Stochastic π -calculus: proteins Prot A D1 D2 D3 D1 D2 D3 Prot A ::= (new ch)(D1 | D2 | D3) ch

  10. Stochastic π -calculus: concentration of proteins Prot A D1 D2 D3 D1 D2 D3 ch1 MultiProt A ::= Prot A | … | Prot A D1 D2 D3 D1 D2 D3 ch3 ch2

  11. Stochastic π -calculus: 1 st concern

  12. Stochastic π -calculus: protein- protein interaction capabilities Prot A Prot B D4 D1 D2 D3 a!y a?x D4 Prot A ::= (new ch)(D1 | D2 | a!y.D3 ’ ) a Prot B ::= a?x.D4 ’ D1 D2 D3 System ::= Prot A | Prot B ch1

  13. Stochastic π -calculus: protein-protein interaction Prot A Prot B D4 D1 D2 D3 a!y a?x System  (new ch)(D1 | D2 | D3 ’ ) | D4 ’ {y/x} Prot B Prot A D1 D2 D3 ’ D4 ’ {y/x}

  14. Stochastic π -calculus: protein-protein complexation Prot A Prot B D4 D1 D2 D3 a!y a?x (new ch, y )(D1 | D2 | a!y .D3 ’ ) | a?x .D4 ’  (new y)[ (new ch)(D1 | D2 | D3 ’ ) | D4 ’ {y/x} ] Prot AB D1 D2 D3 ’ D4 ’ {y/x}

  15. Stochastic π -calculus: protein-protein decomplexation Prot AB D4 ’ {y/x} D1 a!y.D2 ’ D3 ’ (new y)[(new ch)(D1 | a!y .D2 ’ | D3 ’ ) | D4 ’ {y/x}]  � (new ch)(D1 | D2 ’ | D3 ’ ) | D4 ’ {y/x} Prot B Prot A D1 D2 ’ D3 ’ D4 ’ {y/x}

  16. Stochastic π -calculus: 2 nd concern

  17. Stochastic π -calculus: non key-lock interaction Prot B Prot A D1 D2 D3 D5 a i ?x (new ch)(D1 | D2 | a 1 !y.D3 ’ +…+a n !y.D3 ’ ) | a i ?x.D5 ’  � (new ch)(D1 | D2 | D3 ’ ) | D5 ’ {y/x} Prot B Prot A D1 D2 D3 ’ D5 ’ {y/ x}

  18. Stochastic π -calculus: 3 rd concern

  19. Stochastic π -calculus: partial knowledge New knowledge : new programming

  20. The origin: 4 th concern

  21. ?

  22. The evolution: Beta-binders act ::= (a!y, r) | (a?x, r) | (tau, r) | (expose(x, T), r) | (hide(x), r) | (unhide(x), r) B ::= β (x:T) | β h (x:T)| β (x:T) B | β h (x:T) B P ::= 0 | P1|P2 | (new x)P |!P Nil | B [P]| B|B B ::= x:T y:U x?w.P 1 | y?k.P 2 | hide(y).P 3

  23. Beta-binders: interaction x:T y:U z:V x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 x:T y:U z:V z!v.S 1 | S 2 {w/k}| S 3 x?w.P 1 | y?k.P 2 | hide(y).P 3

  24. Beta-binders: interaction x:T y:U z:V x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 x:T y:U z:V z!v.S 1 | S 2 {w/k}| S 3 x?w.P 1 | y?k.P 2 | hide(y).P 3 x:T y:U z:V x?w.P 1 | P 2 {v/k}| hide(y).P 3 S 1 | y?k.S 2 | y!w.S 3

  25. Beta-binders: binders manipulation x:T y:U unhide(y).P 1 | expose(x:V).P 2 | hide(y).P 3 x:T y:U z:V unhide(y).P 1 | P 2 {z/x} | hide(y).P 3

  26. Beta-binders: binders manipulation x:T y:U unhide(y).P 1 | expose(x:V).P 2 | hide(y).P 3 x:T y:U z:V unhide(y).P 1 | P 2 {z/x} | hide(y).P 3 x:T y h :U z:V unhide(y).P 1 | P 2 {z/x} | P 3

  27. Beta-binders: binders manipulation x:T y:U unhide(y).P 1 | expose(x:V).P 2 | hide(y).P 3 x:T y:U z:V x:T y:U z:V P 1 | P 2 {z/x} | P 3 unhide(y).P 1 | P 2 {z/x} | hide(y).P 3 x:T y h :U z:V unhide(y).P 1 | P 2 {z/x} | P 3

  28. Beta-binders: boxes manipulation x:T z:V y:U x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 x:T x?w.P 1 | y?k.P 2 | hide(y).P 3 | z!v.S 1 | x?k.S 2 | x!w.S 3 f join = λ B 1 B 2 Q 1 Q 2 . if [ B 1 = β (x:T) B 1 * and B 2 = β (y:U) B 2 * and comp (T,U)] then ( B 1 , σ id , {x/y}) else nothing

  29. Beta-binders: boxes manipulation x:T z:V y:U x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 x:T x?w.P 1 | y?k.P 2 | hide(y).P 3 | z!v.S 1 | x?k.S 2 | x!w.S 3 x:T y:U x?w.P 1 | y?k.P 2 | hide(y).P 3 y!v.S 1 | x?k.S 2 | x!w.S 3 f split = λ B 1 Q 1 Q 2 . if B 1 = β (x:T) B 1 * then ( B 1 , β (y:U), σ id , {y/z}) else nothing

  30. Beta-binders: 1 st concern

  31. Beta-binders: 2 nd concern

  32. Beta-binders: 3 rd concern

  33. Beta-binders: 4 th concern

  34. Beta-binders: further concerns

  35. ?

  36. The current generation: BlenX act ::= a!y | a?x | expose(x, T) | hide(x) | unhide(x) | ch(x,T) | delay(r) | die(r) B ::= β (x:T) | β h (x:T)| β c (x:T) | β (x:T) B | β h (x:T) B | β c (x:T) B P ::= 0 | P1|P2 |!act.P | M | if CE then P M ::= act.P | M + M CE ::= (Id,Id) | (Id, hidden) | (Id, unhidden) | (Id, Bound) | CE and CE | CE or CE | not CE Nil | B [P]| B|B B ::= E ::= when (C) V C ::= time = real | steps = decimal | |Id::r | relop Decimal |C and C | C or C | not C V ::= join(B) | split(B 1 ,B 2 ) | delete(n) | new(n) | update(var, fun)

  37. BlenX: monomolecular actions x:A y:B z h :C die(1). P | ch(x,D).P + delay(2).P x:D y:B z h :C die(1). P | P

  38. BlenX: monomolecular actions x:A y:B z h :C die(1). P | ch(x,D).P + delay(2).P x:A y:B z h :C die(1). P | P

  39. BlenX: bimolecular actions x:T y:U z:V x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 { T, U, V, … } %% { … (U,V, r ), (T,V, r1 ), … x:T y:U z:V } x?w.P 1 | P 2 {v/k}| hide(y).P 3 S 1 | y?k.S 2 | y!w.S 3

  40. BlenX: bimolecular actions x:T y:U z:V x?w.P 1 | y?k.P 2 | hide(y).P 3 z!v.S 1 | y?k.S 2 | y!w.S 3 { T, U, V, … } %% { … (U,V, r ), (T,V, r1 ), … x:T y:U z:V } P 1 {v/k} | y?k.P 2 | hide(y).P 3 S 1 | y?k.S 2 | y!w.S 3

  41. BlenX: events x:T y:U z:V y:V Q R S when ( Q :: 10 ) new ( 1 ); x:T y:U z:V y:V x:T y:U Q R S Q when ( R , Q :: f ) join ( P ); let f = |S|*sqrt(|Q|)/k y:U y:V x:T y:U P S Q

  42. BlenX: complexes x:T y:U z:V y:Z { T,U,V,Z, … Q R S } %% { (U,Z,3.5), (U,V,1.5,2.5,10) x:T y:U z:V y:Z } Q R S

  43. BlenX: structures x:A x:A y:B x:A y:B x:A y:B y:B x : A y : B y:B x:A

  44. BlenX: 1 st concern

  45. BlenX: 2 nd concern

  46. BlenX: 3 rd concern

  47. BlenX: 4 th concern

  48. BlenX: further concerns

  49. The current generation: evolutionary pressure Case Studies Populations Cell-organs systems Tissues Cell-cell interaction Space, morphogenesis Scientific questions

  50. Other species S π -calculus dialects, BioAmbients, Brane calculi, κ -calculus, CCS-R, BioPEPA, … P-systems, Petri nets, statecharts, BioUML, cellular automata, … ODEs

  51. Computational tools

  52. Computational support Case Studies Evolutionary Pressure BetaWB SPiM BioSPI Efficiency

  53. Computational support: Input

  54. Computational support: further features

  55. Computational support: Output

  56. Computational support: Output

  57. Computational support: further features Multiple experiments Analysis methods Time-courses Managing configuration Time window Statistic variables Exporting settings

  58. Computational support: evolutionary pressure Case Studies Simulation- based science Analysis, visualization, model versioning Diffusion, parallelism Efficiency

  59. Examples

  60. Predator - Prey [steps=150000] x:Hunt x:Hunt x:Hunt let Predator : bproc = #(x,Hunt) x:Hunt [die(10) + x!().nil ]; nil die(10) + x!().nil die(10) + x!().nil x:Hunt y:Life let Prey : bproc = #(x,Hunt),#(y,Life) die(10) + x!().nil [x?().die(inf) + y!().nil ]; x:Hunt y:Life x:Hunt y:Life x:Hunt y:Life x?().die(inf) +y!().nil let Nature : bproc = #(x,Life) y:Life [ !x?().nil ] ; nil x?().die(inf) +y!().nil x?().die(inf) +y!().nil let PredatorRep : bproc = #(x,Hunt) [nil ]; !(y?().nil) when (PredatorRep :: inf) split (Predator,Predator); let PreyRep : bproc = #(x,Hunt),#(y,Life) [nil ]; when (PreyRep :: inf) split (Prey,Prey) ; run 1000 Predator || 1000 Prey || 1 Nature

  61. Predator - Prey x:Hunt x:Hunt y:Life die() + x!().nil x?().die(inf) + y!().nil { Hunt, Life x:Hunt x:Hunt y:Life } %% nil die(inf) { (Hunt,Hunt,10.0), (Life,Life,0.01) } x:Hunt x:Hunt die() + x!().nil die() + x!().nil

  62. Predator - Prey x:Hunt y:Life y:Life x?().die(inf) + y!().nil !(y?().nil) { Hunt, Life x:Hunt y:Life y:Life } %% { nil !(y?().nil) (Hunt,Hunt,10.0), (Life,Life,0.01) } x:Hunt y:Life x:Hunt y:Life y:Life x?().die(inf) +y!().nil x?().die(inf) +y!().nil !(y?().nil)

  63. Predator - Prey

  64. Cell cycle: synthesis/degradation Function file Model file let alpha : const = 0.00236012; let CYCBT: bproc = #(x,CYCBT)[ nil ]; let k1 : const = 0.04; when(CYCBT : : d_dtCYCBT_1) new(1); let k2p : const = 0.04; when(CYCBT : : d_dtCYCBT_2) delete(1); let d_dtCYCBT_1 : function = k1/alpha; let d_dtCYCBT_2 : function = k2p*|CYCBT|;

Recommend


More recommend