A BIONETGEN Tutorial. Outline Downloading BNG Installing BNG Running BNG – text-based interface...

Post on 21-Dec-2015

223 views 4 download

Tags:

Transcript of A BIONETGEN Tutorial. Outline Downloading BNG Installing BNG Running BNG – text-based interface...

A BIONETGEN Tutorial

Outline

• Downloading BNG• Installing BNG• Running BNG

– text-based interface– graphical interface – RULEBUILDER– web-based interface – GETBONNIE

• Simple example• Extending the example• Detailed model of TLR4 signaling

Creating a BNG model6. Create a BioNetGen model (with .bngl extension) in a text file using your favorite editor.

Running BNG7. Open a terminal window, navigate to the file location, and type path to BNG2.pl followed by filename.

The BNG logfile8. (optional) Piping output to a logfile.

~/BioNetGen2/Perl2/BNG2.pl example1.bngl > & example1.log

BioNetGen version 2.0.48readFile::Reading from file example1.bnglRead 11 parameters.Read 3 species.Adding P as allowed state of component Y of molecule RRead 3 observable(s).Read 5 reaction rule(s).Iteration 0: 3 species 0 rxns 0.00e+00 CPU sIteration 1: 4 species 1 rxns 1.00e-02 CPU sIteration 2: 5 species 3 rxns 0.00e+00 CPU sIteration 3: 6 species 5 rxns 1.00e-02 CPU sIteration 4: 9 species 9 rxns 1.00e-02 CPU sIteration 5: 12 species 20 rxns 3.00e-02 CPU sIteration 6: 14 species 32 rxns 3.00e-02 CPU sIteration 7: 14 species 36 rxns 2.00e-02 CPU sCumulative CPU time for each ruleRule 1: 6 reactions 3.00e-02 CPU s 5.00e-03 CPU s/rxnRule 2: 12 reactions 5.00e-02 CPU s 4.17e-03 CPU s/rxnRule 3: 3 reactions 0.00e+00 CPU s 0.00e+00 CPU s/rxnRule 4: 5 reactions 2.00e-02 CPU s 4.00e-03 CPU s/rxnRule 5: 10 reactions 1.00e-02 CPU s 1.00e-03 CPU s/rxnTotal : 36 reactions 1.10e-01 CPU s 3.06e-03 CPU s/rxnWrote network to example1.net.CPU TIME: generate_network 0.1 s.Network simulation using ODEsRunning run_network on phoebe

Overview of inputs and outputs

BIONETGENODE

NETWORK

SSA

.net

.gdat

.cdat

BNGL

.log

Elements of a BNGL file

• parameters• molecule types• seed species• reaction rules• observables• actions

A simple example:Ligand-receptor binding

EGF

EGFR

VVo

A simple example:parameters

EGF

EGFR

VVo

begin parameters # Physical and geometric constants

NA 6.0e23 #Avogadro’s num f 1 #scaling factor Vo f*1e-10 # L V f*3e-12 # L # Initial concentrations EGF0 2e-9*NA*Vo #nM EGFR0 f*1.8e5 #copy per cell

# Rate constants kp1 9.0e7/(NA*Vo) #input /M/sec km1 0.06 #/sec end parameters

A simple example:parameters

EGF

EGFR

VVo

Summary

Concentration units : copies per cell• Multiply concentrations by NA*Vrxn

• Don’t scale first order rate constants• Divide second order rate constants by NA*Vrxn

Following this recipe allows switching between ODE and stochastic simulation without parameter modification.

A simple example:molecule types

EGF

EGFR

begin molecule types

EGF(R) EGFR(L,CR1,Y1068~U~P)

end molecule types

R

L

CR1

Y1068 UP

A simple example:seed species

EGF

EGFR

begin seed species

EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0

end seed species

R

L

CR1

Y1068~U

EGF

EGFR

Pattern basicsBasic Definition: A set of molecules that may be partially specified and selects a set of species through its allowed mappings.

Basic Definition: A set of molecules that may be partially specified and selects a set of species through its allowed mappings.

EGF(R)Pattern

Species

Mapping

EGF(R)

EGFR(L)

EGFR(L,CR1,Y1068~U) EGFR(L,CR1,Y1068~P)

A simple example:reaction rules

EGF

begin reaction rules

EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1

end reaction rules

EGF

EGFR

+EGFEGF

EGFR

k+1

k-1

A simple example:actions

begin parameters …end parameters

begin molecule types EGF(R) EGFR(L,CR1,Y1068~U~P)end molecule types

begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1end reaction rules

# actionsgenerate_network({overwrite=>1});

Generates network of species and reactions by iterative application of rules starting with seed species

