Molecular Programming with Stochastic Pi Calculus: Computer Representation of Biological Processes

Post on 03-Feb-2016

35 views 0 download

Tags:

description

Molecular Programming with Stochastic Pi Calculus: Computer Representation of Biological Processes. Ehud Shapiro. Joint work with Aviv Regev and Bill Silverman. 1 micron. E. Coli. Scaling electro and bio devices.  = 0.25 micron in Pentium II. Molecular Biology is…. - PowerPoint PPT Presentation

Transcript of Molecular Programming with Stochastic Pi Calculus: Computer Representation of Biological Processes

Molecular Programming with Stochastic Pi Calculus:

Computer Representation of Biological Processes

Ehud Shapiro

Joint work with Aviv Regev and Bill Silverman

E. ColiE. Coli

1 micron1 micron

micronmicronin Pentium IIin Pentium II

Scaling electro and bio devices

Molecular Biology is… Sequence: Sequence of DNA and

Proteins Structure: 3D Structure of Proteins and

other biomolecules and molecular complexes

Interaction: How do these molecules interact?

Sharing scientific knowledge In the Sequence and Structure

branches: Knowledge is encoded, shared, processed and updated via computers.

Knowledge about Molecular Interactions is shared via articles.

Why?

Computer languages for sharing biological knowledge

Sequence: Strings over {A,C,T,G} Structure: Labeled 3D Graphs Interaction: ?

The “New Biology” The Cell as an information processing

device Cellular processes are information

processing and information passing processes carried out by networks of interacting molecules

Ultimate understanding of the cell requires an information processing model.

Which?

Describing the Cell To fully describe the cell we need a

language (or languages) that facilitate the creation of…

Compositional, executable representations of biological knowledge

Executable – to enable computer simulation and analysis

Compositional – so that a representation of the cell can be composed bottom-up

“We have no real ‘algebra’ for describing regulatory circuits across different systems...”

- T. F. Smith (TIG 14:291-293, 1998)

“The data are accumulating and the computers are humming, what we are lacking are the words, the grammar and the syntax of a new language…”

- D. Bray (TIBS 22:325-326, 1997)

Computer languages for sharing biological knowledge

Sequence: Strings over {A,C,T,G} Structure: Labeled 3D Graphs Interaction: ?

• Answer: Process description language

Molecules as Processes

Molecule Process

Interaction capability

Channel

Interaction Communication

ModificationState and/or

channel change

Which Process Description Language?

Many candidates We chose a stochastic extension of the

Pi Calculus Why? … We tried it and we like it First step: Compile (full) Pi Calculus to

FCP/Logix

Stochastic -Calculus (Priami, 1995)

Every channel x attached with a base rate r A global (external) clock is maintained The clock is advanced and a communication

is selected according to a race condition Rate calculation and race condition is

unsuitable for chemical reactions • Rate(A+B C) = BaseRate *[A]*[B]• [A] = number of A’s willing to communicate with

B’s.• [B] = number of B’s willing to communicate with

A’s.

Biochemical Stochastic -Calculus (Regev, Priami, Silverman, Shapiro 2001)

Gillespie (1977): Accurate stochastic simulation of chemical reactions

Modification of the race condition and actual rate calculation according to biochemical principles

BioPSI simulation system:• Compiles (full) Pi Calculus to FCP/Logix• Incorporates Gillespie’s algorithm in the

runtime engine

Programming Molecules with Stochastic Pi Calculus

Active entities of interest (atoms, functional groups, molecules, molecular complexes) = processes

Interaction = synchronized pair-wise communication coupled with change of process state.

Interaction rates built into the language With same principles specify chemistry, organic

chemistry, enzymatic reactions, metabolic pathways, signal-transduction pathways…

Ultimately – the entire cell. Key property – Compositionality of the Pi

Calculus

Remainder of Lecture

Broad spectrum of examples Multiple levels of abstraction

• Physical chemistry• Organic Chemistry• Biochemistry• Molecular Biology

PSI notation (add rate syntax)

Prefix ,

Parallel composition

|

Input x ? {y,z,…} or x ? []

Output x ! {y,z,…} or x ! []

Choice ; or +

