objref gbarscale
gbarscale = new Vector()
gbarscale = gbarscale.indgen(0,0.020,0.001)
// This chunk is to create two point processes.
// run once
objectvar stim
stim = new IClamp(0.5)
stim.del=100
stim.dur=500
tstop=700
objref apc
apc = new APCount(0.5)
apc.thresh = -20
//
objref rect, recv, recn, threshxt, reci, recscale, reclat
objref peakv, antipeakv, peakdiff, apamp
recn = new Vector()
reci = new Vector()
recscale = new Vector()
reclat = new Vector()
for j = 0, 20{
gkbar_kv4 = gbarscale.x[j]
for i = 0, 50 {
stim.amp = 0.012*i
//this chunk is to initiate vectors as empty because append was used in the loop
rect = new Vector()
recv = new Vector()
threshxt= new Vector()
peakv = new Vector()
antipeakv = new Vector()
peakdiff = new Vector()
apamp = new Vector()
posl = 0
posr=0
rect.record(&t)
recv.record(&soma.v(0.5))
apc.record(threshxt)
run()
if (apc.n >=2){
for k = 0, threshxt.size()-2{
posl = rect.indwhere("==", threshxt.x[k])
posr = rect.indwhere("==", threshxt.x[k+1])
peakv.append(recv.max(posl, posr))
antipeakv.append(recv.min(posl,posr))}
k = threshxt.size()-1
posl = rect.indwhere("==", threshxt.x[k])
posr = rect.indwhere("==",600)
peakv.append(recv.max(posl, posr))
antipeakv.append(recv.min(posl,posr))
peakdiff = peakv.c.sub(antipeakv)
apamp.where(peakdiff,">=",30)
recn.append(apamp.size())
reclat.append(rect.x[recv.indwhere("==",peakv.x[0])])
}else if (apc.n==1){
posl = rect.indwhere("==", threshxt.x[0])
posr = rect.indwhere("==",600)
peakv.append(recv.max(posl, posr))
antipeakv.append(recv.min(posl,posr))
peakdiff = peakv.c.sub(antipeakv)
apamp.where(peakdiff,">=",30)
recn.append(apamp.size())
reclat.append(rect.x[recv.indwhere("==",peakv.x[0])])
} else {
recn.append(0)
reclat.append(600)
}
reci.append(stim.amp)
recscale.append(gkbar_kv4)
}
}
objref savdata
savdata = new File()
savdata.wopen("kv4_20190516_1n.dat")
savdata.printf("reci recn reclat recscale\n")
objref tempmatrix
tempmatrix = new Matrix()
tempmatrix.resize(recn.size(),4)
tempmatrix.setcol(0, reci)
tempmatrix.setcol(1, recn)
tempmatrix.setcol(2, reclat)
tempmatrix.setcol(3, recscale)
tempmatrix.fprint(savdata, " %g")
savdata.close()