A simple example:Application of the forward binding rule

EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Step 1: Match patterns onto reactant species.Step 2: Copy selected species to product side.Step 3: Apply transformation specified by rule.

Add bond

Reaction rule

A simple example:Application of the forward binding rule

EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Step 1: Match patterns onto reactant species.

Add bond

Reaction rule

EGF(R) EGFR(L,CR1,Y1068~U) +

A simple example:Application of the forward binding rule

EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Step 1: Match patterns onto reactant species.

Add bond

Reaction rule

EGF(R) EGFR(L,CR1,Y1068~U) +

Step 2: Copy selected species to product side.

-> EGF(R) + EGFR(L,CR1,Y1068~U)

A simple example:Application of the forward binding rule

EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Step 1: Match patterns onto reactant species.

Add bond

Reaction rule

EGF(R) EGFR(L,CR1,Y1068~U) +

Step 2: Copy selected species to product side.

-> EGF(R) + EGFR(L,CR1,Y1068~U)

Step 3: Apply transformation specified by rule.

-> EGF(R!1).EGFR(L!1,CR1,Y1068~U) kp1

New species

A simple example:Application of the forward binding rule

EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Add bond

Reaction rule

EGF(R) EGFR(L,CR1,Y1068~U) +

-> EGF(R!1).EGFR(L!1,CR1,Y1068~U) kp1

New species

New reaction

A simple example:Application of the reverse binding rule

EGF(R!1).EGFR(L!1) -> EGF(R) + EGFR(L) km1

Reaction rule

Delete bond

EGF(R!1).EGFR(L!1,CR1,Y1068~U)

A simple example:Application of the reverse binding rule

EGF(R!1).EGFR(L!1) -> EGF(R) + EGFR(L) km1

Reaction rule

Delete bond

EGF(R!1).EGFR(L!1,CR1,Y1068~U)

-> EGF(R!1).EGFR(L!1,CR1,Y1068~U)

A simple example:Application of the reverse binding rule

EGF(R!1).EGFR(L!1) -> EGF(R) + EGFR(L) km1

Reaction rule

Delete bond

EGF(R!1).EGFR(L!1,CR1,Y1068~U)

-> EGF(R) + EGFR(L,CR1,Y1068~U) km1

New reaction2

A simple example: Overview of generate_network

seed species EGF(R) EGFR(L,CR1,Y1068~U)

rule1f: EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Iteration 1:

A simple example: Overview of generate_network

seed species EGF(R) EGFR(L,CR1,Y1068~U)

rule1f: EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Iteration 1:

new reaction: EGF(R) + EGFR(L,CR1,Y1068~U) -> EGF(R!1).EGFR(L!1,CR1,Y1068~U) kp1

new species: EGF(R!1).EGFR(L!1,CR1,Y1068~U)

A simple example: Overview of generate_network

seed species EGF(R) EGFR(L,CR1,Y1068~U)

rule1f: EGF(R) + EGFR(L) -> EGF(R!1).EGFR(L!1) kp1

Iteration 1:

new reaction: EGF(R) + EGFR(L,CR1,Y1068~U) -> EGF(R!1).EGFR(L!1,CR1,Y1068~U) kp1

new species: EGF(R!1).EGFR(L!1,CR1,Y1068~U)

Network after Iteration 1species 1 EGF(R) 2 EGFR(L,CR1,Y1068~U) 3 EGF(R!1).EGFR(L!1,CR1,Y1068~U)

reactions 1 1,2 3 kp1

A simple example: Overview of generate_network

Iteration 2:

species 1 EGF(R) 2 EGFR(L,CR1,Y1068~U) 3 EGF(R!1).EGFR(L!1,CR1,Y1068~U)

From iteration 1

rule1r: EGF(R!1).EGFR(L!1) -> EGF(R) + EGFR(L) km1

new reaction: EGF(R!1).EGFR(L!1,CR1,Y1068~U) -> EGF(R) + EGFR(L,CR1,Y1068~U) km1

Network after Iteration 2species 1 EGF(R) 2 EGFR(L,CR1,Y1068~U) 3 EGF(R!1).EGFR(L!1,CR1,Y1068~U)

reactions 1 1,2 3 kp1 # rule1f 2 3 1,2 km1 # rule1r

A simple example: Overview of generate_network

Iteration 2:

species 1 EGF(R) 2 EGFR(L,CR1,Y1068~U) 3 EGF(R!1).EGFR(L!1,CR1,Y1068~U)

From iteration 1

rule1r: EGF(R!1).EGFR(L!1) -> EGF(R) + EGFR(L) km1

