def add_connect(connect_dict, change_prob, freqStn): print('***** STOP SIGNAL TASK - ADDING ADDITIONAL INPUT FROM STN') if p['pulsefreq_ep'] == freqStn: connect_dict['ep']['ampa'] = { 'extern2': ext_connect(synapse='ampa', pre=tt_STNp, post='ep', dend_loc=dend_location(postsyn_fraction=0.25), weight=1.5) } else: connect_dict['ep']['ampa'] = { 'extern2': ext_connect(synapse='ampa', pre=tt_STNep, post='ep', dend_loc=dend_location(postsyn_fraction=0.25), weight=1.5) } connect_dict['Npas']['ampa'] = { 'extern2': ext_connect(synapse='ampa', pre=tt_STNp, post='Npas', dend_loc=dend_location(postsyn_fraction=0.25), weight=1.2) } connect_dict['Lhx6']['ampa'] = { 'extern2': ext_connect(synapse='ampa', pre=tt_STNp, post='Lhx6', dend_loc=dend_location(postsyn_fraction=0.25), weight=1.2) } connect_dict['proto']['ampa'] = { 'extern2': ext_connect(synapse='ampa', pre=tt_STNp, post='proto', dend_loc=dend_location(postsyn_fraction=0.15), weight=1.2) } change_prob['ep'] = { 'ampa': { 'extern1': ('dend_loc', dend_location(postsyn_fraction=0.75)) } } change_prob['Lhx6']['ampa'] = { 'extern': ('dend_loc', dend_location(postsyn_fraction=0.75)) } change_prob['Npas']['ampa'] = { 'extern': ('dend_loc', dend_location(postsyn_fraction=0.75)) } change_prob['proto']['ampa'] = { 'extern': ('dend_loc', dend_location(postsyn_fraction=0.85)) } return connect_dict, change_prob
syn_per_tt=4) ttable_replace = {} ttable_replace = {'ep': {'ampa': {'extern1': tt_STN}}} ttable_replace['proto'] = {'ampa': {'extern': tt_STN}} ttable_replace['Npas'] = {'ampa': {'extern': tt_STN}} ttable_replace['Lhx6'] = {'ampa': {'extern': tt_STN}} ttable_replace['D1'] = {'ampa': {'extern1': tt_Ctx}} ttable_replace['D2'] = {'ampa': {'extern1': tt_Ctx}} ttable_replace['FSI'] = {'ampa': {'extern': tt_Ctx}} ############################################################ #three examples of distributions for Connections even_distr = dend_location(postsyn_fraction=0.5) proximal_distr = dend_location(mindist=0e-6, maxdist=80e-6, postsyn_fraction=1) distal_distr = dend_location(mindist=50e-6, maxdist=400e-6, postsyn_fraction=.1) #,half_dist=50e-6,steep=1) ####################### connections between regions ##################### #function to add additional AMPA inputs to GPe and Ep/SNr, used here and in multisim.py def add_connect(connect_dict, change_prob, freqStn): print('***** STOP SIGNAL TASK - ADDING ADDITIONAL INPUT FROM STN') if p['pulsefreq_ep'] == freqStn: connect_dict['ep']['ampa'] = { 'extern2': ext_connect(synapse='ampa',
space_const=ConnSpaceConst) neur3pre_neur1post = connect(synapse='gaba', pre='Lhx6', post='proto', space_const=ConnSpaceConst) neur3pre_neur2post = connect(synapse='gaba', pre='Lhx6', post='Npas', space_const=ConnSpaceConst) neur3pre_neur3post = connect(synapse='gaba', pre='Lhx6', post='Lhx6', space_const=ConnSpaceConst) #description of synapse and dendritic location of extrinsic inputs STN_distr = dend_location(postsyn_fraction=1) ext2_neur1post = ext_connect( synapse='ampa', pre=tt_STN, post='proto', dend_loc=STN_distr ) # Corbit Whalen 2016 Table 2 connectivity parameters: Chumhma 2011, Shink Smith 1995, Miguelez 2012 #ext1_neur1post=ext_connect(synapse='gaba',pre=tt_Str_SPN,post='proto', dend_loc=Str_distr)#ext1 = Str ext2_neur2post = ext_connect(synapse='ampa', pre=tt_STN, post='Npas', dend_loc=STN_distr) #ext2 STN #ext1_neur2post=ext_connect(synapse='gaba',pre=tt_Str_SPN,post='Npas', dend_loc=Str_distr) ext2_neur3post = ext_connect(synapse='ampa', pre=tt_STN, post='Lhx6', dend_loc=STN_distr) #ext2 STN #Collect all connection information into dictionaries
} chanvar = { 'D1': chanvarSPN, 'D2': chanvarSPN, 'FSI': chanvarFSI, } ####################### Connections # add post_location to both of these - optionally specify e.g. prox vs distal for synapses #list of time tables that provide extrinsic connections. Each tt connected to syn_per_tt synapses tt_Ctx_SPN = TableSet('CtxSPN', 'spn1_net/Ctx10000_exp_freq10.0', syn_per_tt=4) #postsyn_fraction, when summed over all external time tables to a neuron type should <= 1 #to reduce number of inputs, can reduce postsyn_fraction distr = dend_location(mindist=0e-6, maxdist=400e-6, postsyn_fraction=1) #,half_dist=50e-6,steep=1) FSI_distr = dend_location(mindist=0e-6, maxdist=80e-6, postsyn_fraction=1) MSNconnSpaceConst = 100e-6 #Czubakyko & Plenz PNAS: 37% connected at 10 um distance FSIconnSpaceConst = 700e-6 #connectins between network neurons (intrinsic connections) #number of connections is controled by space constant, or probability #thus, as network size increases, may run out of post-synaptic neurons for connections #can either change space constant, grid spacing, or increase NumSyn D1pre_D1post = connect(synapse='gaba', pre='D1', post='D1', num_conns=1, space_const=MSNconnSpaceConst) D1pre_D2post = connect(synapse='gaba', pre='D1',
tt_str = TableSet('tt_str', 'ep_net/SPN_lognorm', syn_per_tt=2) #tt_str = TableSet('tt_str', 'ep_net/str_InhomPoisson_freq4.0_osc1.8',syn_per_tt=2) #tt_str = TableSet('tt_str', 'ep_net/str_InhomPoisson_freq4.0_osc1.8_theta10.0',syn_per_tt=2) if TWO_STR_INPUTS: #tt_str2 = TableSet('tt_str2', 'ep_net/str_InhomPoisson_freq4.0_osc5.0',syn_per_tt=2) tt_str2 = TableSet('tt_str2', 'ep_net/str_InhomPoisson_freq4.0_osc5.0_theta5.0', syn_per_tt=2) #tt_GPe = TableSet('tt_GPe', 'ep_net/GPe_InhomPoisson',syn_per_tt=2) tt_GPe = TableSet('tt_GPe', 'ep_net/GPe_lognorm', syn_per_tt=2) #description of intrinsic inputs ConnSpaceConst = 125e-6 ep_distr = dend_location(mindist=30e-6, maxdist=100e-6, postsyn_fraction=1, half_dist=50e-6, steep=1) neur1pre_neur1post = connect( synapse='gaba', pre='ep', post='gaba', probability=0.5, dend_loc=ep_distr) #need reference for no internal connections #description of synapse and dendritic location of extrinsic inputs GPe_distr = dend_location(mindist=0, maxdist=60e-6, half_dist=30e-6, steep=-1) if TWO_STR_INPUTS: str_distr = dend_location(mindist=30e-6, maxdist=1000e-6, postsyn_fraction=0.5, half_dist=100e-6, steep=1) else: