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 Partial knowledge Ambiguous observations Low-level local mechanisms affect high-level global behavior
The conceptual framework
A molecular machinery
The metaphor
BlenX genesis Case Studies Evolutionary Pressure BlenX Beta binders Stochastic π -calculus Implementation
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
Stochastic π -calculus: proteins Prot A D1 D2 D3 D1 D2 D3 Prot A ::= (new ch)(D1 | D2 | D3) ch
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
Stochastic π -calculus: 1 st concern
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
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}
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}
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}
Stochastic π -calculus: 2 nd concern
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}
Stochastic π -calculus: 3 rd concern
Stochastic π -calculus: partial knowledge New knowledge : new programming
The origin: 4 th concern
?
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
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
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
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
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
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
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
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
Beta-binders: 1 st concern
Beta-binders: 2 nd concern
Beta-binders: 3 rd concern
Beta-binders: 4 th concern
Beta-binders: further concerns
?
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)
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
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
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
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
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
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
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
BlenX: 1 st concern
BlenX: 2 nd concern
BlenX: 3 rd concern
BlenX: 4 th concern
BlenX: further concerns
The current generation: evolutionary pressure Case Studies Populations Cell-organs systems Tissues Cell-cell interaction Space, morphogenesis Scientific questions
Other species S π -calculus dialects, BioAmbients, Brane calculi, κ -calculus, CCS-R, BioPEPA, … P-systems, Petri nets, statecharts, BioUML, cellular automata, … ODEs
Computational tools
Computational support Case Studies Evolutionary Pressure BetaWB SPiM BioSPI Efficiency
Computational support: Input
Computational support: further features
Computational support: Output
Computational support: Output
Computational support: further features Multiple experiments Analysis methods Time-courses Managing configuration Time window Statistic variables Exporting settings
Computational support: evolutionary pressure Case Studies Simulation- based science Analysis, visualization, model versioning Diffusion, parallelism Efficiency
Examples
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
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
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)
Predator - Prey
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