new reaction: EGF(R!1).EGFR(L!1,CR1,Y1068~U) -> EGF(R) + EGFR(L,CR1,Y1068~U) km1

Network after Iteration 2 - finalspecies 1 EGF(R) 2 EGFR(L,CR1,Y1068~U) 3 EGF(R!1).EGFR(L!1,CR1,Y1068~U)

reactions 1 1,2 3 kp1 # rule1f 2 3 1,2 km1 # rule1r

A simple example: Running BNG2.pl

BNG2.pl .netBNGL

.log

generate_network

A simple example: Running BNG2.pl

phoebe% ~/BioNetGen2/Perl2/BNG2.pl SimpleExample.bngl /Users/faeder/BioNetGen2/Perl2/BNG2.plBioNetGen version 2.0.48readFile::Reading from file SimpleExample.bnglRead 8 parameters.Read 2 molecule types.Read 2 species.Read 1 reaction rule(s).WARNING: Removing old network file SimpleExample.net.Iteration 0: 2 species 0 rxns 0.00e+00 CPU sIteration 1: 3 species 1 rxns 0.00e+00 CPU sIteration 2: 3 species 2 rxns 0.00e+00 CPU sCumulative CPU time for each ruleRule 1: 2 reactions 0.00e+00 CPU s 0.00e+00 CPU s/rxnTotal : 2 reactions 0.00e+00 CPU s 0.00e+00 CPU s/rxnWrote network to SimpleExample.net.

A simple example:The .net file

begin molecule types 1 EGF(R) 2 EGFR(L,CR1,Y1068~U~P)end molecule types begin species 1 EGF(R) EGF0 2 EGFR(CR1,L,Y1068~U) EGFR0 3 EGF(R!1).EGFR(CR1,L!1,Y1068~U) 0end speciesbegin reaction rulesRule1: \ EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1# Bind(0.0.0,0.1.0)# Reverse# Unbind(0.0.0,0.1.0)end reaction rulesbegin reactions 1 1,2 3 kp1 #Rule1 2 3 1,2 km1 #Rule1rend reactions SimpleExample.net

The .net file

Translation of the network model into ordinary differential equations

species 1 EGF(R) EGF0 2 EGFR(CR1,L,Y1068~U) EGFR0 3 EGF(R!1).EGFR(CR1,L!1,Y1068~U) 0

reactions 1 1,2 3 kp1 #Rule1 2 3 1,2 km1 #Rule1r

Dependent variablesDependent variables

Flux termsFlux terms

f1 f2

Exporting the model

BNG2.pl .netBNGL

.log

generate_network

writeformat

Exporting model equations to Matlab:writeMfile

begin parameters …end parameters

begin molecule types EGF(R) EGFR(L,CR1,Y1068~U~P)end molecule types

begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1end reaction rules

# actionsgenerate_network({overwrite=>1});

writeMfile();

Ordinary differential equations in the M-file

% M-file for model SimpleExample created by BioNetGen 2.0.48function [t_out,obs_out,x_out]= SimpleExample(tend)

Nspecies=3;Nreactions=2;obs_out=zeros(1);% ParametersNA=6.0e23;f=1;Vo=f*1e-10;V=f*3e-12;EGF0=(2e-9*NA)*Vo;EGFR0=f*1.8e5;kp1=3.0e6/(NA*V);km1=0.06;

% Intial concentrationsx0= [ EGF0; EGFR0; 0;];

% Reaction flux functionfunction f= flux(t,x) f(1)=kp1*x(1)*x(2); f(2)=km1*x(3);end% Derivative functionfunction d= xdot(t,x) f=flux(t,x); d(1,1)= -f(1) +f(2); d(2,1)= -f(1) +f(2); d(3,1)= +f(1) -f(2);endsnames={'EGF(R)','EGFR(CR1,L,Y1068~U)','EGF(R!1).EGFR(CR1,L!1,Y1068~U)'};

% Integrate ODEs[t_out,x_out]= ode15s(@xdot, [0 tend], x0);% plot species concentrationsplot(t_out,x_out);legend(snames);end

SimpleExample.m

Running exported model as a Matlab function

>> SimpleExample(120)

Export to the Systems Biology Markup Language (SBML)

• SBML is an XML specification for biological models

• Many simulation tools read and write SBML• Supports standard reaction network models• generate_network must be invoked prior to

export• Support for rule-based models will appear in

Level 3 (current level is 2+)• Website: http://sbml.org

Running the simulation within BioNetGen

BNG2.plODE

NETWORK

SSA

.net

.gdat

.cdat

BNGL

.log

generate_networksimulate_ode

simulate_ssa