New << x,y,… . Process >>Process+(x,y,…)

Parametric process definition

P(x,y,…)::= P(x,y,…)+(z,w,…) ::=

Arithmetic FCP / Logix syntax

Na + Cl < Na+ + Cl-

global(e1(100),e2(10)).

Na::= e1 ! [] , Na_plus .

Na_plus::= e2 ? [] , Na .

Cl::= e1 ? [] , Cl_minus .

Cl_minus::= e2 ! [] , Cl .

Processes, guarded communication, alternation between two states. Reaction

rates. (show spawning sooner) nacl_1.cp

0 0.5 1 1.5 2 2.5 3 3.5 4

x 10-3

0

10

20

30

40

50

60

70

80

90

100

0 0.005 0.01 0.015 0.02 0.025 0.030

10

20

30

40

50

60

70

80

90

100

0 0.005 0.01 0.015 0.02 0.025 0.030

10

20

30

40

50

60

70

80

90

100

0 0.5 1 1.5 2 2.5 3 3.5 4

x 10-3

0

10

20

30

40

50

60

70

80

90

100

K + Na + 2Cl K+ + 2Cl- + Na+

global(e1(100),e2(10),e3(30),e4(20).

Na::= e1 ! [] , Na_plus .

Na_plus::= e2 ? [] , Na .

K::= e3 ! [] , K_plus .

K_plus::= e4 ? [] , K .

Cl::= e1 ? [] , Cl_minus ;

e3 ? [] , Cl_minus .

Cl_minus::= e2 ! [] , Cl ;

e4 ! [] , Cl .

Guarded probabilistic choiceknacl_2.cp

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.020

10

20

30

40

50

60

70

80

90

100

Mg + 2Cl MgCl2

global(e1(10),e2(100),e3(50),e4(5)).

Mg::= e1 ! [] , Mg_plus .Mg_plus::= e2 ! [] , Mg_plus2 ;

e3 ? [] , Mg .Mg_plus2::= e4 ? [] , Mg_plus .Cl::= e1 ? [] , Cl_minus ; e2 ? [] , Cl_minus .Cl_minus::= e3 ! [] , Cl ; e4 ! [] , Cl .

Mixed choice Representation of unstable intermediate state

mgcl2_3.cp

H + Cl HCl global(e1(100)).

H+electron(10)::= e1 ! {electron} , H_plus(electron).

H_plus(e)::= e ? [] , H .Cl::= e1 ? {electron} , Cl_minus(electron). Cl_minus(e)::= e ! [] , Cl .

hcl_5.cp

Sharing of local channels and creating molecules

0 1 2 3 4 5 6

x 10-3

0

10

20

30

40

50

60

70

80

90

100

H + H H2global(e(10),e1(10)). H+electron(0.1)::=

e1 ! {electron} , H_BoundH(electron) ;

e1 ? {e2} , H_BoundH(e2) ; e ! {electron} , H_Bound(electron) . H_BoundH(el)::= el ? [] , H ; el ! [] , H. H_Bound(el)::= el ? [] , H .

Mixed choice on the same channel (homo dimerization)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.20

10

20

30

40

50

60

70

80

90

100

h2_7.cp

O + O O2

global(e(100),ee(20)). O+electron(0.1)::=

ee ! {electron} ,O_Double_Bound(electron) ; ee ? {electron} , O_Double_Bound(electron) ;e ? {electron} , O_Bound1(electron) .

O_Double_Bound(el)::= el ! [] , O ;

el ? [] , O . O_Bound1(el)::=

el ! [] , O ; e ? {electron1}, O_Bound2(el,electron1) . O_Bound2(el,electron1)::=

electron1 ! [] , O_Bound1(el) .

Multiple local channels and polyadic messages. Restriction of reaction scope via molecular identity

and proximity creates only O2.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

90

100

o2_9.cp

2 3 4 5 6 7 8 9 10 110

10

20

30

40

50

60

70

80

90

100

H + O H2O + O2 + H2

System(N1,N2)::= << CREATE_H(N1) | CREATE_O(N2) . CREATE_H(C)::=

{C =< 0} , true ; {C > 0} , {C--} | H | self .

CREATE_O(C)::= {C =< 0} , true ; {C > 0} , {C--} | O | self

>> .

h2o_10.cp

Composition of separately defined atoms(arithmetic, scopes, logical guards)

RCOOH + NH2R RCONHR + H2O(condensation and hydrolysis)

cond_pep_1.cp

global(amine(10),hydrolysis(1)).

R_Amine+eRN::= NH2(eRN) | R(eRN). R_Carboxyl+eRC::= R(eRC) | COOH(eRC) . NH2(eRN)::= amine ? {eRC} , Amide(eRN,eRC) | H2O . Amide(eRN,eRC)::=

hydrolysis ? [] , COOH(eRC) | NH2(eRN) .R(e)::= e ! [] , self .COOH(eRC)::= amine ! {eRC} , true . H2O::= hydrolysis ! [] , true .

Modular representation of organic molecules, functional groups and their interactions

RCOOH + NH2R RCONHR + H2O(condensation and hydrolysis)

cond_pep_1.cp

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

10

20

30

40

50

60

70

80

90

100

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.50

10

20

30

40

50

60

70

80

90

100

Osmosis across membranes global(inside(1),outside(1)). Membrane::= inside ! {outside} , Membrane ;

outside ! {inside} , Membrane . H_plus(location)::=

location ? {new_location} , H_plus(new_location).

global(inside(1),outside(1)).

Membrane::= inside ! {outside} , Membrane ; outside ! {inside} , Membrane .

H_plus_GREEN(location)::= location ? {new_location} , H_plus_BLUE(new_location) .

H_plus_BLUE(location)::= location ? {new_location} , H_plus_GREEN(new_location) .

Change of molecule location modeled by global channel mobility.

Manual trace

osmosis_1.cp

osmosis_2.cp

Location

traced by

“color”

Osmosis across membranes

osmosis_1.cp

@spr<2> suspendedosmosis_1 # .Membrane.comm(global.inside(1)!, global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)

osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.inside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)osmosis_1 # .H_plus.comm(global.outside(1)!)

