A Graphical Representation for the Stochastic Pi-Calculus

Similar documents
A Graphical Representation for Biological Processes in the Stochastic pi-calculus

Varieties of Stochastic Calculi

Efficient, Correct Simulation of Biological Processes in the Stochastic Pi-calculus

A Visual Process Calculus for Biology

SPA for quantitative analysis: Lecture 6 Modelling Biological Processes

Modeling Biological Systems in Stochastic Concurrent Constraint Programming

38050 Povo Trento (Italy), Via Sommarive 14 CAUSAL P-CALCULUS FOR BIOCHEMICAL MODELLING

Modeling Biological Systems in Stochastic Concurrent Constraint Programming

I. COMPOSITIONALITY, STOCHASTICITY AND COOPERATIVITY IN DY- NAMIC MODELS OF GENE REGULATION (SUPPLEMENTARY MATERIAL)

Stochastic Simulation of Biological Systems with Dynamical Compartments

Using Probabilistic Model Checking in Systems Biology

Models of Concurrency

Biochemical simulation by stochastic concurrent constraint programming and hybrid systems

Biological Pathways Representation by Petri Nets and extension

Review of The π-calculus: A Theory of Mobile Processes

Business Process Management

A Generic Abstract Machine for Stochastic Process Calculi

Where Membrane Meet Complexes

Concurrent Processes and Reaction

Bisimulation Congruences in the Calculus of Looping Sequences

Stochastic Process Algebra models of a Circadian Clock

Computational Modeling of the EGFR Network Elucidates Control Mechanisms Regulating Signal Dynamics

Trace Refinement of π-calculus Processes

Communicating and Mobile Systems

Population models from PEPA descriptions

Some investigations concerning the CTMC and the ODE model derived from Bio-PEPA

A Note on Scope and Infinite Behaviour in CCS-like Calculi p.1/32

Modelling Biochemical Pathways with Stochastic Process Algebra

From Petri Nets to Differential Equations An Integrative Approach for Biochemical Network Analysis

Deducing Interactions in Partially Unspecified Biological Systems

A Graph Rewriting Semantics for the Polyadic π-calculus

FROM ODES TO LANGUAGE-BASED, EXECUTABLE MODELS OF BIOLOGICAL SYSTEMS

Processes in Space. Luca Cardelli Microsoft Research. with Philippa Gardner Imperial College London

Stochastic Simulation of Biological Systems with Dynamical Compartment Structure

Cells in silico: a Holistic Approach

Information System Design IT60105

RNA-interference and Register Machines (extended abstract)

Computational Modelling in Systems and Synthetic Biology

An introduction to process calculi: Calculus of Communicating Systems (CCS)

DISCRETE EVENT SYSTEMS SPECIFICATION IN SYSTEMS BIOLOGY - A DISCUSSION OF STOCHASTIC PI CALCULUS AND DEVS

How to Build a Living Cell in Software or Can we computerize a bacterium?

Supplement to: How Robust are Switches in Intracellular Signaling Cascades?

From CCS to Hybrid π via baby steps. Bill Rounds CSE, U of Michigan

Problem Set # 3

Networks in systems biology

Communication and Concurrency: CCS

Formal Methods and Systems Biology: The Calculus of Looping Sequences

CoBiC: Context-dependent Bioambient Calculus

CoBiC: Context-dependent Bioambient Calculus

Linear Temporal Logic and Büchi Automata

Embedded Systems 2. REVIEW: Actor models. A system is a function that accepts an input signal and yields an output signal.

Communication and Concurrency: CCS. R. Milner, A Calculus of Communicating Systems, 1980

New Computational Methods for Systems Biology

A few bridges between operational and denotational semantics of programming languages

Type Disciplines for Systems Biology

Stochastic Simulation of Multiple Process Calculi for Biology

Introduction to Bioinformatics

86 Part 4 SUMMARY INTRODUCTION

Discrete Dynamics Finite State Machines גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון

Combinatorial Strand Algebra in Insertion Modeling System

Deducing Interactions in Partially Unspecified Biological Systems

Systems Biology Across Scales: A Personal View XIV. Intra-cellular systems IV: Signal-transduction and networks. Sitabhra Sinha IMSc Chennai

