l = 4 celltype = ['m', 'd'] meas = [] titles = [] for i0 in range(len(models)): fig = plt.figure(figsize=[13, 6]) if i0 in [2, 3]: par1['d_std'] = 0.2 elif i0 in [0, 1, 4, 5]: par1['d_std'] = 0.0 print >> f, "model ", models[i0] print >> f, "parameters", par1 print >> f, "Daughter theory slope " + str( np.round(g.slope_vbvd_func(par1, par1['g1_thresh_std'], par1['td'] * par1['g2_std']), 2)) print >> f, "Mother theory slope " + str( np.round(g.slope_vbvd_m(par1, par1['g1_thresh_std'], par1['td'] * par1['g2_std']), 2)) par1['modeltype'] = models[i0] c = g.discr_gen(par1) for k in range(2): ax = plt.subplot(1, 2, k + 1) ax.set_axis_bgcolor("w") num_gen = range(5) slopes = [] for i in num_gen: x = [obj.vb for obj in c[1000:] if obj.isdaughter == k and obj.mother.gen <= i] y = [obj.vd for obj in c[1000:] if obj.isdaughter == k and obj.mother.gen <= i] slopes.append(scipy.stats.linregress(x, y)) del x, y x = [obj.vb for obj in c[1000:] if obj.isdaughter == k] y = [obj.vd for obj in c[1000:] if obj.isdaughter == k]
'$\sigma/\Delta$ for total G1 volume added', 'CV of total G1 volume added' ] celltype = ['m', 'd', 'p'] fullcelltype = [' mothers', ' daughters', ' population'] # g1_vol_obs = [] # for i in range(3): # g1_vol_obs.append(np.empty([X0, X1, len(celltype)])) for i0 in range(X0): par1[vals[0]] = pars[0][i0] for i1 in range(X1): par1[vals[1]] = pars[1][i1] for i2 in range(X2): par1[vals[2]] = pars[2][i2] slopes[i0, i1, i2, 0] = g.slope_vbvd_m(par1, 0.0, par1['td'] * g2_std[i1]) slopes[i0, i1, i2, 1] = g.slope_vbvd_func(par1, 0.0, par1['td'] * g2_std[i1]) temp = 1 for i0 in range(len(models)): for temp in range(len(celltype) - 1): a = np.zeros((X0, X1)) # print data[:, :, i0, :, 1, temp].shape a[:, :] = np.mean(data[:, :, i0, :, 1, temp], 2) - slopes[:, :, i0, temp] fig = heat_map(a, g2_std, cd, lab, fullcelltype[temp],
# GENERATING MODEL PREDICTIONS n = 1 g1_std_m = np.linspace(0.0, 0.25, 1 + n * (len(g1_std) - 1)) g2_std_m = np.linspace(0.0, 0.25, 1 + n * (len(g2_std) - 1)) cd_m = np.linspace(0.5, 1.0, 1 + n * (len(cd) - 1)) l_std_m = np.linspace(0.0, 0.25, 1 + n * (len(l_std) - 1)) k_std_m = np.linspace(0.0, 0.25, 1 + n * (len(k_std) - 1)) slopes = np.zeros( [len(g1_std_m), len(g2_std_m), len(cd_m), len(l_std_m), len(k_std_m), 2]) for h in range(len(g1_std_m)): par1['g1_thresh_std'] = g1_std_m[h] for i in range(len(cd_m)): par1['cd_m'] = cd_m[i] for j in range(len(l_std_m)): par1['l_std'] = l_std_m[j] for k in range(len(k_std_m)): par1['k_std'] = k_std_m[k] slopes[h, :, i, j, k, 0] = g.slope_vbvd_m(par1, par1['g1_thresh_std'], g2_std_m) slopes[h, :, i, j, k, 1] = g.slope_vbvd_func(par1, par1['g1_thresh_std'], g2_std_m) np.save('model5_theory_gen_numsamp' + str(n), slopes)
del temp simtype = ['Discr Time', 'Discr Gen'] y_label = None x_label = None y_label1 = 'Seed population size' x_label1 = 'Number of Generations / Growth time (in units of td)' for i0 in range(X0): par1 = par_set for temp in range(len(par1_vals[i0])): par1[par1_vals[i0][temp][0]] = par1_vals[i0][temp][1] temp = list([]) temp.append( g.slope_vbvd_m(par1, par1['g1_thresh_std'], par1['g2_std'] * par1['td'])) temp.append( g.slope_vbvd_func(par1, par1['g1_thresh_std'], par1['g2_std'] * par1['td'])) for i1 in range(X4): fig = plt.figure(figsize=[20, 6]) ind = 1 for i2 in range(2): ax = plt.subplot(1, 4, ind) title_str = simtype[i2] + ' mean slope diff' temp1 = val[0][i0, :, :, i1, i2] ax = g.heat_map(temp1 - temp[i1], num_s1, num_gen1, ax, xlabel=x_label,
y1 = [obj.vd for obj in c if obj.isdaughter == i8] x2 = [obj.vb for obj in c1 if obj.isdaughter == i8] y2 = [obj.vd for obj in c1 if obj.isdaughter == i8] val1 = scipy.stats.linregress(x1, y1) val2 = scipy.stats.linregress(x2, y2) a[i0, i1, i2, i3, i4, i5, i6, i7, i8, 0] = val1[0] # discrete gen sim result a[i0, i1, i2, i3, i4, i5, i6, i7, i8, 1] = val2[0] # discrete time sim result del c, c1, obs1, temp if par1['modeltype'] in [21, 22]: a[i0, i1, i2, i3, i4, i5, i6, i7, 0, 2] = 0.0 # theory mothers a[i0, i1, i2, i3, i4, i5, i6, i7, 1, 2] = 0.0 else: a[i0, i1, i2, i3, i4, i5, i6, i7, 0, 2] = g.slope_vbvd_m(par1, par1['g1_thresh_std'] * par1['K'] * par1['CD'], par1['g2_std'] * par1[ 'td']) # theory mothers a[i0, i1, i2, i3, i4, i5, i6, i7, 1, 2] = g.slope_vbvd_func(par1, par1[ 'g1_thresh_std'] * par1['K'] * par1[ 'CD'], par1['g2_std'] * par1[ 'td']) # theory daughters # print rank, "time taken", time.clock()-tic # print a[i0, i1, i2, i3, i4, i5, i6, i7, 1, :] # exit()
colorval = scalarmap.to_rgba(values[index]) plt.plot(f, obs[pars[0], pars[1], pars[2], pars[3], :, j, 0, k], label=modeltype[j] + ' $\sigma_i$=' + str(np.round(par1['g1_thresh_std'], 2)) + ' $\sigma_{G2}$=' + str(np.round(par1['g2_std'], 2)) + ' $\sigma_{\lambda}$=' + str(np.round(par1['l_std'], 2)), color=colorval) # plt.plot(frac, slopes[i][j][0][k], color=colorval, marker="o") par1[ 'modeltype'] = 4 # print the model's predicted slope for each different condition print '$\sigma_i$=' + str(np.round( par1['g1_thresh_std'], 2)) + ' $\sigma_{G2}$=' + str( np.round(par1['g2_std'], 2)) + ' $\sigma_{\lambda}$=' + str( np.round(par1['l_std'], 2)) if k == 0: print celltype[k], g.slope_vbvd_func(par1, g1_std[pars[1]], g2_std[pars[2]]) if k == 1: print celltype[k], g.slope_vbvd_m(par1, g1_std[pars[1]], g2_std[pars[2]]) plt.legend(loc=3) plt.title(fullcelltype[k] + ' Constant adder model CD=' + str(np.round(par1['CD'], 2))) plt.xlabel('Daughter volume fraction') plt.xlim(xmin=f[0] - 0.02, xmax=f[-1] + 0.02) plt.ylabel('$V_d$ vs. $V_b$ regression slope') fig.savefig('./modelfigs/model11_12_' + str(celltype[k]) + '2.eps', bbox_inches='tight', dpi=fig.dpi)
for k in range(len(cd)): par1['CD'] = cd[k] obs1, obs2, tg1, tg2 = g.single_par_meas5(par1) # Obs1 are leaf cells, obs2 are entire tree cells slopes[0, :, k] = obs1[0, :] slopes[1, :, k] = obs2[0, :] obs3, tg3 = g.single_par_meas4(par1) tg[0][0].append(tg1[0]) # mothers data tg[0][1].append(tg2[0]) tg[0][2].append(tg3[0]) tg[1][0].append(tg1[1]) # daughters data tg[1][1].append(tg2[1]) tg[1][2].append(tg3[1]) slopes[2, :, k] = obs3[0, :] slopes[3, 0, k] = g.slope_vbvd_m(par1, par1['g1_thresh_std'], par1['g2_std']) slopes[3, 1, k] = g.slope_vbvd_func(par1, par1['g1_thresh_std'], par1['g2_std']) del tg1, tg2, tg3, obs1, obs2, obs3 # np.save('symm_asymm_comp4', slopes) np.save('symm_asymm_tgrow_data', tg) labels = ['Discretized time leaf cells', 'Discretized time tree cells', 'Discrete generations', 'Theory'] celltype = ['Mothers', 'Daughters'] fig = plt.figure(figsize=[16, 7]) for i in range(2): plt.subplot(1, 2, i+1) for j in range(slopes.shape[0]): plt.plot(cd, slopes[j, i, :], label=labels[j]) plt.xlabel('Budded period $CD/t_d$')
# #slopes[k, i, :, 1] = g.slope_vbvd_func(par1, par1['g1_thresh_std'], g2_std_m) # a = np.zeros((X, Y, Z, 6, 2, W)) labels = ['Discr time leaf', 'Discr time tree', 'Discr genr', 'Theory'] fullcelltype = ['Mothers', 'Daughters'] celltype = ['m', 'd'] slopes = np.zeros([len(cd_m), len(g1_std), len(g2_std_m), len(l_std), 2]) for k in range(len(cd_m)): par1['CD'] = cd_m[k] for i in range(len(g1_std_m)): par1['g1_thresh_std'] = g1_std_m[i] for j in range(len(l_std)): par1['l_std'] = l_std[j] slopes[k, i, :, j, 0] = g.slope_vbvd_m(par1, par1['g1_thresh_std'], g2_std_m) slopes[k, i, :, j, 1] = g.slope_vbvd_func(par1, par1['g1_thresh_std'], g2_std_m) obs = np.load('discr_time_tester1_model'+str(par1['modeltype'])+'_K_1.npy') for k in range(2): fig = plt.figure(figsize=[20, 20]) for i in range(len(g1_std)): for j in range(len(g2_std)): ax = fig.add_subplot(len(g1_std), len(g2_std), j+1+i*len(g2_std)) ax.set_title('$\sigma_{i}/\Delta=$' + str(np.round(g1_std[i], 2)) + ' $\sigma_{G2}=$' + str(np.round(g2_std[j], 2))) for h in range(len(l_std[::2])): ax.plot(cd, obs[:, i, j, 0, k, 2*h], linewidth=4.0, label=' Simulation '+'$\sigma_{\lambda}=$' + str(np.round(l_std[2*h], 2))) ax.plot(cd_m, slopes[:, i, j, 2*h, k], label=labels[3]+'$\sigma_{\lambda}=$' + str(np.round(l_std[2*h], 2)))