Osmosis across membranes

osmosis_2.cp

0 1 2 3 4 5 6 7 8 9 100

10

20

30

40

50

60

70

80

90

100

Active Transport

Active transport represented by differential interaction rates

pump_3.cp

global(inside(1),outside(1),pump_inside(10),pump_outside(1)).

Membrane::= inside ! {outside,pump_outside} , Membrane ; outside ! {inside,pump_inside} , Membrane .Pump::= pump_inside ! {outside,pump_outside} , Pump ; pump_outside ! {inside,pump_inside} , Pump . H_plus_GREEN(location,pump)::=

location ? {new_location,new_pump} , H_plus_BLUE(new_location,new_pump) ;

pump ? {new_location,new_pump} , H_plus_BLUE(new_location,new_pump) .

H_plus_BLUE(location,pump)::= location ? {new_location,new_pump} ,

H_plus_GREEN(new_location,new_pump) ;pump ? {new_location,new_pump} ,

H_plus_GREEN(new_location,new_pump) .

Active transport

pump_3.cp

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

90

100

All molecules IN at t=0 All molecules OUT at t=0

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

90

100

Enzymatic Reaction

fumarate

comp_inhib_2a.cp

global(sucd_suc(10), suc_fadh2,fum_fum). Succinate_dehydrogenase_FAD+(catalyze_suc(1),release_suc(10))::=

<< sucd_suc ! {release_suc,catalyze_suc} , Bound_Succinate_dehydrogenase_FAD ;

Bound_Succinate_dehydrogenase_FAD::=release_suc ! [] , Succinate_dehydrogenase_FAD ;catalyze_suc ! [] , Succinate_dehydrogenase_FAD >> .

Fumarate::= fum_fum ? [] , true .Succinate::= sucd_suc ? {rel,cat} ,

<< rel ? [] , Succinate ; cat ? [] , Fumarate >> .

E-FADsuccinate

Enzymatic Reaction

comp_inhib_2a.cp

5 10 15 20 250

20

40

60

80

100

120

Competitive Inhibition

fumarate

comp_inhib_2a.cp

