//======== CREATE SYNAPSES FROM SUBPIAL NEURONS FOR NGU MODEL ========// // This file contains functions to create a synapses from the // // subpial neurons. // // // // Setup: // // 1. Call make_subpial_synapses // // // // Modeling notes: // // The subpial synapses are made to lateral, medial,and subpial // // neurons that are within a specified radius of a stellate neuron. // // The synapses contain both GABA_A and GABA_B receptors. // // Self synapses are not allowed. // // // // Different synaptic weights are used for synapses that are close // // to the LGN: near weights are used for neurons whose position // // satisfies x > 1.0 and y < 0.6. Far weights are used for other // // neurons. // // // //====================================================================// include ../lib/global_constants.g include ../lib/synapses.g //============ LOCATION OF SUBPIAL SYNAPSE TARGETS ====================// str SUB_LAT_TARGET = "/apical4" // Lateral target of subpial synapse str SUB_MED_TARGET = "/dend2" // Medial target of subpial synapse str SUB_SUB_TARGET = "/dend24" // Subpial target of subpial synapse //============= SUBPIAL SYNAPSE TARGET NAMES ==========================// str SUB_LAT_SYNAPSE = "subp_lat" str SUB_MED_SYNAPSE = "subp_med" str SUB_SUB_SYNAPSE = "subp_subp" //============== SYNAPTIC WEIGHTS NEAR AND FAR FROM LGN ==============// float SUB_LAT_WA_N = 7.8 // Weight of subpial-lateral GABA_A synapse near float SUB_LAT_WA_F = 1.9 // Weight of subpial-lateral GABA_A synapse far float SUB_LAT_WB_N = 0.02 // Weight of subpial-lateral GABA_B synapse near float SUB_LAT_WB_F = 0.002 // Weight of subpial-lateral GABA_B synapse far float SUB_MED_WA_N = 2.3 // Weight of subpial-medial GABA_A synapse near float SUB_MED_WA_F = 1.37 // Weight of subpial-medial GABA_A synapse far float SUB_MED_WB_N = 0.01 // Weight of subpial-medial GABA_B synapse near float SUB_MED_WB_F = 0.001 // Weight of subpial-medial GABA_B synapse far float SUB_SUB_WA = 0.1 // Weight of subpial-subpial GABA_A synapse float SUB_SUB_WB = 2.5e-4 // Weight of subpial-subpial GABA_B synapse float SUB_X_NEAR_CUTOFF = 1.0 float SUB_Y_NEAR_CUTOFF = 0.6 //============= SYNAPSES FROM SUBPIAL - EFFECTIVE DISTANCES ===========// float SUB_LAT_R = 0.350 float SUB_MED_R = 0.350 float SUB_SUB_R = 0.350 //===================== SUBPIAL SYNAPTIC PARAMETERS ===================// float SUB_GS = 3e-9 float SUB_GS2 = 5e-9 float SUB_DELAY_FACTOR = 1e-3/ 0.05 //=============== SUBPIAL PARAMETERS FOR GABA_A RECEPTORS =============// float SUB_TA = 1.7e-3 float SUB_TTA = 1.7e-3 float SUB_IA = -70.0e-3 //=============== SUBPIAL PARAMETERS FOR GABA_B RECEPTORS =============// float SUB_TB = 500e-3 float SUB_TTB = 500e-3 float SUB_IB = -90e-3 //============= SYNAPSE COUNTS FOR DEBUGGING ==========================// int sub_lat_count = 0 int sub_med_count = 0 int sub_sub_count = 0 /* ****************************************************************** create_subpial_synapses_for_group Create a synapse for each member of the root group. The synapse contains a GABA_A and a GABA_B receptor that will sum the contributions of all subpial neuron sources that impinge on the neuron Parameters: root root of the neuron group hierarchy target target compartment for the group syn_name base name of synapse for this group ****************************************************************** */ function create_subpial_synapses_for_group (root, target, syn_name, gmax) str root, target, syn_name float gmax str name, dest str syn_chan_a = {syn_name}@"_a" str syn_chan_b = {syn_name}@"_b" foreach name ({el {{root}@"/cell"}#}) dest = {name}@{target} // GABA_A receptor make_synapse {dest} {syn_chan_a} {gmax} {SUB_IA} {SUB_TA} {SUB_TTA} // GABA_B receptor make_synapse {dest} {syn_chan_b} {gmax} {SUB_IB} {SUB_TB} {SUB_TTB} end end /* ****************************************************************** connect_subpial_synapse_group Connects synapses for each member of the root group within a specified radius of the src subpial neuron Parameters: root root of the neuron group hierarchy src subpial soma source syn_name base name of synapse for this group target target compartment for the group x_sub x coordinate for the subpial source y_sub y coordinate for the subpial source radius effective distance of synapse weight_a synaptic weight for GABA_A weight_b synaptic weight for GABA_B gmax peak conductance Returns: number of synapses created for this src ****************************************************************** */ function connect_subpial_synapse_group(root, src, syn_name, target, \ x_sub, y_sub, radius, weight_a, weight_b) str root, src, syn_name, target float x_sub, y_sub, radius, weight_a, weight_b str dest, name str syn_chan_a = {{syn_name}@"_a"} str syn_chan_b = {{syn_name}@"_b"} str src_object = {src}@"/soma/spike" int syn_count = 0 float x, y, dist, tdelay foreach name ({el {{root}@"/cell"}#}) x = {getfield {name} x} y = {getfield {name} y} dist = {sqrt {(x_sub - x)**2 + (y_sub - y)**2} } if (dist <= radius && {strcmp {src} {name}} != 0) tdelay = {dist} * SUB_DELAY_FACTOR //sec dest = {name}@{target} connect_synapse {src_object} {dest} {syn_chan_a} {tdelay} {weight_a} connect_synapse {src_object} {dest} {syn_chan_b} {tdelay} {weight_b} syn_count = syn_count + 1 end end return syn_count end /* ****************************************************************** connect_subpial_lateral_synapses Connects synapses containing a GABA_A and a GABA_B receptor from the subpial src neuron to the destination lateral neuron Parameters: root root of lateral neuron hierarchy src subpial soma source x_sub x coordinate of the subpial source neuron y_sub y coordinate of the subpial source neuron ****************************************************************** */ function connect_subpial_lateral_synapses (root, src, x_sub, y_sub) str root, src float x_sub, y_sub float weight_a, weight_b if (x_sub > SUB_X_NEAR_CUTOFF && y_sub < SUB_Y_NEAR_CUTOFF) weight_a = SUB_LAT_WA_N weight_b = SUB_LAT_WB_N else weight_a = SUB_LAT_WA_F weight_b = SUB_LAT_WB_F end sub_lat_count = sub_lat_count + {connect_subpial_synapse_group \ {root} {src} {SUB_LAT_SYNAPSE} {SUB_LAT_TARGET} \ {x_sub} {y_sub} {SUB_LAT_R} {weight_a} {weight_b}} end /* ****************************************************************** connect_subpial_medial_synapses Connects synapses containing a GABA_A and a GABA_B receptor from the subpial src neuron to the destination medial neuron Parameters: root root of medial neuron hierarchy src subpial soma source x_sub x coordinate of the subpial source neuron y_sub y coordinate of the subpial source neuron ****************************************************************** */ function connect_subpial_medial_synapses (root, src, x_sub, y_sub) str root, src float x_sub, y_sub float weight_a, weight_b if (x_sub > SUB_X_NEAR_CUTOFF && y_sub < SUB_Y_NEAR_CUTOFF) weight_a = SUB_MED_WA_N weight_b = SUB_MED_WB_N else weight_a = SUB_MED_WA_F weight_b = SUB_MED_WB_F end sub_med_count = sub_med_count + {connect_subpial_synapse_group \ {root} {src} {SUB_MED_SYNAPSE} {SUB_MED_TARGET} \ {x_sub} {y_sub} {SUB_MED_R} {weight_a} {weight_b}} end /* ****************************************************************** connect_subpial_subpial_synapses Connects synapses containing a GABA_A and a GABA_B receptor from the subpial src neuron to the destination subpial neuron Parameters: root root of subpial neuron hierarchy src subpial soma source x_sub x coordinate of the subpial source neuron y_sub y coordinate of the subpial source neuron Note: Self synapses are not allowed. ****************************************************************** */ function connect_subpial_subpial_synapses (root, src, x_sub, y_sub) str root, src float x_sub, y_sub sub_sub_count = sub_sub_count + {connect_subpial_synapse_group \ {root} {src} {SUB_SUB_SYNAPSE} {SUB_SUB_TARGET} \ {x_sub} {y_sub} {SUB_SUB_R} {SUB_SUB_WA} {SUB_SUB_WB}} end /* ****************************************************************** make_subpial_synapses Creates the synapses from subpial neurons in the NGU model Parameters: sub_root root of the hierarchy for subpial neurons lat_root root of the hierarchy for lateral neurons med_root root of the hierarchy for medial neurons ****************************************************************** */ function make_subpial_synapses (sub_root, lat_root, med_root) str sub_root, lat_root, med_root //Start by creating a representative synapse for each potential target neuron create_subpial_synapses_for_group {lat_root} {SUB_LAT_TARGET} \ {SUB_LAT_SYNAPSE} {SUB_GS} create_subpial_synapses_for_group {med_root} {SUB_MED_TARGET} \ {SUB_MED_SYNAPSE} {SUB_GS} create_subpial_synapses_for_group {sub_root} {SUB_SUB_TARGET} \ {SUB_SUB_SYNAPSE} {SUB_GS2} //Now create spikes from subpial source neurons str name int count = 0; float x_sub, y_sub foreach name ({el {{sub_root}@"/cell"}#}) count = count + 1; x_sub = {getfield {name} x} y_sub = {getfield {name} y} connect_subpial_lateral_synapses {lat_root} {name} {x_sub} {y_sub} connect_subpial_medial_synapses {med_root} {name} {x_sub} {y_sub} connect_subpial_subpial_synapses {sub_root} {name} {x_sub} {y_sub} end if (ECHO_ON == 1) echo "Created synapses for" {count} "subpial source neurons" echo " " {sub_lat_count} "synapses from subpial to lateral neurons" echo " " {sub_med_count} "synapses from subpial to medial neurons" echo " " {sub_sub_count} "synapses from subpial to subpial neurons" end; end