two compartment Traub model, share membrane voltage
Posted: Wed Apr 04, 2012 8:08 am
Hi,
I create a two compartment model for Traub neuron (soma and dendrite). So for SOMA i have mytraub.mod file and for DENDRITE i have CaDen.mod, K_C.mod and KAHP.mod files
My problem is when i connect this two sections (SOMA + DENDRITE) the output for the soma is the same than if i dont make the connection, so it seems that soma is not taking into account the voltage from dendrite. So why the SOMA output is the same if i connect the dendrite or not??. I simulate by separate each section and they work fine.
The SOMA depends of Na and K ions
The DENDRITE depends of Ca and K ions
The voltage in dendrite indeed changed, so it seem to take into account the soma, but in the other way around does not
How is the mechanism for share the voltage between sections??, is it automatically when i use the "connect" command??
Thanks for any help

This is my HOC file
This is mytraub.MOD file
This is CaDen.MOD file
This is KAHP.MOD file
This is K_C.MOD file
I create a two compartment model for Traub neuron (soma and dendrite). So for SOMA i have mytraub.mod file and for DENDRITE i have CaDen.mod, K_C.mod and KAHP.mod files
My problem is when i connect this two sections (SOMA + DENDRITE) the output for the soma is the same than if i dont make the connection, so it seems that soma is not taking into account the voltage from dendrite. So why the SOMA output is the same if i connect the dendrite or not??. I simulate by separate each section and they work fine.
The SOMA depends of Na and K ions
The DENDRITE depends of Ca and K ions
The voltage in dendrite indeed changed, so it seem to take into account the soma, but in the other way around does not
How is the mechanism for share the voltage between sections??, is it automatically when i use the "connect" command??
Thanks for any help
This is my HOC file
Code: Select all
load_file("nrngui.hoc")
create somaT,denT
access somaT
somaT {
nseg = 1
diam = 43.3 // (um)
L = 43.3 // (um)
Ra = 100e3 // (ohm*cm)
cm = 3 // (uF/cm2) , capacitance
insert traub
}
denT {
nseg = 1
diam = 2.5 // (um)
L = 11 // (um)
Ra = 100e3 // (ohm*cm)
cm = 3 // (uF/cm2) , capacitance
insert caden
insert kahp
insert kc
}
objectvar stim
somaT stim = new IClamp(0.5)
stim.del = 10 // (mseg)
stim.dur = 50 // (mseg)
stim.amp = 2.3 //0.1767 //2.3 // (nA)
// +++++++++++++++++++++
// CONNECT COMPARTMENTS
// +++++++++++++++++++++
connect somaT(1),denT(0)
This is mytraub.MOD file
Code: Select all
TITLE mytraub5.mod
UNITS {
(mA) = (milliamp)
(mV) = (millivolt)
(S) = (mho)
(umho) = (micromho)
} : end UNITS
NEURON {
SUFFIX traub
USEION na WRITE ina
USEION k READ ik WRITE ik
NONSPECIFIC_CURRENT itl
RANGE gnabar,gkbar,gna,gk,ena,ek : this variables are added the SUFFIX
RANGE gtl,etl
GLOBAL alphaM,betaM,alphaH,betaH,alphaP,betaP
} : end NEURON
: Constants OR variables which can be changed from HOC program
PARAMETER {
ena = 50.0 (mV)
ek = -85.0 (mV)
etl = -70.0 (mV)
gnabar = 0.030 (S/cm2)
gkbar = 0.015 (S/cm2)
gtl = 0.0003 (S/cm2)
maflag = 3
malphaA = -0.32
malphaB = -4.0
malphaV0 = 13.1
mbflag = 3
mbetaA = 0.28
mbetaB = 5.0
mbetaV0 = 40.1
haflag = 1
halphaA = 0.128
halphaB = -18
halphaV0 = 17.
hbflag = 2
hbetaA = 4.
hbetaB = -5.
hbetaV0 = 40.
: MODIFICADO channel "p" added
paflag = 4
palphaA = -0.016
palphaB = -5.0
palphaV0 = 35.1
pbflag = 4
pbetaA = 0.25
pbetaB = -40.0
pbetaV0 = 20.0
} : end PARAMETER
: Variables calculated by mechanism itself OR
: computed by NEURON
ASSIGNED {
v (mV)
ina (mA/cm2)
ik (mA/cm2)
itl (mA/cm2)
gna (S/cm2)
gk (S/cm2)
mtraub_inf
mtraub_tau (ms)
htraub_inf
htraub_tau (ms)
ptraub_inf
ptraub_tau (ms)
alphaM betaM
alphaH betaH
alphaP betaP
} : end ASSIGNED
: State variables to be solved
STATE { m h p }
: Equations which calculates the ions currents
: In Yiwei thesis, pag 98, equation 4.20(a)
BREAKPOINT {
SOLVE states METHOD cnexp
mh(v)
gna = gnabar * mtraub_inf*mtraub_inf*h
gk = gkbar * p
ina = gna*(v-ena)
ik = gk*(v-ek)
itl = gtl*(v-etl)
} : end BREAKPOINT
: Initial values
INITIAL {
mh(v)
m = mtraub_inf
h = htraub_inf
p = ptraub_inf
}
DERIVATIVE states {
mh(v)
m' = alphaM * ( 1 - m ) - betaM * m
h' = alphaH * ( 1 - h ) - betaH * h
p' = alphaP * ( 1 - p ) - betaP * p
}
: +++++++++++++++++++++++++++++++++++++++++++++++++++
: +++++++++++++++++++++++++++++++++++++++++++++++++++
: ASSIGNMENT PROCEDURES
: +++++++++++++++++++++++++++++++++++++++++++++++++++
: +++++++++++++++++++++++++++++++++++++++++++++++++++
UNITSOFF
:-------------------------------------------------------------------
: NOTE : 0 = m and 1 = h
PROCEDURE mh (v(mV)) {
alphaM = -0.32*(56.9+v) /(exp(-(56.9+v)/4.0)-1)
betaM = 0.28*(29.9+v) / (exp((29.9+v)/5.0)-1)
mtraub_inf = alphaM / (alphaM + betaM)
alphaH = 0.128*exp(-(v+53.0)/18.0)
betaH = 4.0 /(exp(-(30.0+v)/5.0)+1.0)
htraub_inf = alphaH / (alphaH + betaH)
alphaP = -0.016*(34.9+v)/(exp(-(34.9+v)/5.0)-1.0)
betaP = 0.25*exp(-(v+50.0)/40.0)
ptraub_inf = alphaP / (alphaP + betaP)
} : end PROCEDURE mh (v)
UNITSON
Code: Select all
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
}
NEURON {
SUFFIX caden
USEION ca WRITE ica,cai
RANGE gcamax, is, gs
GLOBAL alphaS,betaS
}
PARAMETER {
gcamax = 0.010 (mho/cm2)
eca = 70.0 (mV)
scale_ca = 0.13
time_ca = 0.075
}
ASSIGNED {
v (mV)
gs (mho/cm2)
myica (mA/cm2)
ica (mA/cm2)
alphaS betaS
}
STATE { s cai }
INITIAL {
s = .009 :alphaS / ( alphaS + betaS )
cai = 0.2
}
BREAKPOINT {
SOLVE states METHOD cnexp
gs = gcamax * s * s
ica = gs * (v-eca)
myica = 10.0 * s * s * (v-eca)
}
DERIVATIVE states {
settables(v)
s' = alphaS * ( 1 - s ) - betaS * s
cai' = -(scale_ca * myica) - (time_ca * cai)
}
UNITSOFF
PROCEDURE settables(v) {
alphaS = 1.6 / (exp( -(v + 5.0)/13.89 )+1)
betaS = 0.02*(v+18.9)/(exp( (v + 18.9)/5.0 )-1)
}
UNITSON
Code: Select all
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
}
NEURON {
SUFFIX kahp
USEION k READ ik WRITE ik
USEION ca READ cai
RANGE gKAHPmax,gkahp
GLOBAL alphaQ,betaQ
}
PARAMETER {
gKAHPmax = 0.0008 (mho/cm2)
ek = -85.0 (mV)
}
ASSIGNED {
v (mV)
gkahp (mho/cm2)
ik (mA/cm2)
cai
alphaQ betaQ
alphaS
}
STATE { q }
INITIAL {
q = 0.01
}
BREAKPOINT {
SOLVE states METHOD cnexp
gkahp = gKAHPmax * q
ik = gkahp*(v-ek)
}
DERIVATIVE states {
rates( cai )
q' = alphaQ * ( 1 - q ) - betaQ * q
}
UNITSOFF
PROCEDURE rates(cai) {
if ((0.2e-4)*cai < 0.01) {
alphaQ = (0.2e-4)*cai
} else {
alphaQ = 0.01
}
betaQ = 0.001
}
UNITSON
Code: Select all
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
}
NEURON {
SUFFIX kc
USEION k READ ik WRITE ik
USEION ca READ cai
RANGE gkcmax, gk
GLOBAL alphaC,betaC
}
PARAMETER {
gkcmax = 0.015 (mho/cm2)
gcamax = 0.010 (mho/cm2)
glden = 0.0003 (mho/cm2)
gKAHPmax = 0.0008 (mho/cm2)
Vthc = -20.0 (mV)
ek = -85.0 (mV)
Ca_th = 1.0
}
ASSIGNED {
v (mV)
gk (mho/cm2)
ik (mA/cm2)
cai
alphaC betaC
}
STATE { c }
INITIAL {
c = .007 :alphaC / ( alphaC + betaC )
}
BREAKPOINT {
SOLVE states METHOD cnexp
if( 0.004 * cai < Ca_th ) { : this comparison solves equation 5.15j
gk = gkcmax * c * 0.004 * cai
} else {
gk = gkcmax * c
}
ik = gk * (v-ek)
}
DERIVATIVE states {
settables(v)
c' = alphaC * ( 1 - c ) - betaC * c
}
UNITSOFF
PROCEDURE settables(v) {
if( v < Vthc ) {
alphaC = (2 / 37.95) * ( exp( ( v + 60 ) / 11 - ( v + 63.5 ) / 27 ) )
betaC = 2 * exp( -(v + 63.5 ) / 27 ) - alphaC
: Note that there is typo in the paper - missing minus sign in the front of 'v'
}else{
alphaC = 2 * exp(-(v + 63.5 ) / 27 )
betaC = 0
}
}
UNITSON