global(sucd_suc(10), suc_fadh2,fum_fum). Succinate_dehydrogenase_FAD+(catalyze_suc(1),release_suc(10))::=

<< sucd_suc ! {release_suc,catalyze_suc} , Bound_Succinate_dehydrogenase_FAD ;

Bound_Succinate_dehydrogenase_FAD::=release_suc ! [] , Succinate_dehydrogenase_FAD ;catalyze_suc ! [] , Succinate_dehydrogenase_FAD >> .

Fumarate::= fum_fum ? [] , true .Succinate::= sucd_suc ? {rel,cat} ,

<< rel ? [] , Succinate ; cat ? [] , Fumarate >> .

E-FADsuccinate

E-FAD-Malonat

e

Malonate + E-FAD

Competitive Inhibition

comp_inhib_2a.cp

0 20 40 60 80 100 1200

20

40

60

80

100

120

Phosphodiester bondglobal(hydroxyl_P(1)). Seed_Nucleotide::= << hydroxyl_P ? {pd_ester} , Seed_Bound(pd_ester) . Seed_Bound(pd_ester)::= pd_ester ! [] , Seed_Nucleotide >> . Nucleotide+pde(0.001)::= << hydroxyl_P ! {pde} , Nucleotide_5_Bound . Nucleotide_5_Bound::=

pde ? [] , Nucleotide ; hydroxyl_P ? {pd_ester} ,

Nucleotide_5_3_Bound(pd_ester) . Nucleotide_3_Bound(pd_ester)::=

pd_ester ! [] , Nucleotide . Nucleotide_5_3_Bound(pde,pd_ester)::=

pde ? [] , Nucleotide_3_Bound(pd_ester) ; pd_ester ! [] , Nucleotide_5_Bound(pde)

>> .Directional polymerization of nucleic acids, by

creation of two phosphodiester bondsphosphodiester_sugar_phosphate_7.cp

Phosphodiester bond

0 20 40 60 80 100 1200

10

20

30

40

50

60

70

80

90

100

P

P

P

P

P

P

5’

3’5’

3’5’

3’

5’

3’

5’

3’Growing end

5’

3’

phosphodiester_sugar_phosphate_7.cp

Glycogen: Packaging glucose by polymerization and branching

Glycogen_fixed.cp

Glycogen - I

Use of variables and arithmetic conditions to determine process state. Infinite rates for internal synchronization.

Glycogen_fixed.cp

Glucose(to_root, to_leaf, RC, LC, LBC)::=

{LC>=0}, << {LBC = 0} ,

<< {LC = 0} , Leaf_Glucose ; {LC = 7 , RC >= 4} , BCE_Glucose ;

{LC > 0 , LC =\= 7 , RC >= 4} ,

BNCE_Glucose ; {LC > 0 , RC < 4} , Disabled_Glucose >> ;

{LBC > 0} ,

<< {RC >= 4 , LBC >=4} , BNCE_Glucose ; {RC < 4} , Disabled_Branched_Glucose ;

{LBC < 4} , Disabled_Branched_Glucose >> .

Glycogen - II

Glycogen_fixed.cp

Seed_Glucose(RC,LC,LBC)::= Glycogen ? {to_leaf} , to_leaf ! {RC,LBC} , Root_Glucose(to_leaf,RC,LC,LBC) .Root_Glucose(to_leaf,RC,LC,LBC)::= to_leaf ? {LC,LBC} , {LC++} , Root_Glucose(to_leaf,RC,LC,LBC) .

UDP_Glucose(LC,LBC)+(to_root,to_leaf)::= udp_glucose ! {to_root} , to_root ? {RC,LBC} , {RC++} , to_root ! {LC,LBC} , Glucose(to_root,to_leaf,RC,LC,LBC) .

Leaf_Glucose::= glycogen ? {to_leaf} , to_leaf ! {RC,LBC} , to_leaf ? {LC,LBC} , {LC++} , to_root ! {LC,LBC} , Glucose(to_root,to_leaf,RC,LC,LBC);to_root ? {RC,_} , << {RC >=0} , {RC++} , Glucose ; {RC < 0} , Disabled_Leaf_Glucose >> .