A Weak Bisimulation for Weighted Automata

56:198:582 Biological Networks Lecture 8

On Compensation Primitives as Adaptable Processes

ONE of the key ideas in system engineering

An Introduction to Hybrid Systems Modeling

Stochastic Simulation.

Lab 2 Worksheet. Problems. Problem 1: Geometry and Linear Equations

EXECUTABLE BIOLOGY. Jasmin Fisher Thomas A. Henzinger

A Probabilistic Model for Molecular Systems

Towards a formal language for systemic requirements

Modeling Multiple Steady States in Genetic Regulatory Networks. Khang Tran. problem.

Boolean models of gene regulatory networks. Matthew Macauley Math 4500: Mathematical Modeling Clemson University Spring 2016

Quantitative and Probabilistic Modeling in Pathway Logic

Lecture 4 The stochastic ingredient

Computation Tree Logic (CTL) & Basic Model Checking Algorithms

TESTING is one of the most important parts of the

Semantic Equivalences and the. Verification of Infinite-State Systems 1 c 2004 Richard Mayr

The Systems Biology Graphical Notation

RESEARCH PROPOSAL MODELING A CELLULAR TRANSMEMBRANE SIGNALING SYSTEM THROUGH INTERACTION WITH G-PROTEINS BY USING CONCURRENT

A Simple Protein Synthesis Model

7. Queueing Systems. 8. Petri nets vs. State Automata

Rewriting Absolute Value Functions as Piece-wise Defined Functions

{},{a},{a,c} {},{c} {c,d}

arxiv: v2 [cs.dm] 29 Mar 2013

Unifying Theories of Programming

Towards a framework for multi-level modelling in Computational Biology

Reactive Turing Machines

One Year Later. Iliano Cervesato. ITT Industries, NRL Washington, DC. MSR 3.0:

Communicating Parallel Processes. Stephen Brookes

Timed Automata VINO 2011

A Structured Approach Part IV. Model Checking in Systems and Synthetic Biology

BME 5742 Biosystems Modeling and Control

Adjoint Logic and Its Concurrent Semantics

Semantics and Verification

The State Explosion Problem

Declarative Merging of and Reasoning about Decision Diagrams

Algebraic methods for the study of biochemical reaction networks

Automata-Theoretic Model Checking of Reactive Systems

Transcription:

A Graphical Representation for the Stochastic Pi-Calculus Andrew Phillips Luca Cardelli 27th August 2005 Microsoft Research 7 J J Thomson Avenue Cambridge, UK Andrew Phillips - Bioconcur 2005

Introduction Stochastic pi-calculus used to model and simulate a range of biological systems [Lecca and Priami, 2003, Priami et al., 2001, Regev et al., 2001]: Able to model independent system components, which can be composed to predict emergent system behaviour. Mathematical definition supports useful analysis techniques: type systems, behavioural equivalences, model checking. Mathematical syntax and semantics can limit accessibility to a wider audience: Useful to present an alternative graphical view Particularly welcomed by experimental systems biologists. Andrew Phillips - Bioconcur 2005 1

Stochastic pi-calculus Outline Graphical stochastic pi-calculus: Graphical syntax Graphical execution model Graphical biological examples: Evolved gene network [Francois and Hakim, 2004] Mapk signalling cascade [Huang and Ferrel, 1996] Automatic graph generation: Encoding pi-calculus to an open graph syntax Front end to a graphical simulator/debugger (ongoing) Andrew Phillips - Bioconcur 2005 2

The Stochastic Pi-Calculus (SPi) Each channel x is associated with a stochastic rate given by rate(x) π ::=?x( m) Input!x( n) Output τ r Delay P, Q ::= π 1.P 1 +... + π N.P N Choice P 1... P N Parallel νx P Restriction X( n) Instance Γ ::= X 1 ( m 1 ) P 1,..., X N ( m N ) P N Definitions, fn(p i ) m i Andrew Phillips - Bioconcur 2005 3