Running the simulation within BioNetGen

begin parameters …end parameters

begin molecule types EGF(R) EGFR(L,CR1,Y1068~U~P)end molecule types

begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1end reaction rules

# actionsgenerate_network({overwrite=>1});saveConcentrations();

simulate_ode({suffix=>ode,t_end=>120,n_steps=>50});

Running the simulation within BioNetGen

begin parameters …end parameters

begin molecule types EGF(R) EGFR(L,CR1,Y1068~U~P)end molecule types

begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1end reaction rules

# actionsgenerate_network({overwrite=>1});saveConcentrations();

simulate_ode({suffix=>ode,t_end=>120,n_steps=>50});

BNG, like many other systems biology applications, uses the CVODE library for solving ODE’s.

Sparse option can be used to solve systems up to about 50,000 equations.

BNG, like many other systems biology applications, uses the CVODE library for solving ODE’s.

Sparse option can be used to solve systems up to about 50,000 equations.

The .cdat file

# time 1 2 3 0.0000000000000000e+00 1.2000000000000000e+05 1.8000000000000000e+05 0.0000000000000000e+00 2.3999999999999999e+00 6.9387285118773594e+04 1.2938728511877365e+05 5.0612714881226493e+04 4.7999999999999998e+00 5.0363939566816996e+04 1.1036393956681706e+05 6.9636060433183069e+04 7.1999999999999993e+00 4.1819631802026437e+04 1.0181963180202652e+05 7.8180368197973614e+04

# time 1 2 3 0.0000000000000000e+00 1.2000000000000000e+05 1.8000000000000000e+05 0.0000000000000000e+00 2.3999999999999999e+00 6.9387285118773594e+04 1.2938728511877365e+05 5.0612714881226493e+04 4.7999999999999998e+00 5.0363939566816996e+04 1.1036393956681706e+05 6.9636060433183069e+04 7.1999999999999993e+00 4.1819631802026437e+04 1.0181963180202652e+05 7.8180368197973614e+04

SimpleExample_ode.cdat

Your favorite plotting package

Some useful options• PhiBPlot – Java-based (JFreeChart) plotting utility provided with BNG• xmgrace – Unix / X windows graphing package great for XY plots• Matlab, Mathematica, gnuplot, Excel, etc.

The .cdat file in PhiBPlot

The .cdat file in PhiBPlot

These numbers correspond to indices of species in .net file

These numbers correspond to indices of species in .net file

The .cdat file in PhiBPlot

These numbers correspond to indices of species in .net file

These numbers correspond to indices of species in .net file

begin species 1 EGF(R) EGF0 2 EGFR(CR1,L,Y1068~U) EGFR0 3 EGF(R!1).EGFR(CR1,L!1,Y1068~U) 0end species

Stochastic simulations in BioNetGen

• Network simulation engine uses Gillespie Direct method

• Adequate performance for networks with up to ~50,000 species.

• May be used in ‘on-the-fly’ mode, which generates species and reactions as needed

Stochastic simulations in BioNetGen

• Network simulation engine uses Gillespie Direct method

• Adequate performance for networks with up to ~50,000 species.

• May be used in ‘on-the-fly’ mode, which generates species and reactions as needed

Comparison between ODE and stochastic simulations

begin parameters …end parameters

begin molecule types EGF(R) EGFR(L,CR1,Y1068~U~P)end molecule types

begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1end reaction rules

# actionsgenerate_network({overwrite=>1});saveConcentrations();simulate_ode({suffix=>ode,t_end=>120,n_steps=>50});resetConcentrations();simulate_ssa({suffix=>ssa,t_end=>120,n_steps=>50});

Viewing comparison in PhiBPlot

Viewing comparison in PhiBPlot

Viewing comparison in PhiBPlot

Noise is minimal because species concentrations are high.

Noise is minimal because species concentrations are high.

Viewing comparison in PhiBPlot

begin parameters # Physical and geometric constants

NA 6.0e23 #Avogadro’s num f 1 #scaling factor Vo f*1e-10 # L V f*3e-12 # L

Viewing comparison in PhiBPlot

begin parameters # Physical and geometric constants

NA 6.0e23 #Avogadro’s num f 0.001 #scaling factor Vo f*1e-10 # L V f*3e-12 # L

Viewing comparison in PhiBPlot

Let’s add another rule: dimerization

EGF

EGFR

k+2

k-2

+

Let’s add another rule: dimerization

EGF

EGFR

k+2

k-2

+

EGF(R!2).EGFR(L!2,CR1) + EGFR(L!3,CR1).EGF(R!3) Selects EGFR with free dimerization domain (CR1) and bound ligand-binding domain (L). Selects EGFR with free dimerization domain (CR1) and bound ligand-binding domain (L).

