//GENESIS utility script for exporting the times of synaptic excitation in the // GP neuron model. // Author: J. Edgerton, 08/2004 // Modified: J. Edgerton, 09/2008, make function take input parameters // Modified: J. Edgerton, 08/2010, support synapses with multiple timetables // Each timetable gets its own output file. Each file is 1 column of ascii txt. /* Parameters: str comptsfile: ascii file list of names of the compartments from which timetables will be saved. str outfilebase: base name of new files to be created. --> will be appended with _1.asc, _2.asc, ... str ttpath: partial path to timetable elements --> will be appended with /{comptname}/{ttname} --> All timetables should be located in neutral elements named /.../{compartment name}/{ttname} --> e.g.: /inputs/STN/soma/timetable --> e.g.: /STNinfo/p2b2b1b2b1[79]/ttab str ttname: name of timetable elements, e.g. "timetable" or "ttab" */ function write_timetables(comptsfile, outfilebase, ttpath, ttname) str comptsfile, outfilebase, ttpath, ttname openfile {comptsfile} r str fname str thiscompt, thisttab int n, k, nttabs thiscompt = {readfile {comptsfile} -linemode} while (! {eof {comptsfile}}) nttabs = {getfield {ttpath}/{thiscompt} num_ttabs} for (k=1; k<={nttabs}; k=k+1) thisttab = {ttpath} @ "/" @ {thiscompt} @ "/" @ {ttname} @ {k} fname = {outfilebase} @ "_" @ {thiscompt} @ "_" @ {k} @ ".asc" openfile {fname} w if (! {exists {thisttab}}) echo "Error in write_timetables." echo "Timetable " {thisttab} " not found" end ce {thisttab} for (n = 0; n <= {getfield ./ maxpos} - 1; n = n+1) writefile {fname} {getfield ./ *timetable[{n}]} end // add one more entry, then start new line. closefile {fname} end thiscompt = {readfile {comptsfile} -linemode} end closefile {comptsfile} end