COMMENT *************** M.Migliore 2001 ************ Pulses of in (0.2ms) are generated using a modified Poisson distribution of arrival times with mean frequency drawn from a normal distr. At this time it cannot be started from the INITIAL block using the variable time step. An external event must be used. ENDCOMMENT NEURON { POINT_PROCESS pnoise RANGE e,onset,gavr,count,alp,eps,bet,rfreq,meant,type,sd,start,seed NONSPECIFIC_CURRENT i } UNITS { (nA) = (nanoamp) (mV) = (millivolt) (umho) = (micromho) } PARAMETER { e=0 (mV) v (mV) count=0 onset=0 (ms) alp=0.8 (ms) bet=3 (ms) eps=1 (ms) on=0.02 (nA) gavr=0 (umho) meant=100 (ms) rfreq=0 (ms) type=-1 sd=0 start=0 seed=1 } ASSIGNED { i (nA) in } STATE { c (microsiemens) <1.e-4> n (microsiemens) <1.e-4>} INITIAL { c=0 n=0 in=0 getpar(sd) getpar(type) } BREAKPOINT { SOLVE states METHOD sparse i = c*(v - e) } KINETIC states { ~ in <-> n (1/alp, 0) ~ n <-> c (1/bet, 0) ~ c -> (1/eps) } PROCEDURE getpar(r) { if (r < 0) { if (r==-1) {onset=-rfreq*log(1-scop_random()) } else { onset=rfreq } } else { while (rfreq<=0) {rfreq=normrand(meant,r)} } } NET_RECEIVE (w) { if (flag == 0) { : from external net_send(onset, 1) :starts the process getpar(type) :sets next onset } if (flag == 1) { in=gavr*on net_send(0, 0) net_send(.2, 2) } if (flag == 2) { in=0 count=count+1 } }