// FILE IN USE 05/09/2005 -- present /* Add AMPA synapses to compartments listed in {STNfilename}, scale each according to {STN_scale} and read timetables from files. */ int i, num float d,l,surf, scalefac, totscale, meanscale str stncompartment, tabfile //create input element tree outside of the cell path if (!{exists /inputs}) create neutral /inputs end create neutral /inputs/STN num_STN = 0 // Get mean value of scale factors openfile {STN_scale} r scalefac = {readfile {STN_scale}} totscale = 0 num = 0 while (! {eof {STN_scale}}) totscale = {totscale} + {scalefac} num = {num} + 1 scalefac = {readfile {STN_scale}} end closefile {STN_scale} meanscale = {totscale} / {num} //echo "totscale: " {totscale} //echo "num: " {num} //echo "meanscale: " {meanscale} //clear and open file to list compartment names of all excitatory synapses // File MUST NOT have any blank lines at the end, or function will fail. openfile {STNfilename} r stncompartment = {readfile {STNfilename}} openfile {STN_scale} r scalefac = {readfile {STN_scale}} //cycle through STN input compartments while (! {eof {STNfilename}}) num_STN = {num_STN} + 1 // echo {num_STN} // echo {stncompartment} // echo {scalefac} tabfile = {ttab_filebase} @ {num_STN} @ ".asc" //Add AMPA synapses copy /library/AMPA {cellpath}/{stncompartment}/AMPA addmsg {cellpath}/{stncompartment}/AMPA \ {cellpath}/{stncompartment} CHANNEL Gk Ek addmsg {cellpath}/{stncompartment} \ {cellpath}/{stncompartment}/AMPA VOLTAGE Vm // scale synapse amplitude setfield {cellpath}/{stncompartment}/AMPA gmax {{G_AMPA}*{scalefac}/{meanscale}} // echo "synapse " {stncompartment} ": " {getfield {cellpath}/{stncompartment}/AMPA gmax} //set up timetables create neutral /inputs/STN/{stncompartment} create timetable /inputs/STN/{stncompartment}/timetable setfield /inputs/STN/{stncompartment}/timetable \ maxtime {rundur} act_val 1.0 method 4 fname {tabfile} call /inputs/STN/{stncompartment}/timetable TABFILL //set up spikegen create spikegen /inputs/STN/{stncompartment}/spikegen setfield /inputs/STN/{stncompartment}/spikegen \ output_amp 1 thresh 0.5 //connect timetables to AMPA synapses addmsg /inputs/STN/{stncompartment}/timetable \ /inputs/STN/{stncompartment}/spikegen INPUT activation addmsg /inputs/STN/{stncompartment}/spikegen \ {cellpath}/{stncompartment}/AMPA SPIKE // get next compartment name stncompartment = {readfile {STNfilename}} if (! {eof {STNfilename}}) scalefac = {readfile {STN_scale}} end end closefile {STNfilename} closefile {STN_scale} if ({num_STN} != {num}) echo "ERROR: number of scale factors doesn't match number of synapses." quit end