Page 1 of 1

Posted: Mon Oct 20, 2008 10:58 am
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

### Re: Initialization to steady state

Posted: Mon Oct 20, 2008 5:39 pm
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.

### Re: Initialization to steady state

Posted: Fri Oct 24, 2008 6:36 am
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)``