Disabled_Leaf_Glucose::= to_root ? {RC,_} , {RC++} , Glucose .

BNCE_Glucose::= to_leaf ? {LC,LBC} , {LC++} , << {LBC = 0} , to_root ! {LC,LBC} , Glucose ; {LBC > 0} , {LBC++} , to_root ! {LC,LBC} , Glucose >> ; to_root ? {RC,_} , << {RC >=0} , {RC++} , to_leaf ! {RC,LBC} , Glucose ; {RC < 0} , to_leaf ! {RC, LBC} , Disabled_Glucose >> ; branch ? {to_branch} , Branch_Synch1(to_branch,RC,LC,LBC) .

Branch_Synch1(to_branch,RC,LC,LBC)+(RC1,LBC1)::= {RC1=0} | {LBC1=1} | << to_branch ! {RC1,LBC} , to_leaf ! {RC1,LBC} , to_root ! {LC,LBC1} , Branch_Point(to_root,to_branch,to_leaf) >> .

Glycogen - III

Glycogen_fixed.cp

Disabled_Glucose::= to_leaf ? {LC,LBC} , {LC++} , << {LBC = 0} , to_root ! {LC,LBC} , Glucose ; {LBC > 0} , {LBC++} , to_root ! {LC,LBC} , Glucose >> ;

to_root ? {RC,_} , {RC++} , to_leaf ! {RC,LBC} , Glucose . BCE_Glucose+(new_to_root,RC1,LC1,LBC1)::= << to_leaf ? {LC,LBC} , {LC++} , << {LBC = 0} , to_root ! {LC,LBC} , Glucose ;

{LBC > 0} , {LBC++} , to_root ! {LC,LBC} , Glucose >> ; to_root ? {RC,_} , << {RC >=0} , {RC++} , to_leaf ! {RC,LBC} , Glucose ;

{RC < 0} , to_leaf ! {RC,LBC} , Disabled_Glucose >> ; branch ? {to_branch} , Branch_Synch(to_branch,RC,LC,LBC) ; cleave ! {new_to_root} , {LC1 = -1} | {RC1 = -1} | Cleave_Synch(to_leaf) . Cleave_Synch(to_leaf)::=

to_root ! {LC1,LBC} , to_leaf ! {RC1, LBC} , new_to_root ? {RC,_} , {RC++} , to_leaf ! {RC,LBC} , Glucose(new_to_root,to_leaf, RC, LC, LBC) >> .

Branch_Synch(to_branch,RC,LC,LBC)+(RC1,LBC1)::= {RC1=0} | {LBC1=1} | << to_branch ! {RC1,LBC} , to_leaf ! {RC1,LBC} , to_root ! {LC,LBC1} , Branch_Point(to_root,to_branch,to_leaf) >> >> .

Disabled_Branched_Glucose::= to_leaf ? {LC,LBC} , {LC++} , << {LBC = 0} , to_root ! {LC,LBC} , Glucose ; {LBC > 0} , {LBC++} , to_root ! {LC,LBC} , Glucose >> ;to_root ? {RC,_} , {RC++} , to_leaf ! {RC,LBC} , Glucose >> .

Branch_Point(to_root,to_branch,to_leaf)::= to_root ? {_,_} , self ; to_branch ? {_,_} , self ; to_leaf ? {_,_} , self .

Glycogen_Synthase::= udp_glucose ? {to_root} , glycogen ! {to_root} , Glycogen_Synthase .Branching_Enzyme::= cleave ? {to_branch} , branch ! {to_branch} , Branching_Enzyme .

Glycogen

Glycogen_fixed.cp

.Root_Glucose.comm(.UDP_Glucose.to_root!)Disabled_Branched_Glucose.comm(.UDP_Glucose.to_root!,

.UDP_Glucose.to_root!, 1, 4, 4, global.branch(1)!, global.cleave(1)!, global.glycogen(1)!)....Branch_Point.comm(.UDP_Glucose.to_root!, BCE_Glucose.new_to_root!, .UDP_Glucose.to_root!)Disabled_Glucose.comm(BCE_Glucose.new_to_root!,

.UDP_Glucose.to_root!, 1, 8, 0, global.branch(1)!, global.cleave(1)!, global.glycogen(1)!)...BNCE_Glucose.comm(.UDP_Glucose.to_root!, .UDP_Glucose.to_root

!, 4, 5, 0, global.branch(1)!, global.cleave(1)!, global.glycogen(1)!)...Leaf_Glucose.comm(.UDP_Glucose.to_root!, .UDP_Glucose.to_leaf

, 2, 0, 0, global.branch(1)!, global.cleave(1)!, global.glycogen(1)!)....Glycogen_Synthase.comm(global.glycogen(1)!, global.udp_glucose(1)!).Branching_Enzyme.comm(global.branch(1)!, global.cleave(1)!)

1,4,4 2,3,3 3,2,2 1 1,1,0 2,0,0

1,8,0

2,7,0

3,6,0

4,5,0

5,4,0

6,3,0

7,2,0

8,1,0

9,0,0BNCE

Leaf

Disabled

Branch Point

Disabled Branched

Root

RC,LC,LBC (LC irrelevant in Disabled_Branched)

Glycogen_fixed.cp

Signal transduction and regulatory pathways

Modular at

domain, compone

nt and pathway

level

Multiple connection

s:

feedback, cross talk

From receptors on the cell membrane

To intracellular (functional) end-points

Mitosis, Meiosis,Differentiation, Development

Rsk, MAPKAP’s

Kinases, TFs

Inflammation, Apoptosis

G protein receptors Cytokine receptors DNA damage, stress sensorsRT

K

RT

K

PP2A

RhoA

GCK

RAB

PAK

RAC/Cdc42

?

JNK1/2/3

MKK4/7

MEKK1,2,3,4MAPKKK5

C-ABL

HPK

P38 ///

MKK3/6

MLK/DLK ASK1

G

GG

Ca+2

PYK2

PKA

GRB2SHC

SOS

RAS

GAP

ERK1/2

MKK1/2

RAF MOS TLP2

TFs, cytoskeletal proteins

MAPKKK

MAPKK

MAPK

Example: ERK1 Ser/Thr kinase

Binding MP1 molecules

Regulatory T-loop: Change conformation

Kinase site: Phosphorylate Ser/Thr residues

(PXT/SP motifs)

ATP binding site: Bind ATP, and use it for

phsophorylation

Binding to substrates

Structure Process

COOH

Nt lo

be

Cata

lytic co

reC

t lobe

NH2

p-Y

p-T

Communication and global mobility

p-tyr replaces

tyr

KINASE_ACTIVE_SITE | T_LOOP {p-tyr / tyr }

Actions consumed alternatives discarded

tyr ! [p-tyr] . KINASE_ACTIVE_SITE + … | … + tyr ? [tyr] . T_LOOPY

ERK1MEK1Ready to

send p-tyr on tyr !

Ready to receive on

tyr ?

pY

The circadian clock machinery (Barkai and Leibler, Nature 2000)

PR

UTRR

R

R

R_GENE

R_RNAtranscription

translation

degradation

PA

UTRA

A

A

A_GENE

A_RNAtranscription

translation

degradation

Differential rates: Very fast, fast and slow

The machinery in -calculus: “A” moleculesA_GENE::= PROMOTED_A + BASAL_APROMOTED_A::= pA ? {e}.ACTIVATED_TRANSCRIPTION_A(e)BASAL_A::= bA ? [].( A_GENE | A_RNA)ACTIVATED_TRANSCRIPTION_A::=

1 . (ACTIVATED_TRANSCRIPTION_A | A_RNA) +e ? [] . A_GENE

RNA_A::= TRANSLATION_A + DEGRADATION_mATRANSLATION_A::= utrA ? [] . (A_RNA | A_PROTEIN)DEGRADATION_mA::= degmA ? [] . 0

A_PROTEIN::= (new e1,e2,e3) PROMOTION_A-R + BINDING_R + DEGRADATION_A

PROMOTION_A-R ::= pA!{e2}.e2![]. A_PROTEIN + pR!{e3}.e3![]. A_PRTOEIN

BINDING_R ::= rbs ! {e1} . BOUND_A_PRTOEIN BOUND_A_PROTEIN::= e1 ? [].A_PROTEIN + degpA ? [].e1 ![].0DEGRADATION_A::= degpA ? [].0

