I have some problems in my single-cell model codes.
In order to make my tuning easily, I use nrnsecmenu to pull up all the range variables to GUI interface.
But among all the variables, changing two of them doesn't work, i.e. it didn't affect the outcome at all; the results always stay exactly the same, which shouldn't happen. However, if I directly change the variable values in template hoc file itself, it works, which means I can see the different outcomes with varied variable values.
Here is the cell template that I created:
Code: Select all
begintemplate Cell_B
public soma, connect2target, type
public all
create soma
access soma // declares soma as a membrane compartment object
public ncl, synlist
objref ncl, synlist
strdef type
/////biophysical properties/////
proc init() {
create soma // create soma in the initialization
ncl = new List()
synlist =new List()
type = "Cell_B"
gUnf_Xsoma = 2.5e-05
Rm = 80000 // decreased overall
SpineScale = 1.76371308 //2
SpineScale_leak = 1.763714578
RaAll= 200
RaSoma= 146.969697 //200
RaAxIs = 100//100//200
Vpas = -65//-69 // -67
gna = 0.039//.03*0.6*1.5 //.03*0.6*1.5 /* decreased from 0.03 */
AXONM = 3 /*decrease from 2 */
gkdr = 0.005*.6 /* decreased from 0.005 */
ghd=0.000003 *.7
nash=10
Vrest = -67
celsius = 31.0
gsAHP = 0.0014//0.0005
GmC = 0.0096//0.0085//0.006 //0.0035 //0.0006
/////geometrical properties/////
soma {nseg = 1 L = 117.77 diam = 24.5} // L = 55.2
soma {
insert leak el_leak=Vpas glbar_leak = 2e-5 Ra=RaAll cm=2.5 //different values in the thress compartment model
insert nap gbar_nap= 0.00113 ataum_nap = 1.6 vhalf_nap = -48//8e-4 //4.5e-4
insert im gmbar_im = GmC ataun_im = 1//same value in the three compartment model
ena = 45
ek = -80
if (ismembrane("kdr") || ismembrane("kap") || ismembrane("kad")) {ek=-80} //???
if (ismembrane("hd") ) {ehd_hd=-43 } // change from -30 to -50 //???
}
}
obfunc connect2target() { localobj nc
soma nc = new NetCon(&v(0.5), $o1)
nc.threshold = 0
if (numarg() == 2) ($o2 = nc)
return nc
}
endtemplate Cell_B
Here is nap.mod:
Code: Select all
INDEPENDENT { t FROM 0 TO 1 WITH 1 (ms) }
UNITS {
(mV) = (millivolt)
(mA) = (milliamp)
}
NEURON {
SUFFIX nap
USEION na READ ena WRITE ina
RANGE gbar, ina, minf, mtau, gna, ataum, vhalf :, vshift
}
PARAMETER {
gbar = 1e-4 (mho/cm2)
:vshift = 0
v ena (mV)
ataum = 1
vhalf = -48
}
ASSIGNED {
ina (mA/cm2)
minf (1)
mtau (ms)
gna (mho/cm2)
}
STATE {
m
}
BREAKPOINT {
SOLVE states METHOD cnexp
gna = gbar * m
ina = gna * ( v - ena )
}
INITIAL {
rate(v) :-vshift
m = minf
:m = 0
}
DERIVATIVE states {
rate(v) :-vshift
m' = ( minf - m ) / mtau
}
UNITSOFF
PROCEDURE rate(v) {
TABLE minf, mtau FROM -120 TO 40 WITH 641
: minf = 1 / ( 1 + exp( ( - v - 48 ) / 10 ) )
minf = 1 / ( 1 + exp( ( vhalf - v ) / 5 ) )
if( v < -40.0 ) {
mtau = ataum*100*(0.025 + 0.14 * exp( ( v + 40 ) / 10 ))
}else{
mtau = ataum*100*(0.02 + 0.145 * exp( ( - v - 40 ) / 10 ))
}
UNITSON
}
Thanks in advance.