Let’s add another rule: dimerization

EGF

EGFR

k+2

k-2

+

EGF(R!2).EGFR(L!2,CR1) + EGFR(L!3,CR1).EGF(R!3)

A shorthand way to select the same properties uses the bond wildcard (‘!+’) and omits the EGF binding partner. A shorthand way to select the same properties uses the bond wildcard (‘!+’) and omits the EGF binding partner.

EGFR(L!+,CR1) + EGFR(L!+,CR1)

These patterns select EGFR molecules with free CR1 sites and their L sites bound to anything. These patterns select EGFR molecules with free CR1 sites and their L sites bound to anything.

Let’s add another rule: dimerization

EGF

EGFR

k+2

k-2

+

EGFR(L!+,CR1) + EGFR(L!+,CR1) <-> EGFR(L!+,CR1!1).EGFR(L!+,CR1!1) \ kp2,km2

Full ruleFull rule

Let’s add another rule: dimerization

EGF

EGFR

k+2

k-2

+

EGFR(L!+,CR1) + EGFR(L!+,CR1) <-> EGFR(L!+,CR1!1).EGFR(L!+,CR1!1) \ kp2,km2

Full ruleFull rule

Need to add kp2 and km2 to parameters block.Need to add kp2 and km2 to parameters block.

Application of the dimerization rule

EGFR(L!+,CR1) + EGFR(L!+,CR1)

EGFR(L!1,CR1,Y1068~U).EGF(R!1)

EGFR(L!1,CR1,Y1068~U).EGF(R!1)

add bond

EGF(R!1).EGFR(L!1,CR1!3,Y1068~U).EGFR(L!2,CR1!3,Y1068~U).EGF(R!2)

species 4

reactions … 3 3,3 4 0.5*kp2

New reaction

Application of the dimerization rule

EGFR(L!+,CR1) + EGFR(L!+,CR1)

EGFR(L!1,CR1,Y1068~U).EGF(R!1)

EGFR(L!1,CR1,Y1068~U).EGF(R!1)

add bond

EGF(R!1).EGFR(L!1,CR1!3,Y1068~U).EGFR(L!2,CR1!3,Y1068~U).EGF(R!2)

species 4

reactions … 3 3,3 4 0.5*kp2

New reactionSymmetry factor

An unexpected result…begin seed species EGF(R) EGF0 EGFR(L,CR1,Y1068~U) EGFR0end seed species

begin reaction rules EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1 EGFR(L!+,CR1) + EGFR(L!+,CR1) <-> \ EGFR(L!+,CR1!1).EGFR(L!+,CR1!1) kp2, km2end reaction rules

generate_network({overwrite=>1});

…Iteration 0: 2 species 0 rxns 0.00e+00 CPU sIteration 1: 3 species 1 rxns 0.00e+00 CPU sIteration 2: 4 species 3 rxns 0.00e+00 CPU sIteration 3: 5 species 5 rxns 1.00e-02 CPU sIteration 4: 6 species 7 rxns 1.00e-02 CPU sIteration 5: 6 species 8 rxns 0.00e+00 CPU s…

.bngl file

logfileExpect network generation to stop here! (+ one more rxn)

Expect network generation to stop here! (+ one more rxn)

Checking species in the .net filebegin species 1 EGF(R) EGF0 2 EGFR(CR1,L,Y1068~U) EGFR0 3 EGF(R!1).EGFR(CR1,L!1,Y1068~U) 0 4 EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U) 0 5 EGF(R!1).EGFR(CR1!2,L!1,Y1068~U).EGFR(CR1!2,L,Y1068~U) 0 6 EGFR(CR1!1,L,Y1068~U).EGFR(CR1!1,L,Y1068~U) 0end species

Dimers with 0 or 1 EGF molecule arise because EGF is allowed to dissociate whether or not EGFR is dimerized.Dimers with 0 or 1 EGF molecule arise because EGF is allowed to dissociate whether or not EGFR is dimerized.

EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1

state of CR1 domain is not specifiedstate of CR1 domain is not specified

Checking species in the .net filebegin species 1 EGF(R) EGF0 2 EGFR(CR1,L,Y1068~U) EGFR0 3 EGF(R!1).EGFR(CR1,L!1,Y1068~U) 0 4 EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U) 0 5 EGF(R!1).EGFR(CR1!2,L!1,Y1068~U).EGFR(CR1!2,L,Y1068~U) 0 6 EGFR(CR1!1,L,Y1068~U).EGFR(CR1!1,L,Y1068~U) 0end species

