//FILE IN USE 05/24/2004 -- 08/10/2004 //Modified 06/28/2004: Kv4f and Kv4s clusters added. // Modified 08/04/2004: if statements for STN_rate == 0 condition added. /*script to add synapses to GP model*/ randseed 78923456 int i float d,l,surf str stncompartment // Be aware that path must be absolute or else relative to the RUN DIRECTORY, // not the directory in which this file (read_STN_syns_Kv.g) is located. //create input element tree outside of the cell path if (!{exists /inputs}) create neutral /inputs end create neutral /inputs/STN //clear and open file to list compartment names of all excitatory synapses openfile {STNfilename} r //cycle through STN input compartments for (i = 1; i <= {num_STN}; i = i + 1) stncompartment = {readfile {STNfilename}} //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 //get compartment parameters d = {getfield {cellpath}/{stncompartment} dia} l = {getfield {cellpath}/{stncompartment} len} surf = {d}*{l}*{PI} setfield {cellpath}/{stncompartment}/AMPA gmax {G_AMPA} //get existing channel densities for each compartment float Gbar_NaF = {getfield {cellpath}/{stncompartment}/Na_fast_GP Gbar} float Gbar_NaP = {getfield {cellpath}/{stncompartment}/Na_slow_GP Gbar} float Gbar_Kv2 = {getfield {cellpath}/{stncompartment}/Kv2_GP Gbar} float Gbar_Kv3 = {getfield {cellpath}/{stncompartment}/Kv3_GP Gbar} float Gbar_Kv4f = {getfield {cellpath}/{stncompartment}/Kv4_fast_GP Gbar} float Gbar_Kv4s = {getfield {cellpath}/{stncompartment}/Kv4_slow_GP Gbar} /* for testing purposes float gnafb = {G_Na_fast_GP}*surf*{G_mult_Na_dend}*{G_mult_Na_cluster} float gnapb = {G_Na_slow_GP}*surf*{G_mult_Na_dend}*{G_mult_Na_cluster} float gkv2b = {G_Kv2_GP}*surf*{G_mult_Kdr_dend}*{G_mult_Kdr_cluster} float gkv3b = {G_Kv3_GP}*surf*{G_mult_Kdr_dend}*{G_mult_Kdr_cluster} echo {gnaf} {gnafb} echo {gnap} {gnapb} echo {gkv2} {gkv2b} echo {gkv3} {gkv3b} */ //multiply channel densities by cluster values setfield {cellpath}/{stncompartment}/Na_fast_GP Gbar \ {{Gbar_NaF}*{G_mult_Na_cluster}} setfield {cellpath}/{stncompartment}/Na_slow_GP Gbar \ {{Gbar_NaP}*{G_mult_Na_cluster}} setfield {cellpath}/{stncompartment}/Kv2_GP Gbar \ {{Gbar_Kv2}*{G_mult_Kdr_cluster}} setfield {cellpath}/{stncompartment}/Kv3_GP Gbar \ {{Gbar_Kv3}*{G_mult_Kdr_cluster}} setfield {cellpath}/{stncompartment}/Kv4_fast_GP Gbar \ {{Gbar_Kv4f}*{G_mult_KA_cluster}} setfield {cellpath}/{stncompartment}/Kv4_slow_GP Gbar \ {{Gbar_Kv4s}*{G_mult_KA_cluster}} /* //Add clusters explicitly //This is risky because changes made at the GPcomps level (such as new // multipliers or modifiers) are not taken into account. setfield {cellpath}/{stncompartment}/Na_fast_GP Gbar \ {{G_Na_fast_GP}*surf*{G_mult_Na_dend}*{G_mult_Na_cluster}} setfield {cellpath}/{stncompartment}/Na_slow_GP Gbar \ {{G_Na_slow_GP}*surf*{G_mult_Na_dend}*{G_mult_Na_cluster}} setfield {cellpath}/{stncompartment}/Kv2_GP Gbar \ {{G_Kv2_GP}*surf*{G_mult_Kdr_dend}*{G_mult_Kdr_cluster}} setfield {cellpath}/{stncompartment}/Kv3_GP Gbar \ {{G_Kv3_GP}*surf*{G_mult_Kdr_dend}*{G_mult_Kdr_cluster}} */ //set up timetables create neutral /inputs/STN/{stncompartment} create timetable /inputs/STN/{stncompartment}/timetable if ({STN_rate} > 0) setfield /inputs/STN/{stncompartment}/timetable \ maxtime {rundur} act_val 1.0 method 2 \ meth_desc1 {1/{STN_rate}} meth_desc2 0.005 meth_desc3 3 call /inputs/STN/{stncompartment}/timetable TABFILL end //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 if ({STN_rate} > 0) addmsg /inputs/STN/{stncompartment}/timetable \ /inputs/STN/{stncompartment}/spikegen INPUT activation addmsg /inputs/STN/{stncompartment}/spikegen \ {cellpath}/{stncompartment}/AMPA SPIKE end end closefile {STNfilename}