The SPiM Programming Language (v0.04) Dec ::= new x{@r}:t Channel Declaration type n = t Type Declaration val m = v Value Declaration run P Process Declaration let D 1 and... and D N Definitions, N 1 D ::= X(m 1,...,m N ) = P Definition, N 0 P ::= () Null Process (P 1... P M ) Parallel, M 2 X(v 1,...,v N ) Instantiation, N 0 π{; P } Action do π 1 {; P 1 } or... or π M {; P M } Choice, M 2 (Dec 1... Dec N P ) Declarations, N 0 π ::=!x {(v 1,...,v N )} Output, N 0?x {(m 1,...,m N )} Input, N 0 delay@r Delay Andrew Phillips - Bioconcur 2005 4

The Graphical Stochastic Pi-Calculus (GSPi) A normal form for SPi, with each summation or guarded process as a definition: π ::=?x( m) Input!x( n) Output τ r Delay P, Q ::= P 1... P N Parallel νx P Restriction X( n) Instance Γ ::= X( m) νx 1...νx M (π 1.X 1 ( n 1 ) +... + π N.X N ( n N )) Summation X( m) νx 1...νx M (X 1 ( n 1 )... X N ( n N )) Composition Andrew Phillips - Bioconcur 2005 5

Graphical Representation: Definitions A collection of mutually recursive definitions: X 1 (m 1 ) C 1,..., X N (m N ) C N Displayed as a directed graph with nodes X 1... X N and with edges between these nodes. Each definition X(m) C displayed as a node X with zero or more edges to subsequent nodes. Andrew Phillips - Bioconcur 2005 6

Graphical Representation: Definitions X( m) νx 1...νx M (π 1.X 1 ( n 1 ) +... + π N.X N ( n N )) X x1...xm {n1/m1} π X 1... π X N 1 N {nn/mn} X( m) νx 1...νx M (X 1 ( n 1 )... X N ( n N )) x1...xm {n1/m1} X... X 1 N {nn/mn} Andrew Phillips - Bioconcur 2005 7

Graphical Representation: Processes X( n) νx 1...νx M (P 1... P N ) P... P 1 N X {n/m} x1...xm Restriction as Complexation: A complex of P and Q modelled as a restriction νx (P Q) x P Q νx 1 νx 2 (P 1 P 2 P 3 ),x 1 fn(p 3 ), x 2 fn(p 1 ) x1 P P 2 x2 P 1 3 P x1 x2 1 P 2 P 3 Andrew Phillips - Bioconcur 2005 8

Reduction in SPi: Graphical Reduction: Execution Model!x( n).p + Σ?x( m).q + Σ Q P P P τ r.p + Σ r P P Q r P νx P r P Q Q rate(x) P Q { n/ m} (1) r P (2) r P Q (3) r νx P (4) r Q (5) Reduction in GSPi SPi: Proposition 1. P GSPi.P r P P GSPi.P P Andrew Phillips - Bioconcur 2005 9

Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M X Y X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 10

Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M X 1 Y 1 {n/m} X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 11

Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M X Y X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 12

Inline Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 13

Inline Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 14

Inline Graphical Reduction: Communication X Y π N!x(n)?x(m) π M...... X N X 1 Y 1 Y M {n/m} X( z)!x( n).x 1 ( z) +... + π N.X N ( z), Y?x( m).y 1 ( z) +... + π M.Y M ( z) X( z) Y ( z) rate(x) X 1 ( z) Y 1 ( z) { n/ m} Andrew Phillips - Bioconcur 2005 15

Inline Graphical Reduction: Delay X π N r... X N X 1 X( z) τ r.x 1 ( z) +... + π N.X N ( z) r X( z) X 1 ( z) Andrew Phillips - Bioconcur 2005 16

Inline Graphical Reduction: Delay X π N r... X N X 1 X( z) τ r.x 1 ( z) +... + π N.X N ( z) r X( z) X 1 ( z) Andrew Phillips - Bioconcur 2005 17

Inline Graphical Reduction: Delay X π N r... X N X 1 X( z) τ r.x 1 ( z) +... + π N.X N ( z) r X( z) X 1 ( z) Andrew Phillips - Bioconcur 2005 18