A_Gene

A_RNA

A_protein

The machinery in -calculus: “R” moleculesR_GENE::= PROMOTED_R + BASAL_RPROMOTED_R::= pR ? {e}.ACTIVATED_TRANSCRIPTION_R(e)BASAL_R::= bR ? [].( R_GENE | R_RNA)ACTIVATED_TRANSCRIPTION_R::=

2 . (ACTIVATED_TRANSCRIPTION_R | R_RNA) +e ? [] . R_GENE

RNA_R::= TRANSLATION_R + DEGRADATION_mRTRANSLATION_R::= utrR ? [] . (R_RNA | R_PROTEIN)DEGRADATION_mR::= degmR ? [] . 0

R_PROTEIN::= BINDING_A + DEGRADATION_RBINDING_R ::= rbs ? {e} . BOUND_R_PRTOEIN BOUND_R_PROTEIN::= e1 ? [] . A_PROTEIN + degpR ? [].e1 ![].0DEGRADATION_R::= degpR ? [].0

R_Gene

R_RNA

R_protein

BioPSI simulation

Robust to a wide range of parameters

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

100

200

300

400

500

600

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

100

200

300

400

500

600

A R

The A hysteresis module

The entire population of A molecules (gene, RNA, and protein) behaves as one bi-stable module

A

R

ON

OFF

FastFast

0 100 200 300 400 500 6000

100

200

300

400

500

600A

R

Modular cell biology

? How to identify and compare modules and prove their function?

! Semantic concept: Two processes are equivalent if can be exchanged within any context without changing system behavior

Modular cell biology

Build two representations in the -calculus• Implementation: molecular level Implementation: molecular level • Specification: functional module level Specification: functional module level

Show the equivalence of both representations• by computer simulationby computer simulation• by formal verificationby formal verification

The circadian specification

R (gene, RNA, protein) processes are unchanged (modularity)

PR

UTRR

R

R

R_GENE

R_RNAtranscription

translation

degradation

ONOFF

Counter_A

Hysteresis moduleON_H-MODULE(CA)::=

{CA<=T1} . OFF_H-MODULE(CA) + {CA>T1} . (rbs ! {e1} . ON_DECREASE + e1 ! [] . ON_H_MODULE + pR ! {e2} . (e2 ! [] .0 | ON_H_MODULE) + 1 . ON_INCREASE)ON_INCREASE::= {CA++} . ON_H-MODULEON_DECREASE::= {CA--} . ON_H-MODULE

OFF_H-MODULE(CA)::=

{CA>T2} . ON_H-MODULE(CA) + {CA<=T2} . (rbs ! {e1} . OFF_DECREASE + e1 ! [] . OFF_H_MODULE + 2 . OFF_INCREASE )OFF_INCREASE::= {CA++} . OFF_H-MODULEOFF_DECREASE::= {CA--} . OFF_H-MODULE

ON

OFF

BioPSI simulation

0 1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

50

100

150

200

250

300

350

400

450

500

Module, R protein and R RNA

7500 8000 8500 9000 9500 100000

100

200

300

400

500

600

R (module vs. molecules)

The RTK-MAPK pathway

16 molecular species 24 domains; 15 sub-

domains Four cellular

compartments Binding, dimerization,

phosphorylation, de-phosphorylation, conformational changes, translocation

~100 literature articles 250 lines of code

ERK1RAF

GRB2

RTK

RTK

SHC

SOS

RAS

GAP

PP2A

MKK1

GF GF

MP1

MKP1

IEG

IEP

IEP

J F

Why Pi?1. Chemical reactions are bimolecular and

synchronous2. Global channels easily implement global

recognition and interaction capabilities3. Local channels can implement chemical

bonds, identity of molecules and complexes, compartmentalization.

4. Channel name passing proves useful and sufficient in multiple contexts.

5. Multiple levels of abstraction can be uniformly represented.

6. Compositionality allows bottom-up description of molecular systems.

Verification in biology? Prediction of behaviour of complex

systems in health and disease Comparison of variant systems Modularization and definition of function