//Poisson_train.g /* choose imax as you want, i.e. number of trains choose time length of trains as spike_length, note parameters of timetables, e.g. maxtime and mean interval, now 10s and 'isi' s respectively */ int i0= 15000 int imin int imax= 100000 int loops=1+(imax-i0)/20 float spike_length= 1 str path1,tt float isi,x1,x2,x3 int x4 int new_seed int i, j, k //include clock setclock 0 10e-6 pushe / create neutral /spikes mkdir /home/kai/poissonTrains/{spike_length}"second" /* create a set of noise spike trains */ for (k=1;k<=1;k=k+1) mkdir /home/kai/poissonTrains/{spike_length}"second"/{k} for (isi=1.; isi<=2.; isi=isi+0.1) mkdir /home/kai/poissonTrains/{spike_length}"second"/{k}/"isi"{isi} tt = { getarg {arglist {getdate}} -arg 4} // using time for the random seeds x1 = {substring {tt} 0 1} // hour; x2 = {substring {tt} 3 4} // minute; x3 = {substring {tt} 6 7} // second; x4 = x1*x2*x3+ {pow {x1} 4} + {pow {x2} 4} + {pow {x3} 4} // this formula is arbitrarily set to make a big but random number new_seed = {rand 1 {x4}} randseed {new_seed} //This outer j loop is because can only have 20 files open at a time for (j=1; j<loops; j=j+1) imin=i0+j*20 imax=imin+20 for (i = {imin}; i < {imax}; i = i + 1) create timetable /spikes/tt_{i} setfield /spikes/tt_{i} maxtime {spike_length} method 1 act_val 1.0 meth_desc1 {isi} call /spikes/tt_{i} TABFILL create event_tofile /spikes/tt_train_{i} setfield /spikes/tt_train_{i} threshold 1 fname "/home/kai/poissonTrains/"{spike_length}"second/"{k}"/isi"{isi}"/noise-isi"{isi}"-"{i} addmsg /spikes/tt_{i} /spikes/tt_train_{i} INPUT activation call /spikes/tt_train_{i} RESET end check reset step {spike_length} -t echo "elements before deleting:" le /spikes for (i = {imin}; i < {imax}; i = i + 1) call /spikes/tt_train_{i} CLOSE delete /spikes/tt_train_{i} delete /spikes/tt_{i} end echo "elements after deleting:" le /spikes end /* j loop */ end /* isi loop */ end /* k loop */ quit