// FILE IN USE 05/09/2005 -- present
/*
Add AMPA synapses to compartments listed in {STNfilename}, scale each
according to {STN_scale}. Don't make any timetables.
*/
int i, num
float d,l,surf, scalefac, totscale, meanscale
str stncompartment, tabfile
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
//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}
// 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