Graphical Representation: Benefits Static graphical representation used to: Clarify the connectivity between process definitions Highlight cycles, which are key to many biological systems. Dynamic graphical representation used to: Visualise the execution trace of a model Clarify the overall system function Graphically debug pi-calculus code. Andrew Phillips - Bioconcur 2005 19

Evolved Gene Network [Francois and Hakim, 2004] Gene networks are evolved in silico to perform specific functions, e.g.: A B A + B a A + b A b Genes a and b can produce proteins A and B respectively: A and B can bind irreversibly to produce AB, which eventually degrades. A can also bind reversibly to gene b, slowing the transcription of B. What is the function of this system? Andrew Phillips - Bioconcur 2005 20

Evolved Gene Network: Definitions a transcribea degradea!bind(u) A u A/B!inhibit(u)?u degradeab A/b?inhibit(u) b!u transcribeb b/a transcribeb B?bind(u) degradeb B/A a( z) A( z) Ab(u) AB(u) τ transcribea.(a() a()) νu (τ degradea +!bind(u).ab(u) +!inhibit(u).ab(u))?u.a() τ degradeab b( z) ba(u) B( z) τ transcribeb.(b() b()) +?inhibit(u).ba(u) τ transcribeb.(b() ba(u)) +!u.b() τ degradeb +?bind(u).ba(u) Andrew Phillips - Bioconcur 2005 21

Evolved Gene Network: SPiM Code let a() = delay@transcribea; ( A() a() ) and A() = ( new u@0.42:chan do delay@degradea or!bind; A B() or!inhibit(u); A b(u)) and A b(u:chan) =?u; A() and A B() = delay@degradeab let b() = do delay@transcribeb; ( B() b() ) or?inhibit(u); b A(u) and b A(u:chan) = do!u; b() or delay@transcribeb ; B(); b A(u) and B() = do delay@degradeb or?bind run (a() b()) Andrew Phillips - Bioconcur 2005 22

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A a b Initially there is one copy of each gene, a and b Andrew Phillips - Bioconcur 2005 23

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A Represent the behaviour of each gene as a separate graph Andrew Phillips - Bioconcur 2005 24

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A Gene a can transcribe a new protein A at rate transcribea Andrew Phillips - Bioconcur 2005 25

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab A/b A new protein A is transcribed Andrew Phillips - Bioconcur 2005 26

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab A/b Protein A can bind to gene b to inhibit production of protein B Andrew Phillips - Bioconcur 2005 27

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u) A u A/B u!inhibit(u)?u degradeab A/b Protein A is bound to gene b by the private channel u Andrew Phillips - Bioconcur 2005 28

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u) A u A/B u!inhibit(u)?u degradeab A/b Protein A can unbind from gene b using channel u Andrew Phillips - Bioconcur 2005 29

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab A/b Protein A is no longer bound to gene b Andrew Phillips - Bioconcur 2005 30

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab A/b Gene b can transcribe a new protein B with rate transcribeb Andrew Phillips - Bioconcur 2005 31

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u) A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A A new protein B is transcribed Andrew Phillips - Bioconcur 2005 32

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u) A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A Protein A can bind with protein B Andrew Phillips - Bioconcur 2005 33

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab u?bind(u) B degradeb A/b B/A Protein A and B are irreversibly bound Andrew Phillips - Bioconcur 2005 34

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A degradea!bind(u)!inhibit(u) A u?u A/B degradeab u?bind(u) B degradeb A/b B/A Complex AB can be degraded Andrew Phillips - Bioconcur 2005 35

Evolved Gene Network a?inhibit(u) transcribea b!u b/a degradea!bind(u) transcribeb transcribeb A u A/B B!inhibit(u)?u degradeab?bind(u) degradeb A/b B/A Complex AB has been degraded Andrew Phillips - Bioconcur 2005 36

Evolved Gene Network: Simulation Results Andrew Phillips - Bioconcur 2005 37

E1 (input) Mapk Cascade [Huang and Ferrel, 1996] KKK KKK* KK KK-P KK-PP K K-P K-PP (output) E2 KK-Pase K-Pase System originally described using a set of reaction equations Converted to ordinary differential equations, which were solved numerically Response curves shown to be steeply sigmoidal ( Hill 5). System functions as follows: The enzyme E1 drives the transformation from KKK to KKK* KKK* drives the transformation from KK to KK-P to KK-PP KK-PP drives the transformation from K to K-P to K-PP Andrew Phillips - Bioconcur 2005 38

