//**************************************************************//
// The Parameters
//**************************************************************//
load_proc("nrnmainmenu")
// Set variable time step integration mehod
objref cvode
cvode = new CVode()
cvode.active(1)
tstop = 2000
steps_per_ms = 40
dt = 0.025
stamp=0.20
// --------------------------------------------------------------
// Resistances and Capacitances
// --------------------------------------------------------------
ra = 200
rm = 60000
c_m = 0.75
v_init = -65
celsius = 30
// --------------------------------------------------------------
// Resting potentials
// --------------------------------------------------------------
Ek = -91
Ena = 50
Eca = 75
//--------------------------------------------------------------
// Active conductance densities
//--------------------------------------------------------------
// Nonbursting Regime
gna=0.025
gkdr=0.03
gkm=0.0001
// Bursting Regime
gna=0.018
gkdr=0.0088
gkm=0.00001
gcal=0.0025
gcan=0.0028
gcat=0.00025
gkahp=0.0003
gcagk=0.0008
gh=1e-5
//--------------------------------------------------------------
objref sh, st, apc, vec, g
strdef str1, str2, str3
objref DEND
create soma[1], apical[1]
/**********************************************************************/
// Set Passive Conductances
proc setpassive() {
forall {
insert pas
cm = c_m
e_pas = v_init
Ra=ra
g_pas=1/rm
}
}
/**********************************************************************/
// Set Active Conductances
proc setactive () {local xdist
forall {
insert cadifus
insert can gcanbar_can=gcan
insert cat gcatbar_cat=gcat
insert kahp gkahpbar_kahp=gkahp
insert cagk gkbar_cagk=gcagk
insert nahh gnabar_nahh=gna
insert borgkdr gkdrbar_borgkdr=gkdr
insert hd
xdist=distance(0)
ghdbar_hd=gh*(1+1.75*xdist/100)
if (xdist<50){
insert cal gcalbar_cal=gcal
}
if(xdist<100){
insert kap gbar_kap=1e-3*(7+(11*xdist)/100)
insert borgkm gkmbar_borgkm=gkm
} else {
insert kad gbar_kad=1e-3*(7+(11*xdist)/100)
}
}
forall if(ismembrane("k_ion")) ek = Ek
forall if(ismembrane("na_ion")) ena = Ena
forall if(ismembrane("ca_ion")) eca = Eca
cai0_ca_ion=50e-6 // 50nM is the initial intracellular Ca
cao0_ca_ion=2
}
/**********************************************************************/
proc init_cell() {
setpassive()
setactive()
print "Total number of compartments: ", totcomp
current_clamp()
finitialize(v_init)
fcurrent()
forall {
if (ismembrane("nahh")) {
e_pas=v+(ina+ik+ica+i_hd)/g_pas
} else {
e_pas=v+(ik+ica+i_hd)/g_pas
}
}
}
/**********************************************************************/
proc load_3dcell() {
// $s1 filename
forall delete_section()
xopen($s1)
setpassive()
// The lambda constraint
totcomp=0
forall {
soma area(0.5)
nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1
totcomp=totcomp+nseg
}
access soma[0]
distance()
coord_cadifus()
DEND = new SectionList()
forsec "basal" {
DEND.append()
}
forsec "apical"{
DEND.append()
}
init_cell()
sh = new PlotShape()
}
/**********************************************************************/
proc current_clamp(){
st=new IClamp(.5)
st.dur = 2000
st.del = 50
st.amp = stamp
}
/**********************************************************************/
proc proc_load() {
cvode.active(0)
cvode.re_init()
cvode.active(1)
ropen("Neurons.inp")
nneu=0
while (nneu < $1){
getstr(str1,1)
nneu=nneu+1
}
print str1
load_3dcell(str1)
}
/**********************************************************************/
proc showgui() {
xpanel("Select Neuron")
xlabel("Select one of the neurons below")
xbutton("0% Atrophy", "proc_load(1)")
xbutton("25% Atrophy", "proc_load(2)") // 22%
xbutton("35% Atrophy", "proc_load(3)") // 37%
xbutton("75% Atrophy", "proc_load(4)") // 74%
xpanel()
}
/**********************************************************************/
showgui()
nrnmainmenu()
nrncontrolmenu()
newPlotV()