Dimers with 0 or 1 EGF molecule arise because EGF is allowed to dissociate whether or not EGFR is dimerized.Dimers with 0 or 1 EGF molecule arise because EGF is allowed to dissociate whether or not EGFR is dimerized.

EGF(R) + EGFR(L) <-> EGF(R!1).EGFR(L!1) kp1, km1

state of CR1 domain is not specifiedstate of CR1 domain is not specified

“Expected” behavior can be recovered by modifying the rule:“Expected” behavior can be recovered by modifying the rule:

EGF(R) + EGFR(L,CR1) <-> EGF(R!1).EGFR(L!1,CR1) kp1, km1

Only EGFR with free CR1 will bind and release ligand.Only EGFR with free CR1 will bind and release ligand.

Creating an observable: Receptors in dimers

Like rules, Observables select species based on pattern matching.

The concentrations of the matching species are stored in a variable with a specified name, computed by summing the concentrations of matching species.

EGFR(CR1!+)

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U)

matches receptors in dimers

begin observables Molecules Rdim EGFR(CR1!+)end observables

Creating an observable: Receptors in dimers

Like rules, Observables select species based on pattern matching.

EGFR(CR1!+)

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U)

matches receptors in dimers

begin observables Molecules Rdim EGFR(CR1!+)end observables

generate_network

begin groups 1 Rdim 2*4end groups

number of matches

species index.net file

The .gdat file

# time Rdim 0.00000000e+00 0.00000000e+00 2.40000000e+00 1.32882737e+00 4.80000000e+00 5.16753986e+00…

# time Rdim 0.00000000e+00 0.00000000e+00 2.40000000e+00 1.32882737e+00 4.80000000e+00 5.16753986e+00…

The .gdat file

Rdim

Dimers (Species 4)

2x

A state change:Transphosphorylation

P

Kinase domain in cytoplasmic tail of dimerized receptor phosphorylates tyrosines of trans receptor.

EGFR(CR1!+,Y1068~U) -> EGFR(CR1!+,Y1068~P) kp3

State change

A state change:Transphosphorylation

P

Kinase domain in cytoplasmic tail of dimerized receptor phosphorylates tyrosines of trans receptor.

EGFR(CR1!+,Y1068~U) -> EGFR(CR1!+,Y1068~P) kp3

State change

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U)

Because of symmetry, produce two copies of same reaction.

Reaction multiplicity

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U)

Transphosphorylation rule generates

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~P).EGFR(CR1!3,L!2,Y1068~U)

Species 4

Species 5

kp3

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~U)

EGF(R!1).EGF(R!2).EGFR(CR1!3,L!1,Y1068~U).EGFR(CR1!3,L!2,Y1068~P)

Species 4

Species 5

kp3

and

which are combined into

reactions … 5 4 5 2*kp3 #Rule3

Dephosphorylation

P

Phosphatase excess gives rise to first order dephosphorylation process.

EGFR(Y1068~P) -> EGFR(Y1068~U) km3

U

Note the convention that a component without a specified bonding state is required to be unbound.

Dephosphorylation can occur only if the site is unbound.

Binding of another protein to the site protects it from dephosphorylation.

Monitoring site phosphorylation

observables Molecules RP EGFR(Y1068~P!?)

selects site in state ‘P’

wildcard allows site to be bound or unbound

Correct way to specify observable for receptor phosphorylation

Monitoring site phosphorylation

observables Molecules RP EGFR(Y1068~P!?)

Correct way to specify observable for receptor phosphorylation

Incorrect way to specify observable for receptor phosphorylation

observables Molecules RP EGFR(Y1068~P)

Only monitors sites that are phosphorylated and unbound

Adapter and effector binding

P

EGFRGrb2

Sos1

cytosolic proteins recruited to the membrane by receptor phosphorylation

Additional rules 5 EGFR(Y1068~P) + Grb2(SH2) <-> EGFR(Y1068~P!1).Grb2(SH2!1) kp4,km4

6 Grb2(SH3) + Sos1(PxxP) <-> Grb2(SH3!1).Sos1(PxxP!1) kp5,km5

56

Observable

Molecules Sos1_act Sos1(PxxP!+) Selects Sos1 bound to the membraneSelects Sos1 bound to the membrane

Adapter and effector binding

P

EGFRGrb2

Sos1

cytosolic proteins recruited to the membrane by receptor phosphorylation

Additional rules 5 EGFR(Y1068~P) + Grb2(SH2) <-> EGFR(Y1068~P!1).Grb2(SH2!1) kp4,km4

6 Grb2(SH3) + Sos1(PxxP) <-> Grb2(SH3!1).Sos1(PxxP!1) kp5,km5