Mapk Cascade: Equations Reaction Equation: Pi-calculus Processes: E + K d a E K k E + P E(a) νd νk!a(d, k).(?d.e(a) +?k.e(a)) K(a)?a(d, k).(.k(a) +.P ()) Graphical Representation:!a(d,k)?a(d,k) E d,k?d?k K P Andrew Phillips - Bioconcur 2005 39

Mapk Cascade: SPiM Code let E1() = ( new k1@rk1:chan new d1@rd1:chan!a1(d1,k1); do?d1;e1() or?k1;e1() ) let E2() = ( new k2@rk2:chan new d2@rd2:chan!a2(d2,k2); do?d2;e2() or?k2;e2() ) let KKK() =?a1(d,k); KKK E(d,k) and KKK E(d:chan,k:chan) = do ;KKK() or ;KKKst() and KKKst() = ( new d3@rd3:chan new k3@rk3:chan new d5@rd5:chan new k5@rk5:chan do?a2(k,d); KKK E(d,k) or!a3(d3,k3); (do?d3;kkkst() or?k3;kkkst()) or!a5(d5,k5); (do?d5;kkkst() or?k5;kkkst()) ) let KK() =?a3(d,k); KK E(d,k) and KK E(d:chan,k:chan) = do ;KK() or ;KK P() and KK P() = do?a4(k,d);kk E(d,k) or?a5(d,k);kk P E(d,k) and KK P E(d:chan,k:chan) = do ;KK P() or ;KK PP() and KK PP() = ( new d7@rd7:chan new k7@rk7:chan new d9@rd9:chan new k9@rk9:chan do?a6(k,d); KK P E(d,k) or!a7(d7,k7); (do?d7;kk PP() or?k7;kk PP()) or!a9(d9,k9); (do?d9;kk PP() or?k9;kk PP()) ) let K() =?a7(d,k); K E(d,k) and K E(d:chan,k:chan) = do ; K() or ; K P() and K P() = do?a8(k,d);k E(d,k) or?a9(d,k);k P E(d,k) and K P E(d:chan,k:chan) = do ;K P() or ;K PP() and K PP() =?a10(k,d); K P E(d,k) let KKPase() = ( new d4@rd4:chan new k4@rk4:chan new d6@rd6:chan new k6@rk6:chan do!a4(d4,k4); (do?d4;kkpase() or?k4;kkpase()) or!a6(d6,k6); (do?d6;kkpase() or?k6;kkpase()) ) let KPase() = ( new d8@rd8:chan new k8@rk8:chan new d10@rd10:chan new k10@rk10:chan do!a8(d8,k8); (do?d8;kpase() or?k8;kpase()) or!a10(d10,k10); (do?d10;kpase() or?k10;kpase()) ) run 100 of (KKK() KK() K()) run ( E2() KKPase() KPase() E1()) Andrew Phillips - Bioconcur 2005 40

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 Andrew Phillips - Bioconcur 2005 41

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 Enzyme E 1 can bind to substrate KKK using channel a 1 Andrew Phillips - Bioconcur 2005 42

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1!a2(d2,k2) E2 d2, k2?d2?k2?d5?a1(d,k)?k5!a5(d5,k5) KKK k=k1 KKKst d5,k5,d3,k3 d=d1!a3(d3,k3)?a2(k,d)?k3?d3 k1,d1?d9?a3(d,k)?a5(d,k)?k9!a9(d9,k9) KK KK_P KK_PP d9,k9,d7,k7!a7(d7,k7)?a4(k,d)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 E 1 is bound to KKK by private channels d 1 and k 1 Andrew Phillips - Bioconcur 2005 43

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1!a2(d2,k2) E2 d2, k2?d2?k2?d5?a1(d,k)?k5!a5(d5,k5) KKK k=k1 KKKst d5,k5,d3,k3 d=d1!a3(d3,k3)?a2(k,d)?k3?d3 k1,d1?d9?a3(d,k)?a5(d,k)?k9!a9(d9,k9) KK KK_P KK_PP d9,k9,d7,k7!a7(d7,k7)?a4(k,d)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 E 1 can react with KKK using channel k 1 Andrew Phillips - Bioconcur 2005 44

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK is transformed to KKK* Andrew Phillips - Bioconcur 2005 45

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* can bind with KK using channel a 3 Andrew Phillips - Bioconcur 2005 46

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1!a2(d2,k2) E2 d2, k2?d2?k2?a1(d,k) KKK KKKst KK?a3(d,k)?a2(k,d) k3,d3 k=k3 d=d3?a4(k,d)?d5?k5?k3?d3 KK_P!a5(d5,k5) d5,k5,d3,k3!a3(d3,k3)?a5(d,k)?a6(k,d) KK_PP?d9?k9!a9(d9,k9)!a7(d7,k7)?k7?d7 d9,k9,d7,k7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* is bound to KK by private channels d 3 and k 3 Andrew Phillips - Bioconcur 2005 47

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1!a2(d2,k2) E2 d2, k2?d2?k2?a1(d,k) KKK KKKst KK?a3(d,k)?a2(k,d) k3,d3 k=k3 d=d3?a4(k,d)?d5?k5?k3?d3 KK_P!a5(d5,k5) d5,k5,d3,k3!a3(d3,k3)?a5(d,k)?a6(k,d) KK_PP?d9?k9!a9(d9,k9)!a7(d7,k7)?k7?d7 d9,k9,d7,k7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* can react with KK using channel k 3 Andrew Phillips - Bioconcur 2005 48

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK is transformed to KK-P Andrew Phillips - Bioconcur 2005 49

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* can bind to KK-P using channel a 5 Andrew Phillips - Bioconcur 2005 50

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3 k5,d5!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) k=k5 d=d5?a6(k,d) KK_PP!a7(d7,k7)?k7?d7 d9,k9,d7,k7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* is bound to KK-P by channels d 5 and k 5 Andrew Phillips - Bioconcur 2005 51

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3 k5,d5!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) k=k5 d=d5?a6(k,d) KK_PP!a7(d7,k7)?k7?d7 d9,k9,d7,k7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KKK* can react with KK-P using channel k 5 Andrew Phillips - Bioconcur 2005 52

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-P is transformed to KK-PP Andrew Phillips - Bioconcur 2005 53

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP can bind to K using channel a 7 Andrew Phillips - Bioconcur 2005 54

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7 k7,d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K k=k7 d=d7?a8(k,d) K_P K_PP?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP is bound to K by channels d 7 and k 7 Andrew Phillips - Bioconcur 2005 55

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7 k7,d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K k=k7 d=d7?a8(k,d) K_P K_PP?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP can react with K using channel k 7 Andrew Phillips - Bioconcur 2005 56

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 K is transformed to KK-P Andrew Phillips - Bioconcur 2005 57

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP can bind to KK-P using channel a 9 Andrew Phillips - Bioconcur 2005 58

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7 k9,d9!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P k=k9 K_PP d=d9?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP is bound to KK-P by channels d 9 and k 9 Andrew Phillips - Bioconcur 2005 59

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7 k9,d9!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P k=k9 K_PP d=d9?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 KK-PP can react with K-P using channel k 9 Andrew Phillips - Bioconcur 2005 60

