// This model generated automatically from SBML
/*
Edelstein1996 - EPSP ACh species
Model of a nicotinic Excitatory Post-Synaptic Potential in a Torpedo electric organ. Acetylcholine is represented explicitely as a molecular species.
This model has initially been encoded using StochSim.
This model is described in the article:
Edelstein SJ, Schaad O, Henry E, Bertrand D, Changeux JP.
Biol. Cybern. 1996 Nov; 75(5):361-79
Abstract:
Nicotinic acetylcholine receptors are transmembrane oligomeric proteins that mediate interconversions between open and closed channel states under the control of neurotransmitters. Fast in vitro chemical kinetics and in vivo electrophysiological recordings are consistent with the following multi-step scheme. Upon binding of agonists, receptor molecules in the closed but activatable resting state (the Basal state, B) undergo rapid transitions to states of higher affinities with either open channels (the Active state, A) or closed channels (the initial Inactivatable and fully Desensitized states, I and D). In order to represent the functional properties of such receptors, we have developed a kinetic model that links conformational interconversion rates to agonist binding and extends the general principles of the Monod-Wyman-Changeux model of allosteric transitions. The crucial assumption is that the linkage is controlled by the position of the interconversion transition states on a hypothetical linear reaction coordinate. Application of the model to the peripheral nicotine acetylcholine receptor (nAChR) accounts for the main properties of ligand-gating, including single-channel events, and several new relationships are predicted. Kinetic simulations reveal errors inherent in using the dose-response analysis, but justify its application under defined conditions. The model predicts that (in order to overcome the intrinsic stability of the B state and to produce the appropriate cooperativity) channel activation is driven by an A state with a Kd in the 50 nM range, hence some 140-fold stronger than the apparent affinity of the open state deduced previously. According to the model, recovery from the desensitized states may occur via rapid transit through the A state with minimal channel opening, thus without necessarily undergoing a distinct recovery pathway, as assumed in the standard 'cycle' model. Transitions to the desensitized states by low concentration 'pre-pulses' are predicted to occur without significant
channel opening, but equilibrium values of IC50 can be obtained only with long pre-pulse times. Predictions are also made concerning allosteric effectors and their possible role in coincidence detection. In terms of future developments, the analysis presented here provides a physical basis for constructing more biologically realistic models of synaptic modulation that may be applied to artificial neural networks.
To the extent possible under law, all copyright and related or neighbouring rights to this encoded model have been dedicated to the public domain worldwide. Please refer to
CC0 Public Domain Dedication
for more information.
*/
// unit definitions
import nsrunit;
unit conversion off;
// SBML property definitions
property sbmlRole=string;
property sbmlName=string;
property sbmlCompartment=string;
// SBML reactions
// React0: B L => BL /* first ligand on basal */
// React1: BL L => BLL /* second ligand on basal */
// React2: BLL => ALL /* opening of biliganded */
// React3: A L => AL /* first ligand on active */
// React4: AL L => ALL /* second ligand on active */
// React5: B => A /* opening of unliganded */
// React6: BL => AL /* opening of monoliganded */
// React7: I L => IL /* first ligand on intermediate */
// React8: IL L => ILL /* second ligand on intermediate */
// React9: A => I /* unlig act <=> unlig interm */
// React10: AL => IL /* monolig act <=> monolig interm */
// React11: ALL => ILL /* bilig act <=> bilig interm */
// React12: D L => DL /* first ligand on desensitised */
// React13: DL L => DLL /* second ligand on desensitised */
// React14: I => D /* unlig interm <=> unlig desen */
// React15: IL => DL /* monolig interm <=> monolig desen */
// React16: ILL => DLL /* bilig interm <=> bilig desen */
math main {
realDomain time second;
time.min=0;
extern time.max;
extern time.delta;
// variable definitions
real comp1 = 1E-16 L;
real kf_0 = 3E8;
real kr_0 = 8E3;
real kf_1 = 1.5E8;
real kr_1 = 16000;
real kf_2 = 3E4;
real kr_2 = 700;
real kf_3 = 3E8;
real kr_3 = 8.64;
real kf_4 = 1.5E8;
real kr_4 = 17.28;
real kf_5 = .54;
real kr_5 = 10800;
real kf_6 = 130;
real kr_6 = 2740;
real kf_7 = 3E8;
real kr_7 = 4;
real kf_8 = 1.5E8;
real kr_8 = 8;
real kf_9 = 19.7;
real kr_9 = 3.74;
real kf_10 = 19.85;
real kr_10 = 1.74;
real kf_11 = 20;
real kr_11 = .81;
real kf_12 = 3E8;
real kr_12 = 4;
real kf_13 = 1.5E8;
real kr_13 = 8;
real kf_14 = .05;
real kr_14 = .0012;
real kf_15 = .05;
real kr_15 = .0012;
real kf_16 = .05;
real kr_16 = .0012;
real BLL(time) M; /* biliganded basal state */
real IL(time) M; /* monoliganded intermediate */
real AL(time) M; /* monoliganded active state */
real A(time) M; /* unkiganded active state */
real BL(time) M; /* monoliganded basal state */
real B(time) M; /* unliganded basal state */
real DLL(time) M; /* biliganded desensitised state */
real D(time) M; /* fully desensitised state */
real ILL(time) M; /* biliganded intermediate */
real DL(time) M; /* monoliganded desensitised state */
real I(time) M; /* unliganted intermediate */
real ALL(time) M; /* biliganted active state */
real L(time) M; /* ligand */
real React0(time) katal; /* kf_0 * B * L - kr_0 * BL */
real React1(time) katal; /* kf_1 * BL * L - kr_1 * BLL */
real React2(time) katal; /* kf_2 * BLL - kr_2 * ALL */
real React3(time) katal; /* kf_3 * A * L - kr_3 * AL */
real React4(time) katal; /* kf_4 * AL * L - kr_4 * ALL */
real React5(time) katal; /* kf_5 * B - kr_5 * A */
real React6(time) katal; /* kf_6 * BL - kr_6 * AL */
real React7(time) katal; /* kf_7 * I * L - kr_7 * IL */
real React8(time) katal; /* kf_8 * IL * L - kr_8 * ILL */
real React9(time) katal; /* kf_9 * A - kr_9 * I */
real React10(time) katal; /* kf_10 * AL - kr_10 * IL */
real React11(time) katal; /* kf_11 * ALL - kr_11 * ILL */
real React12(time) katal; /* kf_12 * D * L - kr_12 * DL */
real React13(time) katal; /* kf_13 * DL * L - kr_13 * DLL */
real React14(time) katal; /* kf_14 * I - kr_14 * D */
real React15(time) katal; /* kf_15 * IL - kr_15 * DL */
real React16(time) katal; /* kf_16 * ILL - kr_16 * DLL */
// equations
when (time=time.min) BLL = 0; /* biliganded basal state */
(BLL*comp1):time = React1 + -1*React2; /* biliganded basal state */
when (time=time.min) IL = 0; /* monoliganded intermediate */
(IL*comp1):time = React7 + -1*React8 + React10 + -1*React15; /* monoliganded intermediate */
when (time=time.min) AL = 0; /* monoliganded active state */
(AL*comp1):time = React3 + -1*React4 + React6 + -1*React10; /* monoliganded active state */
when (time=time.min) A = 0; /* unkiganded active state */
(A*comp1):time = -1*React3 + React5 + -1*React9; /* unkiganded active state */
when (time=time.min) BL = 0; /* monoliganded basal state */
(BL*comp1):time = React0 + -1*React1 + -1*React6; /* monoliganded basal state */
when (time=time.min) B = 1E-22/comp1; /* unliganded basal state */
(B*comp1):time = -1*React0 + -1*React5; /* unliganded basal state */
when (time=time.min) DLL = 0; /* biliganded desensitised state */
(DLL*comp1):time = React13 + React16; /* biliganded desensitised state */
when (time=time.min) D = 0; /* fully desensitised state */
(D*comp1):time = -1*React12 + React14; /* fully desensitised state */
when (time=time.min) ILL = 0; /* biliganded intermediate */
(ILL*comp1):time = React8 + React11 + -1*React16; /* biliganded intermediate */
when (time=time.min) DL = 0; /* monoliganded desensitised state */
(DL*comp1):time = React12 + -1*React13 + React15; /* monoliganded desensitised state */
when (time=time.min) I = 0; /* unliganted intermediate */
(I*comp1):time = -1*React7 + React9 + -1*React14; /* unliganted intermediate */
when (time=time.min) ALL = 0; /* biliganted active state */
(ALL*comp1):time = React2 + React4 + -1*React11; /* biliganted active state */
when (time=time.min) L = 1E-21/comp1; /* ligand */
(L*comp1):time = -1*React0 + -1*React1 + -1*React3 + -1*React4 + -1*React7 + -1*React8 + -1*React12 + -1*React13; /* ligand */
React0 = comp1*(kf_0*B*L-kr_0*BL)/* first ligand on basal */; /* kf_0 * B * L - kr_0 * BL */
React1 = comp1*(kf_1*BL*L-kr_1*BLL)/* second ligand on basal */; /* kf_1 * BL * L - kr_1 * BLL */
React2 = comp1*(kf_2*BLL-kr_2*ALL)/* opening of biliganded */; /* kf_2 * BLL - kr_2 * ALL */
React3 = comp1*(kf_3*A*L-kr_3*AL)/* first ligand on active */; /* kf_3 * A * L - kr_3 * AL */
React4 = comp1*(kf_4*AL*L-kr_4*ALL)/* second ligand on active */; /* kf_4 * AL * L - kr_4 * ALL */
React5 = comp1*(kf_5*B-kr_5*A)/* opening of unliganded */; /* kf_5 * B - kr_5 * A */
React6 = comp1*(kf_6*BL-kr_6*AL)/* opening of monoliganded */; /* kf_6 * BL - kr_6 * AL */
React7 = comp1*(kf_7*I*L-kr_7*IL)/* first ligand on intermediate */; /* kf_7 * I * L - kr_7 * IL */
React8 = comp1*(kf_8*IL*L-kr_8*ILL)/* second ligand on intermediate */; /* kf_8 * IL * L - kr_8 * ILL */
React9 = comp1*(kf_9*A-kr_9*I)/* unlig act <=> unlig interm */; /* kf_9 * A - kr_9 * I */
React10 = comp1*(kf_10*AL-kr_10*IL)/* monolig act <=> monolig interm */; /* kf_10 * AL - kr_10 * IL */
React11 = comp1*(kf_11*ALL-kr_11*ILL)/* bilig act <=> bilig interm */; /* kf_11 * ALL - kr_11 * ILL */
React12 = comp1*(kf_12*D*L-kr_12*DL)/* first ligand on desensitised */; /* kf_12 * D * L - kr_12 * DL */
React13 = comp1*(kf_13*DL*L-kr_13*DLL)/* second ligand on desensitised */; /* kf_13 * DL * L - kr_13 * DLL */
React14 = comp1*(kf_14*I-kr_14*D)/* unlig interm <=> unlig desen */; /* kf_14 * I - kr_14 * D */
React15 = comp1*(kf_15*IL-kr_15*DL)/* monolig interm <=> monolig desen */; /* kf_15 * IL - kr_15 * DL */
React16 = comp1*(kf_16*ILL-kr_16*DLL)/* bilig interm <=> bilig desen */; /* kf_16 * ILL - kr_16 * DLL */
// variable properties
comp1.sbmlRole="compartment";
kf_0.sbmlRole="parameter";
kr_0.sbmlRole="parameter";
kf_1.sbmlRole="parameter";
kr_1.sbmlRole="parameter";
kf_2.sbmlRole="parameter";
kr_2.sbmlRole="parameter";
kf_3.sbmlRole="parameter";
kr_3.sbmlRole="parameter";
kf_4.sbmlRole="parameter";
kr_4.sbmlRole="parameter";
kf_5.sbmlRole="parameter";
kr_5.sbmlRole="parameter";
kf_6.sbmlRole="parameter";
kr_6.sbmlRole="parameter";
kf_7.sbmlRole="parameter";
kr_7.sbmlRole="parameter";
kf_8.sbmlRole="parameter";
kr_8.sbmlRole="parameter";
kf_9.sbmlRole="parameter";
kr_9.sbmlRole="parameter";
kf_10.sbmlRole="parameter";
kr_10.sbmlRole="parameter";
kf_11.sbmlRole="parameter";
kr_11.sbmlRole="parameter";
kf_12.sbmlRole="parameter";
kr_12.sbmlRole="parameter";
kf_13.sbmlRole="parameter";
kr_13.sbmlRole="parameter";
kf_14.sbmlRole="parameter";
kr_14.sbmlRole="parameter";
kf_15.sbmlRole="parameter";
kr_15.sbmlRole="parameter";
kf_16.sbmlRole="parameter";
kr_16.sbmlRole="parameter";
BLL.sbmlRole="species";
BLL.sbmlCompartment="comp1";
IL.sbmlRole="species";
IL.sbmlCompartment="comp1";
AL.sbmlRole="species";
AL.sbmlCompartment="comp1";
A.sbmlRole="species";
A.sbmlCompartment="comp1";
BL.sbmlRole="species";
BL.sbmlCompartment="comp1";
B.sbmlRole="species";
B.sbmlCompartment="comp1";
DLL.sbmlRole="species";
DLL.sbmlCompartment="comp1";
D.sbmlRole="species";
D.sbmlCompartment="comp1";
ILL.sbmlRole="species";
ILL.sbmlCompartment="comp1";
DL.sbmlRole="species";
DL.sbmlCompartment="comp1";
I.sbmlRole="species";
I.sbmlCompartment="comp1";
ALL.sbmlRole="species";
ALL.sbmlCompartment="comp1";
L.sbmlRole="species";
L.sbmlCompartment="comp1";
React0.sbmlRole="rate";
React1.sbmlRole="rate";
React2.sbmlRole="rate";
React3.sbmlRole="rate";
React4.sbmlRole="rate";
React5.sbmlRole="rate";
React6.sbmlRole="rate";
React7.sbmlRole="rate";
React8.sbmlRole="rate";
React9.sbmlRole="rate";
React10.sbmlRole="rate";
React11.sbmlRole="rate";
React12.sbmlRole="rate";
React13.sbmlRole="rate";
React14.sbmlRole="rate";
React15.sbmlRole="rate";
React16.sbmlRole="rate";
}