TITLE Burst of IPSC : Burst of IPSC : written by Francois David 2006 COMMENT Since this is an electrode current, positive values of i depolarize the cell and in the presence of the extracellular mechanism there will be a change in vext since i is not a transmembrane current but a current injected directly to the inside of the cell. Each burst is composed of single IPSCs. Burst parameters and IPSC parameters can be chosen in a large variety of ranges ENDCOMMENT NEURON { POINT_PROCESS ipsc_gauss NONSPECIFIC_CURRENT ip RANGE ip, gp RANGE dep, dur, delm, sigi, amp, tau, nipsc RANGE noise_seed } UNITS { (nA) = (nanoamp) : (uS) = (microsiemens) } PARAMETER { dep = 5 (ms) : start } dur = 80 (ms) <0,1e9> : duree } parameters of the IPSC burst delm = 10 (ms) : delay mean } sigi = 50 (ms) : delay std } dt = 0.01 (ms) v (mV) : fix by Tom McTavish added 20110504 amp = 0.005 (nS) : conductance } tau = 5 (ms) : synaptic time constant } parameter of individual IPSCs Erev = -70 (mV) : GABAA reversal potential } nipsc = 5 : nb total of ipsc noise_seed = 1 } PROCEDURE seed1(x) { set_seed(x) } ASSIGNED { ip (nA) gp (uS) indic1 events[20000] amplitude[20000] tevents[200] count } LOCAL j,k INITIAL {LOCAL indic3 ip = 0 gp = 0 count = 1 indic1 = dur/dt-1 seed1(noise_seed) FROM j = 0 TO indic1 { events[j] = 0 : by default, no event amplitude[j] = 0 : by default all the amplitudes are zero } FROM k = 0 TO nipsc-1 { indic3 = -1 WHILE (indic3<0 || indic3>dur/(dt)) { tevents[k] = normrand(delm,sigi) indic3 = floor((tevents[k]-dep)/(dt)) : indice of the } amplitude[indic3] = scop_random() : pick a random amplitude factor for the conductance events[indic3] = events[indic3] + amplitude[indic3] : nb of events per time step } } BREAKPOINT { LOCAL indic2 if (t= dep) { indic2 = floor((t-dep)/(dt)) : indic qui varie avec le temps gp = (-gp/tau)*(dt/2) + amp * (amplitude[indic2]/2) * events[indic2] + gp : breakpoint called twice per dt ip = gp * (v - Erev) :printf("duree%g\n",ip) if (ip<0 || ip>100) { ip = 0 :printf("toto\n") } if (ip>10) { ip = 10 } } else { gp = 0 } }