Mapk Cascade!a1(d1,k1) E1 d1, k1?d1?k1?d5?a1(d,k)?k5!a5(d5,k5) KKK KKKst d5,k5,d3,k3!a3(d3,k3)?a2(k,d)?k3?d3!a2(d2,k2)?a3(d,k)?a5(d,k)?d9?k9!a9(d9,k9) E2 d2, k2?d2?k2 KK KK_P?a4(k,d) KK_PP d9,k9,d7,k7!a7(d7,k7)?a6(k,d)?k7?d7!a4(d4,k4)!a6(d6,k6)?a7(d,k)?a9(d,k)!a8(d8,k8)!a10(d10,k10)?d4?k4 KKPase d4,k4, d6,k6?d6?k6 K K_P K_PP?a8(k,d)?a10(k,d)?d8 KPase?k8 d8,k8, d10,k10?d10?k10 K-P is transformed to K-PP, completing the cascade Andrew Phillips - Bioconcur 2005 61

Mapk Cascade: Results Andrew Phillips - Bioconcur 2005 62

Open Graph Syntax (DOT) G ::= I[label] Labelled node with id I I label label J Labelled edge from node I to node J G; G Sequence of graph declarations Andrew Phillips - Bioconcur 2005 63

Graph Generation Proposition 2. Γ.Γ GSPi Γ ( Γ ) I DOT ( ) I ( X( m) C, Γ ) I ( C ) X ; ( Γ ) I ( νx 1... νx N C ) I I[x 1,..., x N ]; ( C ) I X( m) C ( X( n) ) I I { n/ m} X X( m) C ( X( n) Π ) I I { n/ m} X; ( Π ) I ( 0 ) I X( m) C ( π.x( n) + Σ ) I I π { n/ m} X; ( Σ ) I Andrew Phillips - Bioconcur 2005 64

