# The model consists of a monovalent extracellular ligand,
# a monovalent cell-surface receptor, a bivalent cytosolic adapter protein,
# and a cytosolic kinase. The receptor dimerizes through a
# receptor-receptor interaction that depends on ligand binding.
# The adapter binds the receptor and the kinase.
# When two kinases are juxtaposed through binding to
# receptor-associated adapter proteins, one of the kinases can
# transphosphorylate the second kinase.
begin model
begin parameters
NA 6.02214129e23 # Avogadro's number, per mole
V 1e-12 # simulation volume, liters
L0 100
R0 1000
A0 1000
K0 1000
kpL 0.1
kmL 0.1
# kpD and kmD were divided by two from their values in toy.in
# give the right symmetry factor.
kpD 1.0
kmD 0.1
kpA 0.1
kmA 0.1
kpK 0.1
kmK 0.1
pK 1
pKs 10
dM 1
dC 10
end parameters
begin seed species
# Set to zero for equilibration
L(r) L0
# r binds to l of R
R(l,r,a) R0
# l binds to r of L
# r binds to r of R
A(r,k) A0
# r binds to a of R
# k binds to a of K
K(a,Y~U) K0
# a binds to k of A
# Y is phosphorylation site that is either unphosphorylated (U) or
# phosphorylated (P)
Null 0
end seed species
begin reaction rules
# Ligand binding (L+R)
# Note: specifying r in R here means that the r component must not
# be bound. This prevents dissociation of ligand from R
# when R is in a dimer.
L(r) + R(l,r) <-> L(r!1).R(l!1,r) kpL, kmL
# Aggregation (R+R)
# Note: R must be bound to ligand to dimerize.
L(r!1).R(l!1,r) + L(r!1).R(l!1,r) <-> L(r!1).R(l!1,r!3).L(r!2).R(l!2,r!3) kpD,kmD
# Receptor binding to adaptor (R+A)
# Note: A and R can bind independent of whether A is bound to K or
# whether R is in a dimer.
A(r) + R(a) <-> A(r!1).R(a!1) kpA,kmA
# Adaptor binding kinase
# Note: Doesn't depend on phosphorylation state of K or whether A is bound to
# receptor, i.e. binding rate is same whether A is on membrane (bound to
# R) or in cytosol.
A(k) + K(a) <-> A(k!1).K(a!1) kpK,kmK
# Kinase transphosphorylation by inactive kinase
# Note: Rule doesn't specify how two K's are associated
K(Y~U).K(Y~U) -> K(Y~U).K(Y~P) pK
# Kinase transphosphorylation by active kinase
# Note: Rule doesn't specify how two K's are associated
K(Y~P).K(Y~U) -> K(Y~P).K(Y~P) pKs
# Dephosphorylation of kinase in membrane complex
R(a!1).A(r!1,k!2).K(a!2,Y~P) -> R(a!1).A(r!1,k!2).K(a!2,Y~U) dM
# Dephosphorylation of kinase in cytosol
K(a,Y~P) -> K(a,Y~U) dC
end reaction rules
begin observables
Molecules RecDim R(r!+)
Molecules Rec_A R(a!1).A(r!1)
Molecules Rec_K R(a!1).A(r!1,k!2).K(a!2)
Molecules Rec_Kp R(a!1).A(r!1,k!2).K(a!2,Y~P)
Molecules RecDim_Kp R.R(a!1).A(r!1,k!2).K(a!2,Y~P)
Species RecDim_sp R.R(a!1).A(r!1,k!2).K(a!2,Y~P)
Molecules Active K(Y~P)
end observables
end model
generate_network({overwrite=>1});
# Equilibration
simulate_ode({suffix=>"equil",t_end=>1000,n_steps=>100,atol=>1e-10,rtol=>1e-8,sparse=>1,steady_state=>1});
# Kinetics
setConcentration("L(r)","L0");
writeSBML({});
writeMfile({});
simulate_ode({suffix=>"kinetics",t_end=>120,n_steps=>1,atol=>1e-10,rtol=>1e-8});
# Modified Kinetics, starts from end point of previous simulate_ode command
setParameter("pKs",0);
simulate_ode({suffix=>"kinetics2",t_end=>100,n_steps=>10,atol=>1e-10,rtol=>1e-8});