I'm a new user of Neuron. I have read some Neuron documents to start writing code in NEURON. So, this is my first step to write a code in NEURON.
I 'm sure my question is very simple for you, but the answer will help me so much.this is my code:
Code: Select all
create soma, apical_dend,distal_dend
//define geometry
insert pass
insert hh2
// connect section
//d_lambda rule
xopen("fixnseg.hoc") // i found this code in your site
geom_nseg() // so i have different nseg for my sections
objref cvode
cvode = new CVode()
cvode.active(1)
cvode.atol(1e-4)
when i click on my hoc file i see the following error:
hh2 is a mod file. that i found in ModelDBnrniv: hh2 cannot be used with CVODE in C:/neuron1.hoc near line 30
cvode.active(1)
^
CVode[1].active(1 )
Code: Select all
TITLE Hippocampal HH channels
:
: Fast Na+ and K+ currents responsible for action potentials
: Iterative equations
:
: Equations modified by Traub, for Hippocampal Pyramidal cells, in:
: Traub & Miles, Neuronal Networks of the Hippocampus, Cambridge, 1991
:
: range variable vtraub adjust threshold
:
: Written by Alain Destexhe, Salk Institute, Aug 1992
:
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
SUFFIX hh2
USEION na READ ena WRITE ina
USEION k READ ek WRITE ik
RANGE gnabar, gkbar, vtraub
RANGE m_inf, h_inf, n_inf
RANGE tau_m, tau_h, tau_n
RANGE m_exp, h_exp, n_exp
}
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
}
PARAMETER {
gnabar = .003 (mho/cm2)
gkbar = .005 (mho/cm2)
ena = 50 (mV)
ek = -90 (mV)
celsius = 36 (degC)
dt (ms)
v (mV)
vtraub = -63 (mV)
}
STATE {
m h n
}
ASSIGNED {
ina (mA/cm2)
ik (mA/cm2)
il (mA/cm2)
m_inf
h_inf
n_inf
tau_m
tau_h
tau_n
m_exp
h_exp
n_exp
tadj
}
BREAKPOINT {
SOLVE states
ina = gnabar * m*m*m*h * (v - ena)
ik = gkbar * n*n*n*n * (v - ek)
}
:DERIVATIVE states { : exact Hodgkin-Huxley equations
: evaluate_fct(v)
: m' = (m_inf - m) / tau_m
: h' = (h_inf - h) / tau_h
: n' = (n_inf - n) / tau_n
:}
PROCEDURE states() { : exact when v held constant
evaluate_fct(v)
m = m + m_exp * (m_inf - m)
h = h + h_exp * (h_inf - h)
n = n + n_exp * (n_inf - n)
VERBATIM
return 0;
ENDVERBATIM
}
UNITSOFF
INITIAL {
m = 0
h = 0
n = 0
:
: Q10 was assumed to be 3 for both currents
:
: original measurements at roomtemperature?
tadj = 3.0 ^ ((celsius-36)/ 10 )
}
PROCEDURE evaluate_fct(v(mV)) { LOCAL a,b,v2
v2 = v - vtraub : convert to traub convention
a = 0.32 * (13-v2) / ( exp((13-v2)/4) - 1)
b = 0.28 * (v2-40) / ( exp((v2-40)/5) - 1)
tau_m = 1 / (a + b) / tadj
m_inf = a / (a + b)
a = 0.128 * exp((17-v2)/18)
b = 4 / ( 1 + exp((40-v2)/5) )
tau_h = 1 / (a + b) / tadj
h_inf = a / (a + b)
a = 0.032 * (15-v2) / ( exp((15-v2)/5) - 1)
b = 0.5 * exp((10-v2)/40)
tau_n = 1 / (a + b) / tadj
n_inf = a / (a + b)
m_exp = 1 - exp(-dt/tau_m)
h_exp = 1 - exp(-dt/tau_h)
n_exp = 1 - exp(-dt/tau_n)
}
UNITSON
Although the big trouble is wrong way of using cvode(i guess), but let my ask my question in order:
1- Does my total nseg mean (for example secname.nseg=2 , 3, 4 then total nseg=9 ) number of compartment or as i defined in code i have 3 compartment due to 3 section?
2- From hh2 code, "vtraub" reperesnt the threshold for spike, right?
but which parameter define the maximum value of membrane potential during a action potential ? (i'm not sure even this question is correct!)
3-and finally, why i have this error?
In advance, i grateful for your kindly advice!