Sum of three exponential

NMODL and the Channel Builder.
Post Reply
Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Sum of three exponential

Post by Bill Connelly »

Hi,

I'm trying to figure out the differential equations that explain the recovery of a process. If the recovery from an inactive state to an active state is explained by the sum of three exponentials (with each time constant being an order of magnitude difference from the last), am I best to think of the process in the following way

Code: Select all

Inactive ---> Active
Changed to:

        slow rate
Inactive ---> A

   medium rate
A ---> B

  fast rate
B ---> Active
I have a feeling I'm completely wrong, so maybe there is a section in the NEURON book I've missed, or some other resource you can point me to?
ted
Site Admin
Posts: 6300
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Sum of three exponential

Post by ted »

That would work regardless of the relative magnitudes of the rate constants. Note that the rate constants and time constants do not have a simple relationship. Rewriting with a slightly different notation, the reactions are

Code: Select all

  kI
I -> W

  kW
W -> X

  kX
X -> A
so

Code: Select all

Dt I = -kI I
Dt W = kI I - kW W
Dt X = kW W - kX X
where Dt means d/dt
Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Sum of three exponential

Post by Bill Connelly »

So I have two versions of a mod file that it my mind should produce identical results, but the first one works (the current decays back to zero) and the second one doesn't. Are you able to explain to me why not?

Code: Select all

NEURON {
POINT_PROCESS expi
NONSPECIFIC_CURRENT i
RANGE i, e, g, gbar, kA, kB, kC
}

PARAMETER {
e = -50 (millivolts)
gbar = 0.01 (microsiemens)
kA = 3 (/ms)
kB = 6 (/ms)
kD = 9 (/ms)
}

STATE {
O
A
B
D
C
}

INITIAL {
C = 1
A = 0
B = 0
D = 0
O = 0
}

ASSIGNED {
  v (millivolt)
  i (nanoamp)
  g (microsiemens)
}

BREAKPOINT {
SOLVE state METHOD cnexp
O = 0.2 * B + 0.4 * A + 0.4 * D
g = gbar * O
i = g * (v - e)
}

DERIVATIVE state {
A' = -kA * A
B' = -kB * B
D' = -kD * D
C' = 0.2 * (kB * B) + 0.4 * (kA * A) + 0.4 * (kD * D) :Give that the code below doesn't work, I get the fact that this probably doesn't represent the closed state
}

NET_RECEIVE(weight (microsiemens)) {
O = O + weight
A = O
B = O
D = O
C = 1 - O
}

Code: Select all

...
BREAKPOINT {
SOLVE state METHOD cnexp
g = gbar * O
i = g * (v - e)
}

DERIVATIVE state {
A' = -kA * A
B' = -kB * B
D' = -kD * D
C' = 0.2 * (kB * B) + 0.4 * (kA * A) + 0.4 * (kD * D)
O' = -0.2 * (kB * B) - 0.4 * (kA * A) - 0.4 * (kD * D)
}
...
Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Sum of three exponential

Post by Bill Connelly »

Either way, I came up with an acceptable model of synaptic depression. I'm sure it isn't as good as the other ones that are available in modelDB, but the difference is, I understand it. I'm just posting it up here because I thought someone else might find it useful

Code: Select all

NEURON {
POINT_PROCESS expi
NONSPECIFIC_CURRENT i
RANGE i, e, tau, kA, kB, kC, dec
}

PARAMETER {
e = 0 (millivolts)
tau = 4 (ms)
kA = 0.00025 (/ms)
kB = 0.005 (/ms)
kC = 0.025 (/ms)
dec = 0.5
}

STATE {
O
A
B
C
F
g
}

INITIAL {
A = 0
B = 0
C = 0
O = 1
g = 0
}

ASSIGNED {
  v (millivolt)
  i (nanoamp)
}

BREAKPOINT {
SOLVE state METHOD cnexp
F = A/3 + B/3 + C/3
O = 1 - F
i = g * (v - e)
}

DERIVATIVE state {
A' = -kA * A
B' = -kB * B
C' = -kC * C
g' = -g/tau
}

NET_RECEIVE(weight (microsiemens)) {
g = (g + weight) * O
O = O * dec
F = 1 - O
A = F
B = F
C = F
}
Post Reply