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
Initialization to steady state
-
- Site Admin
- Posts: 6389
- Joined: Wed May 18, 2005 4:50 pm
- Location: Yale University School of Medicine
- Contact:
Re: Initialization to steady state
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.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
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.
-
- Posts: 15
- Joined: Wed Dec 06, 2006 10:53 am
Re: Initialization to steady state
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:
I also changed line 9 of the init proc from while (t<-1e9) to
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()
Code: Select all
while (t<-dt)