NEURON { POINT_PROCESS Randomizer RANGE Eintrvl : mean excitatory ISI RANGE NEproc : number of processes to generate POINTER proc_num : current process number (global variable) RANGE special } PARAMETER { Eintrvl NEproc special = 0 : very non-elegant way to create the same input stream for 1 Hz } ASSIGNED { proc_num last_event tshift skip count } INITIAL { LOCAL j skip = 0 count = 0 if (special) { Eintrvl = Eintrvl / 2.5 } last_event = 0 tshift = 0 j = 0 while (j < NEproc) { net_send(exprand(Eintrvl),j) j = j + 1 } } NET_RECEIVE(w) { if (t == last_event) { tshift = tshift + dt/10 net_send(tshift,flag) : printf("Randomizer, event overlap: time = %g process %g\n",t,flag) } else { proc_num = flag net_send(exprand(Eintrvl),flag) : special case where subgroup has 1 Hz instead of 2 Hz and I want to create : the same input raster if (special) { count = count + 1 if (count == 2 || count == 4) { skip = 0 } else { skip = 1 } if (count == 5) { count = 0 } } if (!skip) { net_event(t) } tshift = 0 } last_event = t } PROCEDURE seed(x) { set_seed(x) }