Initialization to steady state

The basics of how to develop, test, and use models.
Post Reply
PhilippRautenberg
Posts: 15
Joined: Wed Dec 06, 2006 10:53 am

Initialization to steady state

Post by PhilippRautenberg »

Hi all,

I have a initialization problem:
For initialization I usually use the script of The NEURON Book, Chapter 8.4.2. It works perfectly fine for most of my Parameters although I had to set 't = -1e11'.
I need to calculate the resting potential for a big parameter space of different g_bar_kLT (low threshold potassium) and g_bar_h (hyperpolarization-activated cation current). As soon as g_bar_kLT and g_bar_h get close to 0.02 or bigger, the initialzation-proc fails.

Any idea for an alternative initialization? It has to be fast though as I have to do it for each point in a huge parameter space.

Cheers, Philipp
ted
Site Admin
Posts: 5810
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Initialization to steady state

Post by ted »

PhilippRautenberg wrote:For initialization I usually use the script of The NEURON Book, Chapter 8.4.2. It works perfectly fine for most of my Parameters
That particular strategy is guaranteed to work for linear systems, but is also likely to work for many nonlinear systems as long as the initialization time steps are "short enough." How short is "short enough" depends on "how nonlinear" and what kind of nonlinearity it is.

You might empirically develop a lookup table that selects the initialization time step according to the parameter values. This might work if your system is well-behaved in the region of parameter space that you are exploring.

Or you might try doing the initialization run with cvode ON, testing v and t after each fadvance, and terminating the initialization process when
(
(two v values in a row differ by less than some criterion)
AND
(the corresponding t values differ by more than some criterion)
)
OR
(t is > 0, in which case you're sunk)
This will obviously fail if your model becomes spontaneously active in some part of parameter space.
PhilippRautenberg
Posts: 15
Joined: Wed Dec 06, 2006 10:53 am

Re: Initialization to steady state

Post by PhilippRautenberg »

Thank you for your answer! For my purposes the values t=-1000 and dt = 10 works now perfect.

As a side note for beginners (like me): make the initialization process visible in order to enable yourself to fix it:

Code: Select all

tstop = 1e3 // ms
dt = 10
steps_per_ms = 1/dt
run()
I also changed line 9 of the init proc from while (t<-1e9) to

Code: Select all

while (t<-dt)
Post Reply