load_file("nrngui.hoc")
load_file("cell_seed3_0.hoc")
cvode_active(1) 

objref testcell, distrx, distry, c, vs[10], currvecfile[10], currvec[10], syn[10], nmda[10], ncnmda[10], nc[10], ra, rb, Clamp, randomNums 

testcell = new CA1_PC_cAC_sig()

testcell.init()

celsius=34 

Vrest=-70
proc init() {
forall ki0_k_ion=150
forall ko0_k_ion=5
forall insert ds
t=0
	forall {
		v = Vrest
		if(ismembrane("nax") || ismembrane("na3")) {
			ena=50
		}         
		if(ismembrane("hd")) {
			ehd_hd=-30
		}
	}
	finitialize(Vrest)
	fcurrent()
	forall for(x) if (ismembrane("kum")) {irest_kum(x)=ik(x)}
	cvode.re_init()
    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)}
	if (ismembrane("cal")){e_pas(x)=e_pas(x)+ica(x)/g_pas(x)}
	}
	cvode.re_init()
}
init() 

access testcell.soma

for k = 0, 9 {
currvecfile[k]= new File()
currvec[k] = new Vector()
}

currvecfile[0].ropen("l23-06-13.res.6-tt6clu2.txt")
while (!currvecfile[0].eof()) {
currvec[0].append(currvecfile[0].scanvar())
}
currvecfile[0].close()
currvecfile[1].ropen("l23-06-13.res.6-tt6clu3.txt")
while (!currvecfile[1].eof()) {
currvec[1].append(currvecfile[1].scanvar())
}
currvecfile[1].close()
currvecfile[2].ropen("l23-06-13.res.6-tt6clu5.txt")
while (!currvecfile[2].eof()) {
currvec[2].append(currvecfile[2].scanvar())
}
currvecfile[2].close()
currvecfile[3].ropen("l23-06-13.res.6-tt6clu6.txt")
while (!currvecfile[3].eof()) {
currvec[3].append(currvecfile[3].scanvar())
}
currvecfile[3].close()
currvecfile[4].ropen("l23-06-13.res.6-tt6clu7.txt")
while (!currvecfile[4].eof()) {
currvec[4].append(currvecfile[4].scanvar())
}
currvecfile[4].close()
currvecfile[5].ropen("l23-06-13.res.6-tt6clu8.txt")
while (!currvecfile[5].eof()) {
currvec[5].append(currvecfile[5].scanvar())
}
currvecfile[5].close()
currvecfile[6].ropen("l23-06-13.res.6-tt6clu10.txt")
while (!currvecfile[6].eof()) {
currvec[6].append(currvecfile[6].scanvar())
}
currvecfile[6].close()
currvecfile[7].ropen("l23-06-13.res.6-tt6clu11.txt")
while (!currvecfile[7].eof()) {
currvec[7].append(currvecfile[7].scanvar())
}
currvecfile[7].close()
currvecfile[8].ropen("l23-06-13.res.6-tt6clu13.txt")
while (!currvecfile[8].eof()) {
currvec[8].append(currvecfile[8].scanvar())
}
currvecfile[8].close()
currvecfile[9].ropen("l23-06-13.res.6-tt6clu14.txt")
while (!currvecfile[9].eof()) {
currvec[9].append(currvecfile[9].scanvar())
}
currvecfile[9].close()


for k = 0, 9 {
vs[k] = new VecStim()
vs[k].play(currvec[k])
}


for k=0, 9 {
	syn[k] = new Exp2Syn(.5)
	syn[k].tau1 = 1
	syn[k].tau2 = 5
	syn[k].e = 0
	nc[k] = new NetCon(vs[k], syn[k], 0, 0, 60e-3)
	nmda[k]= new nmdanet(.5)
	ncnmda[k] = new NetCon(vs[k],nmda[k],0,0, 60*0.0035)
	}


ra = new Random()
rb = new Random()
ra.uniform(0,88)
rb.uniform(0,1)
randomNums = new Vector()

for i=0, 9 {
   j=0
   while(j==0){
	location=int(ra.repick())   
	tmp=rb.repick()  
	CA1_PC_cAC_sig[0].apic[location] {
			if (diam(tmp)<1.5 && distance(tmp)>150 && distance(tmp)<300 && randomNums.contains(location)==0){
				j=1
				randomNums.append(location)
				syn[i].loc(tmp)
				nmda[i].loc(tmp)
				print location, tmp, distance(tmp), diam(tmp)
			}
		}
	}
}

load_file("pathol_high_w.ses")