Generated Graphs: Evolved Network Andrew Phillips - Bioconcur 2005 65

Generated Graph: Mapk Cascade Andrew Phillips - Bioconcur 2005 66

Related Work Statecharts [Harel, 1987] highlighted the need for a scalable, self-contained graphical representation of concurrent systems. Synchronous variant to Statecharts allows concurrent processes to synchronise on shared labels [Andre, 1995]. Foundational graphical representations for pi-calculus use elaborate graph rewriting rules [Milner, 1994]. More recently, HDA [Montanari and Pistore, 2005] describes an automatabased representation for the pi-calculus. Preliminary informal ideas on a graphical representation for the stochastic pi-calculus in [Phillips and Cardelli, 2004]. Andrew Phillips - Bioconcur 2005 67

Conclusion Presented a graphical representation for the stochastic pi-calculus. Used to model a Mapk signalling cascade and an evolved gene network. Highlights the existence of cycles, which are key to many biological systems. Able to animate interactions between biological system components. Able to clarify the overall system function and to debug changes in the system. Andrew Phillips - Bioconcur 2005 68

Future Work Observation: within a collection of mutually recursive definitions, applied arguments often the same as the formal parameters. Investigate additional design patterns to improve modelling and visualisation techniques. Use graph generation tool to implement a graphical debugger for SPiM. Develop a tool for drawing graphical models, which automatically generates SPiM code. Make modelling and simulation of biological systems more accessible to non computer scientists. Andrew Phillips - Bioconcur 2005 69

References [Andre, 1995] Andre, C. (1995). Synccharts: A visual representation of reactive behaviors. research report tr95-52, University of Nice, Sophia Antipolis. [Francois and Hakim, 2004] Francois, P. and Hakim, V. (2004). Design of genetic networks with specified functions by evolution in silico. volume 101, pages 580 585. [Harel, 1987] Harel, D. (1987). Statecharts : A Visual Formalism for Complex Systems. Sci. Comput. Prog., 8:231 274. [Huang and Ferrel, 1996] Huang, C.-Y. F. and Ferrel, J. E. (1996). Ultrasensitivity of the mitogen-activated protein cascade. volume 93, pages 10078 10083. [Lecca and Priami, 2003] Lecca, P. and Priami, C. (2003). Cell cycle control in eukaryotes: a biospi model. In BioConcur 03. ENTCS. Andrew Phillips - Bioconcur 2005 70

[Milner, 1994] Milner, R. (1994). Pi-nets: A graphical form of π-calculus. In ESOP 94, pages 26 42. [Montanari and Pistore, 2005] Montanari, U. and Pistore, M. (2005). Historydependent automata: An introduction. volume 3465. [Phillips and Cardelli, 2004] Phillips, A. and Cardelli, L. (2004). A correct abstract machine for the stochastic pi-calculus. In Bioconcur 04. ENTCS. [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. In press. [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, Andrew Phillips - Bioconcur 2005 71

Pacific Symposium on Biocomputing, volume 6, pages 459 470, Singapore. World Scientific Press. Andrew Phillips - Bioconcur 2005 72