56

Observable

Molecules Sos1_act Sos1(PxxP!+) Selects Sos1 bound to the membrane - WRONG!!Selects Sos1 bound to the membrane - WRONG!!

Adapter and effector binding

P

EGFRGrb2

Sos1

cytosolic proteins recruited to the membrane by receptor phosphorylation

Additional rules 5 EGFR(Y1068~P) + Grb2(SH2) <-> EGFR(Y1068~P!1).Grb2(SH2!1) kp4,km4

6 Grb2(SH3) + Sos1(PxxP) <-> Grb2(SH3!1).Sos1(PxxP!1) kp5,km5

56

Observable

Molecules Sos1_act Sos1(PxxP!1).Grb2(SH3!1,SH2!2).EGFR(Y1068!2)

Correct observable traces connectivity to membrane bound moleculeCorrect observable traces connectivity to membrane bound molecule

A degradation reaction

begin molecule types … Null()… begin seed species … $Null

Simple receptor degradation

begin reaction rules … EGFR() -> Null kdeg

Deletes any species containing EGFR molecule, including any attached molecules.Deletes any species containing EGFR molecule, including any attached molecules.

A degradation reaction

begin molecule types … Null()… begin seed species … $Null

Selective degradation of ligand and receptor

begin reaction rules …

EGF(R!1).EGF(R!2).EGFR(L!1,CR1!3).EGFR(L!2,CR1!3) -> Trash() kdeg \ DeleteMolecules

This rule causes just the ligand-bound receptor dimer to be degraded, recycling any components that are bound to the cytoplasmic domains of the receptor.

This rule causes just the ligand-bound receptor dimer to be degraded, recycling any components that are bound to the cytoplasmic domains of the receptor.

Running the full model

P

Grb2

Sos1

56

EGFR

EGF

1 1’

2

3

U4

…Iteration 0: 5 species 0 rxns 0.00e+00 CPU sIteration 1: 7 species 2 rxns 0.00e+00 CPU sIteration 2: 8 species 5 rxns 1.00e-02 CPU sIteration 3: 9 species 8 rxns 1.00e-02 CPU sIteration 4: 13 species 14 rxns 2.00e-02 CPU sIteration 5: 18 species 35 rxns 6.00e-02 CPU sIteration 6: 23 species 66 rxns 9.00e-02 CPU sIteration 7: 23 species 86 rxns 9.00e-02 CPU s …

generate_network

Results

Equilibrating Grb2-Sos1 binding prior to ligand addition

Grb2

Sos1

6

Grb2-Sos1 interaction is constitutiveGrb2-Sos1 interaction is constitutive

Equilibrating Grb2-Sos1 binding prior to ligand addition

Grb2

Sos1

6

Grb2-Sos1 interaction is constitutiveGrb2-Sos1 interaction is constitutive

Combination of actions can be used to pre-equilibrate prior to ligand additionCombination of actions can be used to pre-equilibrate prior to ligand addition

setConcentration("EGF(R)",0);

simulate_ode({suffix=>equil,t_end=>10000,n_steps=>50, \ steady_state=>1,sparse=>1});

setConcentration("EGF(R)",EGF0);

Complete summary of actionsAction/parameter Type Description Default

generate_network Generate species and reactions through iterative application of rules to seed species

max_agg int Maximum number of molecules in one species 1e99

max_iter int Maximum number of iterations of rule application

100

max_stoich hash Maximum number of molecules of specified type in one species

-

overwrite 0/1 Overwrite existing .net file 0 (off)

print_iter 0/1 Print .net file after each iteration 0

prefixa string Set basenamec of .net file to string basename of .bngl file

suffixa string Append _string to basename of .net file -

simulate_ode / simulate_ssa Simulate current model/network

t_end float End time for simulation required

t_start float Start time for simulation 0

n_steps int Number of times after t=0 at which to report concentrations/observables

1

sample_times array Times at which to report concentrations/observables (supercedes t_end, n_steps)

-

netfile string Name of .net file used for simulation -

atolb float Absolute error tolerance for ODE’s 1e-8

rtolb float Relative error tolerance for ODE’s 1e-8

steady_stateb 0/1 Perform steady state check on species concentrations

0

sparseb 0/1 Use sparse Jacobian / iterative solver (GMRES) in CVODE

0

readFile Read a .bngl or a .net file

file string Name of file to read required

writeNET / writeSBML / writeMfile Write current model/network in specified format

setConcentration(species,value) Set concentration of species to value.

setParameter(parameter,value) Set parameter to value.

saveConcentrations() Store current species concentrations.

