def simulate(from_disk=0, kw={}, net='Net_0', script_name=__file__.split('/')[-1][0:-3], setup=Setup(50, 20)): setup = Setup(50, 20) file_name = kw.get('file_name', dr.HOME_DATA + '/' + script_name) file_name_figs = kw.get('file_name_figs', dr.HOME_DATA + '/fig/' + script_name) sd = get_storage_list([net], file_name, '')[0] d = {} if from_disk == 0: print net dd = {net: simulate_network(**kw)} dd = compute_attrs(dd, net, setup) save(sd, dd) if from_disk == 1: filt = [net] + ['gi', 'st', 'gi_st'] + ['spike_signal'] dd = load(sd, *filt) pp(dd) dd = compute_attrs(dd, net, setup) save(sd, dd) elif from_disk == 2: filt = [net] + ['gi', 'st', 'gi_st' ] + ['firing_rate', 'phases_diff_with_cohere'] dd = load(sd, *filt) d = misc.dict_update(d, dd) return d, file_name_figs
def simulate(from_disk=0, kw={}, net='Net_0', script_name=__file__.split('/')[-1][0:-3], setup=Setup(50,20) ): setup=Setup(50,20) file_name = kw.get('file_name', dr.HOME_DATA+'/'+script_name) file_name_figs = kw.get('file_name_figs', dr.HOME_DATA+'/fig/'+script_name) sd=get_storage_list([net], file_name, '')[0] d={} if from_disk==0: print net dd={net:simulate_network(**kw)} dd=compute_attrs(dd, net, setup) save(sd, dd) if from_disk==1: filt= [net]+['gi','st', 'gi_st']+['spike_signal'] dd = load(sd, *filt) pp(dd) dd=compute_attrs(dd, net, setup) save(sd, dd) elif from_disk==2: filt = [net]+['gi','st', 'gi_st']+['firing_rate', 'phases_diff_with_cohere'] dd = load(sd, *filt) d = misc.dict_update(d, dd) return d, file_name_figs
def simulate(builder, from_disk, perturbation_list, script_name, setup): home = expanduser("~") # file_name = get_file_name(script_name, home) # file_name_figs = get_file_name_figs(script_name, home) # d_firing_rate = setup.firing_rate() attr = ['firing_rate', 'mean_rate_slices'] attr_conn=['conn_matrix'] models=['M1', 'M2'] models_conn=['M1_M1_gaba', 'M1_M2_gaba', 'M2_M1_gaba', 'M2_M2_gaba'] sets = ['set_0'] info, nets, intervals, rep, x = get_networks(builder, **setup.builder()) key=nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) file_name_figs = get_file_name_figs(script_name, nets[key].par) path_nest=get_path_nest(script_name, nets.keys(), nets[key].par) for net in nets.values(): net.set_path_nest(path_nest) kwargs_dic = {'firing_rate':d_firing_rate, 'mean_rate_slices': {'intervals':intervals[1], 'repetition':rep, 'set_0':{'x':x}, 'sets':[0]}} # add_perturbations(perturbation_list, nets) # sd = get_storage(file_name, info) # # # _, d1 = main_loop_conn(from_disk, attr_conn, models_conn, # # sets, nets, kwargs_dic, sd) d1={} # from_disks, d2 = main_loop(from_disk, attr, models, # sets, nets, kwargs_dic, sd) # add_perturbations(perturbation_list, nets) # Adding nets no file name sd_list=get_storage_list(nets, file_name, info) from_disks, d2 = main_loop(from_disk, attr, models, sets, nets, kwargs_dic, sd_list) d=misc.dict_update(d1,d2) if from_disk==2: d=cmp_mean_rate_diff(d, models, [['Net_0', 'Net_5'], ['Net_1', 'Net_6'], ['Net_2', 'Net_7'], ['Net_3', 'Net_8'], ['Net_4', 'Net_9']], x) return file_name, file_name_figs, from_disks, d, models
def simulate(builder, from_disk, perturbation_list, script_name, setup): # file_name = get_file_name(script_name, home) # file_name_figs = get_file_name_figs(script_name, home) attr = ['mean_rate_slices'] models = ['M1', 'M2', 'FS', 'GI', 'GA', 'ST', 'SN'] sets = [] info, nets, intervals, amplitudes, rep = get_networks(builder, setup.builder(), setup.director(), setup.default_params()) key=nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) file_name_figs = get_file_name_figs(script_name, nets[key].par) path_nest=get_path_nest(script_name, nets.keys(), nets[key].par) for net in nets.values(): net.set_path_nest(path_nest) d_firing_rate = setup.firing_rate() kwargs_dic = {'firing_rate':d_firing_rate, 'mean_rate_slices':{'intervals':intervals[1], 'repetition':rep, 'x':amplitudes}} add_perturbations(perturbation_list, nets) for p in sorted(perturbation_list.list): print p # sd = get_storage(file_name, info) # Adding nets no file name sd_list=get_storage_list(nets, file_name, info) from_disks, d = main_loop(from_disk, attr, models, sets, nets, kwargs_dic, sd_list) # from_disks, d = main_loop(from_disk, attr, models, # sets, nets, kwargs_dic, sd) return file_name_figs, from_disks, d, models
def main(*args, **kwargs): setup=kwargs.get( 'setup')#, Setup()) script_name=kwargs.get('script_name')#,__file__.split('/')[-1][0:-3]) builder=kwargs.get('builder') info, nets, _ = get_networks(builder, setup.builder(), setup.director(), setup.engine(), setup.default_params()) perturbation_list=kwargs.get('perturbation_list')#,op.get()[0]) perturbation_list+=pl(setup.par(), '=', **{'name':setup.tp_name}) print perturbation_list for p in sorted(perturbation_list.list): print p add_perturbations(perturbation_list, nets) key=nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) path_nest=get_path_nest(script_name, nets.keys(), nets[key].par) print nets.keys() for net in nets.values(): net.set_path_nest(path_nest) net.set_opt(setup.opt[net.name]) # Adding nets no file name sd_list=get_storage_list(nets.keys(), file_name, info) for net, sd in zip(nets, sd_list): nl=Network_list(nets.values()) #nd.add(name, **kwargs) kwargs={'model':nl, 'call_get_x0':'get_x0', 'call_get_error':'sim_optimization', 'verbose':True,} f=Fmin('GA_GI_ST_opt', **kwargs) h=f.fmin() dd={setup.tp_name.split('_')[0]:{net:{'opt':h}}} save(sd, dd)
def simulate( from_disk=0, kw={}, net='Net_0', script_name=__file__.split('/')[-1][0:-3], setup=Setup(50, 20), ): file_name = kw.get('file_name', dr.HOME_DATA + '/' + script_name) file_name_figs = kw.get('file_name_figs', dr.HOME_DATA + '/fig/' + script_name) sd = get_storage_list([net], file_name, '')[0] d = {} if from_disk == 0: print net dd = {} for call in kw.get('calls', [ simulate_irregular_firing, simulate_ahp, simulate_IV, simulate_IF, get_nullcline, simulate_rebound_spike, ]): misc.dict_update(dd, {net: call(**kw)}) save(sd, dd) elif from_disk == 1: filt = kw.get('filter', [net] + ['IV', 'IF', 'ahp', 'nullcline'] + ['rs_scatter'] + ['rs_voltage_{0}'.format(i) for i in range(6)] + ['irf_voltage_{0}'.format(i) for i in range(3)]) dd = load(sd, *filt) d = misc.dict_update(d, dd) return d, file_name_figs
def simulate(from_disk=0, kw={}, net='Net_0', script_name=__file__.split('/')[-1][0:-3], setup=Setup(50,20), ): file_name = kw.get('file_name', dr.HOME_DATA+'/'+script_name) file_name_figs = kw.get('file_name_figs', dr.HOME_DATA+'/fig/'+script_name) sd=get_storage_list([net], file_name, '')[0] d={} if from_disk==0: print net dd={} for call in kw.get('calls',[simulate_irregular_firing, simulate_ahp, simulate_IV, simulate_IF, get_nullcline, simulate_rebound_spike,]): misc.dict_update(dd,{net:call(**kw)}) save(sd, dd) elif from_disk==1: filt = kw.get('filter', [net]+['IV', 'IF', 'ahp', 'nullcline'] +['rs_scatter']+['rs_voltage_{0}'.format(i) for i in range(6)] +['irf_voltage_{0}'.format(i) for i in range(3)]) dd = load(sd, *filt) d = misc.dict_update(d, dd) return d, file_name_figs
def main(*args, **kwargs): setup=kwargs.get('setup')#, Setup()) script_name=kwargs.get('script_name')#,__file__.split('/')[-1][0:-3]) builder=kwargs.get('builder') info, nets, _ = get_networks(builder, setup.builder(), setup.director(), setup.engine(), setup.default_params()) perturbation_list=kwargs.get('perturbation_list') perturbation_list+=pl(target_perturbations()[setup.tp_name], '=', **{'name':setup.tp_name}) perturbation_list+=pl(setup.par(), '=', **{'name':setup.tp_name}) add_perturbations(perturbation_list, nets) key=nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) path_nest=get_path_nest(script_name, nets.keys(), nets[key].par) for val in nets.values(): for key in sorted(val.par['nest'].keys()): val2=val.par['nest'][key] if 'weight' in val2.keys(): print key, val2['weight'] for key in sorted(val.par['node'].keys()): val2=val.par['node'][key] if 'spike_setup' in val2.keys(): print key, val2['spike_setup'] if 'rate' in val2.keys(): print key, val2['rate'] print setup.tp_name, nets.keys() pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) for net in nets.values(): net.set_path_nest(path_nest) pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) net.set_opt(setup.opt[net.name]) pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) # vt=net.voltage_trace() # import pylab # ax=pylab.subplot(111) # vt.plot_voltage_trace(ax) # pylab.show() sd_list=get_storage_list(nets.keys(), file_name, info) for net, sd in zip(nets.values(), sd_list): nl=Network_list([net]) # pp(net.par.dic['node']['STp']) kwargs={'model':nl, 'call_get_x0':'get_x0', 'call_get_error':'sim_optimization', 'verbose':True,} kwargs_fmin={'maxiter':100, 'maxfun':100, 'full_output':1, 'retall':1, 'xtol':.0001, 'ftol':.0001, 'disp':0} kwargs_fmin={} kwargs['kwargs_fmin']=kwargs_fmin f=Fmin('GA_opt', **kwargs) h=f.fmin() dd={setup.tp_name.split('_')[0]:{net.name:{'opt':h}}} save(sd, dd)
]: kw = { 'gi_amp': 1, 'gi_n': 600, 'gi_st_delay': delay, 'gi_gi_delay': 1., 'st_gi_delay': delay, 'p_st': p_st, 'sim_time': 3500.0, 'st_amp': 0, 'st_n': 200 } kw_list.append(kw) nets = ['Net_{0:0>2}'.format(i) for i in range(len(kw_list))] sd_list = get_storage_list(nets, path, '') d = {} for net, sd, kw in zip(nets, sd_list, kw_list): if from_disk == 0: # and net=='Net_05': print net dd = {net: simulate_network(**kw)} dd = compute_attrs(dd, net) save(sd, dd) if from_disk == 1: filt = [net] + ['gi', 'st', 'gi_st'] + ['spike_signal'] dd = load(sd, *filt) pp(dd) dd = compute_attrs(dd, net)
'if_params':p_st, 'iv_params':p_st, 'iv_I_vec': numpy.arange(-200,0,10), 'model':'my_aeif_cond_exp', 'nc_params':p_st, 'nc_V':numpy.arange(-80,-0,1)} kw_list.append(kw) nets=['Net_{0:0>2}'.format(i) for i in range(len(kw_list))] sd_list=get_storage_list(nets, path, '') d={} for net, sd, kw in zip(nets, sd_list, kw_list): if from_disk==0:# and net=='Net_05': print net dd={} for call in [ simulate_IV, simulate_IF, get_nullcline, simulate_rebound_spike, ]: misc.dict_update(dd,{net:call(**kw)})
def simulate(builder, from_disk, perturbation_list, script_name, setup): d_firing_rate = setup.firing_rate() d_mrs = setup.mean_rate_slices() attr = [ 'firing_rate', 'mean_rate_slices' ] models = ['M1', 'M2', 'FS', 'ST', 'GA', 'GI', 'SN'] sets = ['set_0', 'set_1'] info, nets, intervals, rep, x_set, y_set = get_networks(builder, setup.builder(), setup.director(), setup.default_params()) add_perturbations(perturbation_list, nets) for p in sorted(perturbation_list.list): print p print nets.keys() key=nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) file_name_figs = get_file_name_figs(script_name, nets[key].par) path_nest=get_path_nest(script_name, nets.keys(), nets[key].par) for net in nets.values(): net.set_path_nest(path_nest) x=range(len(x_set)) xticklabels=[str(a)+'*'+str(b) for a, b in zip(x_set, y_set) ] d_mrs.update({'intervals':intervals[1], 'repetition':rep, 'set_0':{'x':x, 'xticklabels':xticklabels, 'x_set':x_set}, 'set_1':{'x':x, 'xticklabels':xticklabels, 'x_set':y_set}, 'sets':[0, 1]}) # d_firing_rate['mean_rate_slices']=d_mrs # # d=d_mrs.copy() # d['intervals']=[[v[0], v[0]+100] for v in intervals[1]] # d_firing_rate['mean_rate_slices_0']=d # # d=d_mrs.copy() # d['intervals']=[[v[1]-100, v[1]] for v in intervals[1]] # # d_firing_rate['mean_rate_slices_1']=d # kwargs_dic = { 'firing_rate':d_firing_rate, 'mean_rate_slices': d_mrs } # Adding nets no file name sd_list=get_storage_list(nets, file_name, info) from_disks, d = main_loop(from_disk, attr, models, sets, nets, kwargs_dic, sd_list, **{'attrs_load':['mean_rate_slices']}) return file_name, file_name_figs, from_disks, d, models
def plot(file_name, figs, setup, flag, **k): nets = ['Net_0', 'Net_1'] attr = ['firing_rate', 'mean_rates', 'spike_statistic'] attr2 = ['psd', 'activity_histogram', 'activity_histogram_stat'] attr_coher = ['phase_diff', 'phases_diff_with_cohere', 'mean_coherence'] models = ['M1', 'M2', 'FS', 'GI', 'GA', 'ST', 'SN', 'GP'] models_coher = [ 'GI_GA', 'GI_GI', 'GA_GA', 'GA_ST', 'GI_ST', 'GP_GP', 'ST_ST', 'GP_ST', ] # Adding nets no file name sd_list = get_storage_list(nets, file_name, '') d = {} for sd, net in zip(sd_list, nets): filt = ([net] + models + models_coher + attr + attr2 + attr_coher) dd = load(sd, *filt) # cmp_statistical_test(models, dd) d = misc.dict_update(d, dd) kw = setup.plot_summed2() kw['alphas'] = [1., 1.] kw['coherence_xcut'] = [0, 50] kw['coherence_color'] = ['grey', 'k'] kw['coherence_p_conf95_linestyle'] = '--' kw['hatchs_ti_ti'] = ['', ''] kw['label_model'] = 'Black=Model' kw['label_exp'] = 'White=Exp., Mallet et al 2008' kw['linewidth'] = 1. kw['set_text_on_bars'] = False kw['top_label'] = False kw['phases_diff_with_cohere_colors'] = ['grey', 'k'] kw['phases_diff_with_cohere_xcut'] = [-numpy.pi * 0.97, numpy.pi**0.97] kw['phases_diff_with_cohere_remove_peaks'] = True kw['scale'] = 1 kw['spk_stats_color_axis'] = 1 kw['spk_stats_colors'] = ['k', 'w'] kw['spk_stats_colors_ti_ta'] = ['k', 'w'] kw['xlim_cohere'] = [-1, 51] kw.update(k) figs.append(base_oscillation.show_summed2(d, **kw)) kw = setup.plot_summed_STN() kw['alphas'] = [1., 1.] kw['coherence_color'] = ['grey', 'k'] kw['coherence_p_conf95_linestyle'] = '--' kw['hatchs_ti_ti'] = ['', ''] kw['label_model'] = 'Black=Model' kw['label_exp'] = 'White=Exp., Mallet et al 2008' kw['linewidth'] = 1. kw['phases_diff_with_cohere_xcut'] = [-numpy.pi * 0.97, numpy.pi**0.97] kw['phases_diff_with_cohere_remove_peaks'] = True kw['phases_diff_with_cohere_colors'] = ['grey', 'k'] kw['scale'] = 1 kw['set_text_on_bars'] = False kw['spk_stats_colors'] = ['k', 'w'] kw['spk_stats_colors_ti_ta'] = ['k', 'w'] kw['spk_stats_color_axis'] = 1 kw['top_label'] = False kw['xlim_cohere'] = [-1, 51] if flag == 'slow_wave': kw['ylim_cohere'] = [0, 1.0] elif flag == 'beta': kw['ylim_cohere'] = [0, 0.4] kw['coherence_xcut'] = [0, 50] kw.update(k) figs.append(base_oscillation.show_summed_STN(d, **kw)) return figs
def main(*args, **kwargs): setup = kwargs.get('setup') #, Setup()) script_name = kwargs.get('script_name') #,__file__.split('/')[-1][0:-3]) builder = kwargs.get('builder') info, nets, _ = get_networks(builder, setup.builder(), setup.director(), setup.engine(), setup.default_params()) perturbation_list = kwargs.get('perturbation_list') perturbation_list += pl(target_perturbations()[setup.tp_name], '=', **{'name': setup.tp_name}) perturbation_list += pl(setup.par(), '=', **{'name': setup.tp_name}) add_perturbations(perturbation_list, nets) key = nets.keys()[0] file_name = get_file_name(script_name, nets[key].par) path_nest = get_path_nest(script_name, nets.keys(), nets[key].par) for val in nets.values(): for key in sorted(val.par['nest'].keys()): val2 = val.par['nest'][key] if 'weight' in val2.keys(): print key, val2['weight'] for key in sorted(val.par['node'].keys()): val2 = val.par['node'][key] if 'spike_setup' in val2.keys(): print key, val2['spike_setup'] if 'rate' in val2.keys(): print key, val2['rate'] print setup.tp_name, nets.keys() pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) for net in nets.values(): net.set_path_nest(path_nest) pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) net.set_opt(setup.opt[net.name]) pp(nets['Net_1'].par['nest']['GA_GA_gaba']['weight']) # vt=net.voltage_trace() # import pylab # ax=pylab.subplot(111) # vt.plot_voltage_trace(ax) # pylab.show() sd_list = get_storage_list(nets.keys(), file_name, info) for net, sd in zip(nets.values(), sd_list): nl = Network_list([net]) # pp(net.par.dic['node']['STp']) kwargs = { 'model': nl, 'call_get_x0': 'get_x0', 'call_get_error': 'sim_optimization', 'verbose': True, } kwargs_fmin = { 'maxiter': 100, 'maxfun': 100, 'full_output': 1, 'retall': 1, 'xtol': .0001, 'ftol': .0001, 'disp': 0 } kwargs_fmin = {} kwargs['kwargs_fmin'] = kwargs_fmin f = Fmin('GA_opt', **kwargs) h = f.fmin() dd = {setup.tp_name.split('_')[0]: {net.name: {'opt': h}}} save(sd, dd)
attr2=['psd', 'activity_histogram', 'activity_histogram_stat'] attr_coher = [ 'phase_diff', 'phases_diff_with_cohere', 'mean_coherence' ] models = ['M1', 'M2', 'FS', 'GI', 'GA', 'ST', 'SN', 'GP'] models_coher = ['GI_GA', 'GI_GI', 'GA_GA', 'GA_ST', 'GI_ST', 'GP_GP', 'ST_ST', 'GP_ST',] # Adding nets no file name sd_list=get_storage_list(nets, file_name, '') d = {} for sd, net in zip(sd_list, nets): filt = ([net] + models + models_coher + attr + attr2 + attr_coher) dd = load(sd, *filt) # cmp_statistical_test(models, dd) d = misc.dict_update(d, dd)
def plot(file_name, figs, setup, flag, **k): nets=['Net_0', 'Net_1'] attr = [ 'firing_rate', 'mean_rates', 'spike_statistic' ] attr2=['psd', 'activity_histogram', 'activity_histogram_stat'] attr_coher = [ 'phase_diff', 'phases_diff_with_cohere', 'mean_coherence' ] models = ['M1', 'M2', 'FS', 'GI', 'GA', 'ST', 'SN', 'GP'] models_coher = ['GI_GA', 'GI_GI', 'GA_GA', 'GA_ST', 'GI_ST', 'GP_GP', 'ST_ST', 'GP_ST',] # Adding nets no file name sd_list=get_storage_list(nets, file_name, '') d = {} for sd, net in zip(sd_list, nets): filt = ([net] + models + models_coher + attr + attr2 + attr_coher) dd = load(sd, *filt) # cmp_statistical_test(models, dd) d = misc.dict_update(d, dd) kw=setup.plot_summed2() kw['alphas']=[1.,1.] kw['coherence_xcut']=[0,50] kw['coherence_color']=['grey', 'k'] kw['coherence_p_conf95_linestyle']='--' kw['hatchs_ti_ti']=['',''] kw['label_model']='Black=Model' kw['label_exp']='White=Exp., Mallet et al 2008' kw['linewidth']=1. kw['set_text_on_bars']=False kw['top_label']=False kw['phases_diff_with_cohere_colors']=['grey','k'] kw['phases_diff_with_cohere_xcut']=[-numpy.pi*0.97, numpy.pi**0.97] kw['phases_diff_with_cohere_remove_peaks']=True kw['scale']=1 kw['spk_stats_color_axis']=1 kw['spk_stats_colors']=['k', 'w'] kw['spk_stats_colors_ti_ta']=['k','w'] kw['xlim_cohere']=[-1, 51] kw.update(k) figs.append(base_oscillation.show_summed2(d, **kw)) kw=setup.plot_summed_STN() kw['alphas']=[1.,1.] kw['coherence_color']=['grey','k'] kw['coherence_p_conf95_linestyle']='--' kw['hatchs_ti_ti']=['',''] kw['label_model']='Black=Model' kw['label_exp']='White=Exp., Mallet et al 2008' kw['linewidth']=1. kw['phases_diff_with_cohere_xcut']=[-numpy.pi*0.97, numpy.pi**0.97] kw['phases_diff_with_cohere_remove_peaks']=True kw['phases_diff_with_cohere_colors']=['grey','k'] kw['scale']=1 kw['set_text_on_bars']=False kw['spk_stats_colors']=['k', 'w'] kw['spk_stats_colors_ti_ta']=['k','w'] kw['spk_stats_color_axis']=1 kw['top_label']=False kw['xlim_cohere']=[-1, 51] if flag=='slow_wave': kw['ylim_cohere']=[0, 1.0] elif flag=='beta': kw['ylim_cohere']=[0, 0.4] kw['coherence_xcut']=[0,50] kw.update(k) figs.append(base_oscillation.show_summed_STN(d, **kw)) return figs