load_file("nrngui.hoc") create soma[1] objectvar st objectvar sh strdef str1 tstop = 20 steps_per_ms = 40 ra = 200 rm = 60000 c_m = 0.75 v_init = -65 celsius = 30 proc setpassive() { forall { insert pas cm = c_m e_pas = v_init Ra=ra g_pas=1/rm } } proc load_3dcell() { xopen(str1) setpassive() forall { soma area(0.5) nseg = (int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1) totcomp=totcomp+nseg } setpassive() access soma[0] } /*****************************************************************/ objref netlist, s, ampasyn, f1, DEND, sapamp, somavec, sampvec strdef str2 proc find_epsp_amplitudes() { nmdaamparat=0.25 atrise=2.0 atau=3 ntrise=5 ntau=50 netlist=new List() ropen("neuron.que") f1=new File() nneu=fscan() tstop=40 Gstart=5e-5 Gend=1 while (nneu > 0){ getstr(str1,1) load_3dcell(str1) sprint(str2, "%s.nor",str1) wopen(str2) soma[2] s = new NetStim(0.5) s.interval=1 // ms (mean) time between spikes s.number=1 // (average) number of spikes s.start=2 // ms (mean) start time of first spike s.noise=0 // range 0 to 1. Fractional randomness. DEND = new SectionList() forsec "basal" { DEND.append() } forsec "apical"{ DEND.append() } access soma[2] distance() forsec DEND { for (x) { G=Gstart ampasyn=new AMPA(x) ampasyn.TRise=atrise ampasyn.tau=atau netlist.append(new NetCon(s,ampasyn,1,0,0)) while(G<=Gend){ ampasyn.gmax=G update_init() MAX=-70 DENDVMAX=-70 while (t MAX) { MAX=soma[2].v(0.5) } if (v(x)>DENDVMAX) { DENDVMAX=v(x) } } if(MAX>-64.8) { // somatic EPSP amplitude crossed 0.2 mV print secname(), " ", x, " ", distance(x), " ", 65+DENDVMAX, " ", G, " ", 65+MAX fprint("%f\t%f\t%f\n", distance(x), 65+DENDVMAX, G) update_init() break } G=G+1e-5 } if(G>=Gend){ // Even after reaching Gend, Soma EPSP amplitude is not 0.2 mV print secname(), " ", x, " ", distance(x), " ", 65+DENDVMAX, " ", "-1", " ", 65+MAX fprint("%f\t%f\t-1\n",distance(x),65+DENDVMAX) } } } wopen() nneu=nneu-1 } } /*****************************************************************/ proc update_init(){ finitialize(v_init) fcurrent() } /*****************************************************************/ find_epsp_amplitudes()