load_file("nrngui.hoc")
cvode_active(1)
dist=1
rel=0.1
numaxon=1
numsoma=1
numbasal=51
numapical=42
numtrunk=49
xopen("pc2b.hoc") // geometry file
xopen("fixnseg.hoc")
Rm = 14600
RmDend = Rm/1
RmSoma = Rm
RmAx = Rm
Cm = 3.2
CmSoma= Cm
CmAx = Cm
CmDend = Cm*1
RaAll= 50
RaSoma=50
RaAx = 50
Vrest = -62
dt = 0.1
gna = .024
AXONM = 5
gkdr = 0.008
celsius = 35.0
KMULT = 0.004
ghd=20e-6
objref g, b,c, f,time, stim, distrx, distry, outfile, cdistry
objref distri, p, s, rsyn, sref, blist[numtrunk], str1, str2, aplist
strdef filename, dends, trunk
for i=0, numtrunk-1 {
blist[i] = new Vector()
}
aplist = new Vector(numapical)
forsec "axon" {insert pas e_pas=Vrest g_pas = 1/RmAx Ra=RaAx cm=CmAx}
forsec "soma" {insert pas e_pas=Vrest g_pas = 1/RmSoma Ra=RaSoma cm=CmSoma}
forsec "dend"{insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend}
forsec "dend_5" {insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend}
forsec "apic" {insert pas e_pas=Vrest g_pas = 1/RmDend Ra=RaAll cm=CmDend}
access soma
freq=100
geom_nseg()
access soma
distance()
//*********mapping bifurcations******************
for i=0, numapical-1 apic[i] {
while (!issection("dend_5.*")) {
sref = new SectionRef()
access sref.parent
sprint(dends, secname())
}
for k=0, numtrunk-1 dend_5[k] {
sprint(trunk,secname())
x=strcmp(dends, trunk)
if (x==0) {blist[k].append(i) aplist.x[i]=k}
}
}
//************************************************
tstim=1
strength = 1 /*namps*/
tstop=550
dend_5[10] {
stim= new IClamp(.5)
stim.amp=-1
stim.dur=200
stim.del=50
}
forsec "axon" {
insert nax gbar_nax=gna*AXONM
insert kdr gkdrbar_kdr=gkdr*AXONM
insert kap gkabar_kap = KMULT*AXONM
}
forsec "soma" {
insert hd ghdbar_hd=ghd vhalfl_hd=-75
insert na3 gbar_na3=gna
insert kdr gkdrbar_kdr=gkdr
insert kap gkabar_kap = KMULT
}
for i=0, numbasal-1 dend[i] {
insert hd ghdbar_hd=ghd vhalfl_hd=-75
insert na3 gbar_na3=gna
insert kdr gkdrbar_kdr=gkdr
insert kap gkabar_kap=0
insert kad gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist > 100){
vhalfl_hd=-80
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
vhalfl_hd=-75
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
forsec "dend_5" {
insert hd ghdbar_hd=ghd
insert na3 gbar_na3=gna
insert kdr gkdrbar_kdr=gkdr
insert kap gkabar_kap=0
insert kad gkabar_kad=0
for (x,0) { xdist = distance(x)
ghdbar_hd(x) = ghd*(1+100/(1+exp((256-xdist)/26)))
if (xdist>500) {xdist=500}
if (xdist > 100){
vhalfl_hd=-80
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
vhalfl_hd=-75
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
for i=0, numapical-1 apic[i] {
insert hd
insert na3 gbar_na3=gna
insert kdr gkdrbar_kdr=gkdr
insert kap
insert kad
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist > 100){
vhalfl_hd=-80
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
vhalfl_hd=-75
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
vhalfl_hd = dend_5[aplist.x[i]].vhalfl_hd
ghdbar_hd = dend_5[aplist.x[i]].ghdbar_hd(1)
}
proc init() {
t=0
forsec "axon" {gkabar_kap = KMULT*AXONM}
forsec "soma" {
ghdbar_hd=ghd
gkabar_kap = KMULT
}
for i=0, numbasal-1 dend[i] {
ghdbar_hd=ghd
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
forsec "dend_5" {
ghdbar_hd=ghd
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
ghdbar_hd(x) = ghd*(1+100/(1+exp((256-xdist)/26)))
if (xdist>500) {xdist=500}
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
for i=0, numapical-1 apic[i] {
gbar_na3=gna
gkdrbar_kdr=gkdr
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist>500) {xdist=500}
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
ghdbar_hd = dend_5[aplist.x[i]].ghdbar_hd(1)
}
forall {
v=Vrest
if (ismembrane("nax") || ismembrane("na3")) {ena=55}
if (ismembrane("kdr") || ismembrane("kap") || ismembrane("kad")) {ek=-90}
if (ismembrane("hd") ) {ehd_hd=-30}
}
finitialize(Vrest)
fcurrent()
forall {
for (x) {
if (ismembrane("na3")||ismembrane("nax")){e_pas(x)=v(x)+(ina(x)+ik(x))/g_pas(x)}
if (ismembrane("hd")) {e_pas(x)=e_pas(x)+i_hd(x)/g_pas(x)}
}
}
cvode.re_init()
cvode.event(tstop)
access soma
}
load_file("rebound.ses")
proc runc() {
KMULT = 0.004
ghd=20e-6
def()
run()
}
proc run4ap() {
KMULT = 0.002
ghd=20e-6
def()
run()
}
proc run4apzd() {
KMULT = 0.002
ghd=0
def()
run()
}
proc def() {
forsec "axon" {gkabar_kap = KMULT*AXONM}
forsec "soma" {
ghdbar_hd=ghd
gkabar_kap = KMULT
}
for i=0, numbasal-1 dend[i] {
ghdbar_hd=ghd
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
forsec "dend_5" {
ghdbar_hd=ghd
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
ghdbar_hd(x) = ghd*(1+100/(1+exp((256-xdist)/26)))
if (xdist>500) {xdist=500}
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
}
for i=0, numapical-1 apic[i] {
gbar_na3=gna
gkdrbar_kdr=gkdr
gkabar_kap=0
gkabar_kad=0
for (x,0) { xdist = distance(x)
if (xdist>500) {xdist=500}
if (xdist > 100){
gkabar_kad(x) = KMULT*(1+xdist/100)
} else {
gkabar_kap(x) = KMULT*(1+xdist/100)
}
}
ghdbar_hd = dend_5[aplist.x[i]].ghdbar_hd(1)
}
}