def run(): defaults = PaperDefaults() #David's globals size = 51 csize = 9 npoints = 32 scale = 2.0 cval = 0.5 csvfiles = [[ defaults._DATADIR + \ '/TB2015_%i_%s.csv' % (i, s) \ for i in range(-90, 90, 30)] for s in ('PS', 'PO') ] # experiment parameters ppop = { 'kind': 'circular', 'npoints': npoints, 'scale': scale, 'fdomain': (0, 1), } vals_ang = sp.array([-90., -60., -30., 0., 30., 60.]) vals = (vals_ang + 90.) / 180. imc1 = stim.get_center_surround(size=size, csize=csize, cval=cval, sval=sp.nan) x1 = model_utils.get_population(imc1, **ppop) x = sp.zeros((2, len(vals), npoints, size, size)) for vdx, v in enumerate(vals): imc2 = stim.get_center_surround(size=size, csize=csize, cval=v, sval=sp.nan) ims = stim.get_center_surround(size=size, csize=csize, cval=sp.nan, sval=v) x2 = model_utils.get_population(imc2, **ppop) xs = model_utils.get_population(ims, **ppop) x[0, vdx] = (x1 + x2) / 2. x[1, vdx] = (x1 + x2) / 2. + xs x.shape = (2 * len(vals), npoints, size, size) # trott and born 2015 data gt = get_gt(npoints, csvfiles) extra_vars = {} extra_vars['scale'] = scale extra_vars['npoints'] = npoints extra_vars['cval'] = cval extra_vars['size'] = size extra_vars['csize'] = csize extra_vars['vals'] = vals extra_vars['figure_name'] = 'tbp' extra_vars['return_var'] = 'O' optimize_model(x, gt, extra_vars, defaults)
def run(hps=None): defaults = PaperDefaults() #David's globals size=51 csize=9 npoints=37 scale=1. _DEFAULT_BWC_CSV_CTS = sp.array([0.0, .06, .12, .25, .50]) * 100 csvfiles=sp.array([[os.path.join(defaults._DATADIR, 'BWC2009_%i_%i.csv' \ % (i, j)) for i in _DEFAULT_BWC_CSV_CTS] for j in _DEFAULT_BWC_CSV_CTS]).T # experiment parameters im = sp.array([ stim.get_center_surround( size=size, csize=csize, cval=.25, sval=sp.nan), stim.get_center_surround( size=size, csize=csize, cval=.75, sval=sp.nan)]) # populations for vertical (masking) and horizontal (driving) stimuli ##################################################################### xv = model_utils.get_population(im[0], kind='circular', npoints=npoints, scale=scale) xh = model_utils.get_population(im[1], kind='circular', npoints=npoints, scale=scale) # superimposed populations ########################## v_contrasts = [0.0, .06, .12, .25, .50] h_contrasts = [0.0, .06, .12, .25, .50] nv, nh = len(v_contrasts), len(h_contrasts) x = sp.array([[h*xh + v*xv for h in h_contrasts] for v in v_contrasts]) x.shape = (nv * nh,) + x.shape[2:] # busse and wade data t_paper = sp.zeros((nv, nh, 13)) y_paper = sp.zeros((nv, nh, 13)) for idx in range(nv): for jdx in range(nh): t_paper[idx, jdx], y_paper[idx, jdx] = \ sp.genfromtxt(csvfiles[idx, jdx], delimiter=',').T res_y_paper = sp.zeros((y_paper.shape[0],y_paper.shape[1],npoints)) for r in range(y_paper.shape[0]): for c in range(y_paper.shape[1]): res_y_paper[r,c,:] = sp.signal.resample(y_paper[r,c,:],npoints) gt = [t_paper,res_y_paper] extra_vars = {} extra_vars['scale'] = scale extra_vars['npoints'] = npoints extra_vars['size'] = size extra_vars['csize'] = csize extra_vars['nv'] = nv extra_vars['nh'] = nh extra_vars['figure_name'] = 'bw' extra_vars['return_var'] = 'O' optimize_model(x,gt,extra_vars,defaults)
def run(): defaults = PaperDefaults() #David's globals size = 51 npoints = 64 cval1 = 0.25 cval2 = 0.75 sval = 0.75 test_contrasts = sp.array([0., 8., 32.]) mask_contrasts = sp.array([0., 8., 32.]) # experiment parameters idx1 = int(cval1 * npoints) idx2 = int(cval2 * npoints) # simulate populations imc = stim.get_center_surround(size=size, csize=9, cval=cval1, sval=sp.nan) ims = stim.get_center_surround(size=size, csize=9, cval=sp.nan, sval=sval) x1 = utils.get_population(imc, npoints=npoints, kind='gaussian', scale=0.1, fdomain=(0, 1)) x2 = sp.roll(x1, int((cval2 - cval1) * npoints), axis=-3) xs = utils.get_population(ims, npoints=npoints, kind='gaussian', scale=0.1, fdomain=(0, 1)) x = [] for k1 in test_contrasts: for k2 in mask_contrasts: x.append(k1 / 100. * x1 + k2 / 100. * x2) x = sp.array(x) + sp.array([xs]) # Experimental data extra_vars = {} extra_vars['size'] = size extra_vars['npoints'] = npoints extra_vars['sval'] = sval extra_vars['figure_name'] = 'cross_orientation_suppression' extra_vars['return_var'] = 'O' extra_vars['idx1'] = idx1 extra_vars['idx2'] = idx2 extra_vars['test_contrasts'] = test_contrasts extra_vars['mask_contrasts'] = mask_contrasts optimize_model(x, [], extra_vars, defaults)
def run(): defaults = PaperDefaults() #David's globals size = 51 csize = 5 npoints = 64 scale = 2.0 neuron_theta = 0.50 cval = 0.5 csvfiles = [ defaults._DATADIR + \ '/TB2015_Fig1B_%s.csv' % (s,) \ for s in range(-90, 90, 30) + ['CO']] # experiment parameters cvals = (sp.arange(-90, 90, 30) + 90.) / 180. svals = sp.linspace(0.0, 1.0, 6).tolist() + [sp.nan] neuron_thetas = sp.linspace(0.0, 1.0, npoints) neuron_idx = sp.argmin(sp.absolute(neuron_thetas - neuron_theta)) stims = [ stim.get_center_surround(size=size, csize=csize, cval=cv, sval=sv) for cv in cvals for sv in svals ] x = sp.array([ model_utils.get_population(im, npoints=npoints, kind='circular', scale=scale, fdomain=(0, 1)) for im in stims ]) # [Array shapes] # trott and born 2015 data gt = get_gt(csvfiles) extra_vars = {} extra_vars['scale'] = scale extra_vars['npoints'] = npoints extra_vars['cval'] = cval extra_vars['cvals'] = cvals extra_vars['svals'] = svals extra_vars['size'] = size extra_vars['csize'] = csize extra_vars['neuron_idx'] = neuron_idx extra_vars['figure_name'] = 'tbtcso' extra_vars['return_var'] = 'O' extra_vars['hp_file'] = os.path.join(defaults._FIGURES, 'best_hps.npz') optimize_model(x, gt, extra_vars, defaults)
def run(): defaults = PaperDefaults() # David's globals size = 51 nr = 17 npoints = 32 // 2 ncontrasts = 5 # experiment parameters # generate stimuli ################## im = [] for k in range(nr): im_ = sp.zeros((size, size)) + sp.nan im_[size // 2 - k:size // 2 + k + 1, size // 2 - k:size // 2 + k + 1] = 0.5 im.append(im_) im = sp.array(im) # generate populations ###################### contrasts = sp.linspace(1., 0., ncontrasts, endpoint=False)[::-1] # contrasts = sp.logspace(-2, 0., ncontrasts) x = sp.array([ utils.get_population(xim_, 'gaussian', npoints=npoints) for xim_ in im ]) ax = [c * x for c in contrasts] cx = np.concatenate(ax[:], axis=0) # Experimental data extra_vars = {} extra_vars['size'] = size extra_vars['npoints'] = npoints extra_vars['nr'] = nr extra_vars['stimsizes'] = 2 * sp.arange(nr) + 1 extra_vars['ssn'] = defaults._DEFAULT_PARAMETERS['ssn'] extra_vars['ssf'] = defaults._DEFAULT_PARAMETERS['ssf'] extra_vars['hp_file'] = os.path.join(defaults._FIGURES, 'best_hps.npz') extra_vars['figure_name'] = 'size_tuning' extra_vars['return_var'] = 'O' extra_vars['contrasts'] = contrasts extra_vars['curvecols'] = sns.cubehelix_palette(ncontrasts) extra_vars['curvelabs'] = [ 'Single-cell response at contrast %g' % (cst, ) for cst in contrasts ] optimize_model(cx, None, extra_vars, defaults)