resetConcentratons() Restore species concentrations to value at point of last saveConcentrations command.

see http://bionetgen.org for BioNetGen Chapter

Simulation results with and without equilibration

Higher initial level of Grb2-Sos1 complexHigher initial level of Grb2-Sos1 complex

No effect on Sos1 recruitmentNo effect on Sos1 recruitment

More topics

• Parameter scans• Alternate rate laws• Labels

– Fluorescent labeling– Carbon-fate maps

• Oligomerization– simulate_nf New

• Compartments• GETBONNIE

Detailed model of TLR4 signaling

• Main goals– Represent known players and interactions in

TLR4-mediated signaling– Does model qualitatively reproduce observed

tolerance in response to repeated stimulation (“preconditioning”)?

– Investigate molecular mechanisms leading to tolerance

G. An and J. Faeder, Math. Biosci., to appear.

Approach• Dynamic Knowledge Representation by non-

mathematician• Relatively Detailed Representation of Components • Mechanistic/causal emphasis• Known source and stimulus for production of

compound (particularly inhibitors)• Abstraction of complex molecular events if output

relatively straightforward• Model parameters (component numbers and reaction

rates) qualitatively set based on “realistic” levels

Detailed model of TLR4 signaling

Detailed model of TLR4 signaling

Rules governing assembly of hub complexes

Interactions are ordered to reduce combinatorial complexityInteractions are ordered to reduce combinatorial complexity

Interactions between TLR4-MAL-MyD88 Complex and TRAF6

Regulation of A20 expression

NFkB(Transcription~No,Activation~Yes,Location~Nucleus)+DNA(A20) \ <-> \ NFkB(Transcription~Yes!1,Activation~Yes,Location~Nucleus).DNA(A20!1)\ NFkB_DNA_A20_Bind,NFkB_DNA_A20_Unbind

Binding of NFkB in the nucleus to A20 promoter

A20mRNA(Translation~On) -> A20mRNA(Translation~Off) + A20(TRAF6) \ A20_Translation_Execute

Translation of A20

Degradation of A20A20(TRAF6)->Trash(c) A20_Degrade

DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) \ -> \DNA(A20!0).NFkB(Transcription~Yes!0,Activation~Yes,Location~Nucleus) \+ A20mRNA(Translation~On) \ A20_Transcription_Execute

Transcription of A20 gene

Generating the model/Users/faeder/shared/Projects/BioNetGen/Perl2/BNG2.plBioNetGen version 2.0.47+readFile::Reading from file TLR4_V15_PC.bnglRead 97 parameters.Read 31 molecule types.Read 19 species.Read 41 reaction rule(s).Read 19 observable(s).Iteration 0: 19 species 0 rxns 0.00e+00 CPU sIteration 1: 24 species 5 rxns 4.00e-02 CPU sIteration 2: 27 species 12 rxns 3.00e-02 CPU sIteration 3: 28 species 17 rxns 3.00e-02 CPU sIteration 4: 29 species 19 rxns 1.00e-02 CPU sIteration 5: 31 species 22 rxns 6.00e-02 CPU sIteration 6: 38 species 32 rxns 1.00e-01 CPU sIteration 7: 46 species 58 rxns 3.60e-01 CPU sIteration 8: 53 species 96 rxns 5.40e-01 CPU sIteration 9: 57 species 128 rxns 6.00e-01 CPU sIteration 10: 59 species 145 rxns 4.30e-01 CPU sIteration 11: 62 species 148 rxns 1.00e-02 CPU sIteration 12: 65 species 153 rxns 2.00e-02 CPU sIteration 13: 71 species 168 rxns 5.00e-02 CPU sIteration 14: 76 species 192 rxns 8.00e-02 CPU sIteration 15: 76 species 202 rxns 5.00e-02 CPU s

Dose-dependence of TNF-α response and tolerance

Initial Dose ResponseLPS at 10, 100, 1000, 10000

“Tolerance” ResponseLPS 10000 Redose at 27h

A20 responseInitial Dose ResponseLPS at 10, 100, 1000, 10000

“Tolerance” ResponseLPS 10000 Redose at 27h

A20 ‘memory’ is not mechanism for tolerance

Shutting off NFkB production requires IkB

TNF production is not attenuated in ‘IkB knockout’ even though A20 is produced

TNF production is not attenuated in ‘IkB knockout’ even though A20 is produced

Wild-type TNF production in response to LPS=10,000Wild-type TNF production in response to LPS=10,000

A20 knockout shows normal attenuation of response

Wild-type TNF production in response to LPS=10,000Wild-type TNF production in response to LPS=10,000 A20 knockoutA20 knockout