def melki_rate_error_plot(figure): # results = data.load_data('results/melki_rate_sensitivities.dat') results = data.load_data('results/melki_cooperative_fit.dat') cooperativities, rates, min_rates, max_rates = results[:4] theoretical_rates = 1.0 / (HALFTIME * numpy.sqrt(cooperativities)) errors = numpy.array(numpy.array(rates) - numpy.array(min_rates)) / theoretical_rates rates = numpy.array(rates) / theoretical_rates # with contexts.basic_figure('plots/melki_rate_errors.pdf', with contexts.subplot(figure, (2, 1, 2), title='B', x_label=r'Pi Dissociation Cooperativity, $\rho_d$', y_label=r'$r_d$ [Simulation / Theory]', logscale_x=True, # logscale_y=True ) as axes: axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5) contexts.plot(axes, 'errorbar', cooperativities, rates, errors, fmt='k.') contexts.plot(axes, 'plot', cooperativities, [1 for c in cooperativities], 'r-', linewidth=0.5) axes.set_xlim([0.1, 10**12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) axes.set_ylim([0, 1.2])
def tip_filaments(): random_results = data.load_data('results/depolymerization_timecourses.dat') expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') rtimes, rvalues = numpy.array(random_results[0]), random_results[1:] etimes, evals = numpy.array(expt[0]), expt[1] rtimes -= 300 # with contexts.basic_figure('plots/depoly_tip_filaments.pdf', with contexts.subplot(figure, (2, 2, 3), title='A', x_label='Time [s]', y_label=r'Filament Length [$\mu$m]') as axes: for y in rvalues: y = numpy.array(y) y *= 0.0027 contexts.plot(axes, 'plot', rtimes, y, '-', color='#FFA0A0', linewidth=THIN_LINE) contexts.plot(axes, 'plot', etimes, evals, 'k', linewidth=0.7) axes.set_ylim(0, 15) axes.set_xlim(0, 1000)
def melki_sample_timecourses(figure): data_f_times, data_f = data.load_data("experimental_data/melki_fievez_carlier_1996/factin_concentration.dat") data_p_times, data_p = data.load_data("experimental_data/melki_fievez_carlier_1996/phosphate_concentration.dat") data_p = numpy.array(data_p) sim_f = data.load_data("results/melki_timecourses_f.dat") sim_p = data.load_data("results/melki_timecourses_p.dat") sf_times, sf_vals = sim_f[0], sim_f[1:] sp_times, sp_vals = sim_p[0], sim_p[1:] colors = ["b", "g", "r", "orange"] # labels = [r'$\rho_d\to\,\infty$', r'$\rho_d =\,1$', r'$\rho_d =\,10^4$', r'$\rho_d =\,10^8$'] with contexts.subplot( figure, (1, 1, 1), x_label=r"Time [s]", y_label=r"Concentrations [$\mu$M]" # title='A', ) as axes: axes.fill_between(data_p_times, data_p * (1 - MELKI_ERROR), data_p * (1 + MELKI_ERROR), color="#CCCCCC") axes.plot(data_f_times, data_f, "k--") axes.plot(data_p_times, data_p, "k-", label="Data") for f, p, c in zip(sf_vals, sp_vals, colors): axes.plot(sf_times, f, color=c, linestyle="--") axes.plot(sp_times, p, color=c, linestyle="-") axes.set_ylim([0, 35]) axes.set_xlim([0, 2500]) inset_qof(figure)
def asymptotic_plot(figure): results = data.load_data('results/asymptotic_adppi_v_pi.dat') pis, fractions = results[0], results[1:] with contexts.subplot(figure, (2, 2, 2), title='C', x_label=r'Pi Concentration [$\mu$M]', y_label=r'Asymptotic Fraction [F-ADP-Pi-actin]', logscale_x=True) as axes: # for frac in fractions: # contexts.plot(axes, 'plot', pis, frac) contexts.plot(axes, 'plot', pis, fractions[0], 'b') axes.set_ylim(0, 1) axes.axhline(0.5, 0, 1, linestyle='-', linewidth=0.5, color='k') axes.axvline(HALF_CONCENTRATION, 0, 0.5, linestyle=':', linewidth=0.5, color='k') axes.annotate(r'$c^*$', xy=(HALF_CONCENTRATION, 0.001), xytext=(HALF_CONCENTRATION + 2000, 0.15), arrowprops={'facecolor': 'black', 'arrowstyle': '->'}, size=settings.SMALL_FONT_SIZE) axes.text(4000, 0.8, r'$\rho_d =\,1$', horizontalalignment='right', # verticalalignment='bottom', size=settings.SMALL_FONT_SIZE)
def melki_rate_fit_quality(figure): results = data.load_data('results/melki_cooperative_fit.dat') (cooperativities, rates, min_rates, max_rates, rate_pe, chi2, min_chi2, max_chi2, chi2_pe) = results v_results = data.load_data('results/melki_vectorial_fit.dat') (v_rate, junk, junk, junk, v_chi2, v_min_chi2, v_max_chi2, junk) = zip(*v_results)[0] with contexts.subplot(figure, (2, 1, 2), title='B', x_label=r'$\rho_d$', y_label=r'$\chi^2$ Comparison To Data', logscale_x=True) as axes: axes.fill_between([0.1, 1.0e12], [v_min_chi2, v_min_chi2], v_max_chi2, color='#CCCCFF') axes.axhline(v_chi2, 0, 1, linestyle=':', color='b') axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5) contexts.plot(axes, 'errorbar', cooperativities, chi2, [c - m for c, m in zip(chi2, min_chi2)], fmt='k.') axes.set_xlim([0.1, 10**12]) axes.set_ylim([0, 14]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000])
def melki_sample_timecourses(figure): data_f_times, data_f = data.load_data( 'experimental_data/melki_fievez_carlier_1996/factin_concentration.dat') data_p_times, data_p = data.load_data( 'experimental_data/melki_fievez_carlier_1996/phosphate_concentration.dat') data_p = numpy.array(data_p) sim_f = data.load_data('results/melki_timecourses_f.dat') sim_p = data.load_data('results/melki_timecourses_p.dat') sf_times, sf_vals = sim_f[0], sim_f[1:] sp_times, sp_vals = sim_p[0], sim_p[1:] colors = ['b', 'g', 'r', 'orange'] # labels = [r'$\rho_d\to\,\infty$', r'$\rho_d =\,1$', r'$\rho_d =\,10^4$', r'$\rho_d =\,10^8$'] with contexts.subplot(figure, (1, 1, 1), #title='A', x_label=r'Time [s]', y_label=r'Concentrations [$\mu$M]') as axes: axes.fill_between(data_p_times, data_p * (1 - MELKI_ERROR), data_p * (1 + MELKI_ERROR), color='#CCCCCC') axes.plot(data_f_times, data_f, 'k--') axes.plot(data_p_times, data_p, 'k-', label='Data') for f, p, c in zip(sf_vals, sp_vals, colors): axes.plot(sf_times, f, color=c, linestyle='--') axes.plot(sp_times, p, color=c, linestyle='-') axes.set_ylim([0, 35]) axes.set_xlim([0, 2500]) inset_qof(figure)
def cc_tip(figure): results = data.load_data('results/cc_d_tip.dat') pars, ccs, ds = results with contexts.subplot(figure, (2, 1, 1), title='A', y_label=r'Critical Concentration [$\mu$M]', logscale_x=False, logscale_y=False) as axes: contexts.plot(axes, 'plot', pars, ccs, 'k-') with contexts.subplot(figure, (2, 1, 2), title='B', y_label=r'Diffusion Coefficient [mon^2/s]', x_label=r'Barbed End Pi Dissociation Rate [s$^{-1}$]', logscale_x=False, logscale_y=False) as axes: contexts.plot(axes, 'plot', pars, ds, 'k-')
def vec_tcs(figure): data_f_times, data_f = data.load_data( 'experimental_data/melki_fievez_carlier_1996/factin_concentration.dat') data_p_times, data_p = data.load_data( 'experimental_data/melki_fievez_carlier_1996/phosphate_concentration.dat') data_p = numpy.array(data_p) sim_p = data.load_data('results/melki_timecourses_p.dat') sp_times, sp_vals = sim_p[0], sim_p[1] nbesim_p = data.load_data('results/melki_nonbe_tc_p.dat') colors = ['b', 'g', 'r', 'orange'] labels = ['Vectorial', 'Random', r'$\rho_d = 10^4$', r'$\rho_d = 10^8$'] with contexts.subplot(figure, (1, 1, 1), x_label=r'Time [s]', y_label=r'Concentrations [$\mu$M]') as axes: axes.fill_between(data_p_times, data_p * (1 - MELKI_ERROR), data_p * (1 + MELKI_ERROR), color='#CCCCCC') axes.plot(data_f_times, data_f, 'k--') axes.plot(data_p_times, data_p, 'k-', label='Data') # BE included axes.plot(sp_times, sp_vals, color='b', linestyle='-', label='BE') # Non-BE axes.plot(nbesim_p[0], nbesim_p[1], color='r', linestyle='-', label='Non-BE') axes.set_ylim([0, 35]) axes.set_xlim([0, 2500]) axes.legend(loc=4)
def copoly_timecourse_plot(figure, xmax=1000, ymax=35): timecourses = data.load_data('results/copoly_timecourse.dat') with contexts.subplot(figure, (2, 1, 1), title='A', x_label='Time [s]', y_label=r'Concentrations [$\mu$M]') as axes: # factin contexts.plot(axes, 'plot', timecourses[0], timecourses[1], 'b-.') # pi contexts.plot(axes, 'plot', timecourses[0], timecourses[3], 'g-') axes.set_xlim(0, xmax) axes.set_ylim(0, ymax) # Lines to highlight halftime axes.axhline(15, 0, 1, linestyle='-', linewidth=0.5, color='k') axes.axvline(TIMECOURSE_HALFTIME, 0, 15.0 / 35, linestyle=':', linewidth=0.5, color='k') # Halftime label with arrow # axes.annotate('halftime', xy=(TIMECOURSE_HALFTIME, 0.05), axes.annotate(r'$t_{\frac{1}{2}}$', xy=(TIMECOURSE_HALFTIME, 0.05), xytext=(TIMECOURSE_HALFTIME + 200, 5), arrowprops={'facecolor': 'black', 'arrowstyle': '->'}, size=settings.SMALL_FONT_SIZE) # Curve labels axes.text(0.5 * xmax, 30.5, '[F-actin]', horizontalalignment='center', verticalalignment='bottom', size=settings.SMALL_FONT_SIZE) axes.text(600, 20.5, '[Pi]', horizontalalignment='right', verticalalignment='bottom', size=settings.SMALL_FONT_SIZE)
def copoly_adp_only(figure): adp_halftimes = data.load_data('results/adp_copoly_halftimes.dat') adp_v_halftimes = data.load_data( 'results/adp_copoly_halftimes_vectorial.dat') fractions, halftimes = adp_halftimes[0], adp_halftimes[1:] v_fractions, v_halftimes = adp_v_halftimes[0], adp_v_halftimes[1] with contexts.subplot( figure, (1, 1, 1), #title='B', y_label=r'[Pi] Halftime [s]', x_label=r'% ADP-actin') as axes: for ht, lt, in zip(halftimes, LINETYPES): # contexts.plot(axes, 'plot', fractions, numpy.array(ht)/ht[0], lt) contexts.plot(axes, 'plot', fractions, numpy.array(ht), lt) # contexts.plot(axes, 'plot', v_fractions, numpy.array(v_halftimes)/v_halftimes[0], 'k-') contexts.plot(axes, 'plot', v_fractions, numpy.array(v_halftimes), 'k-') new_x_tick_labels = [0, 5, 10, 15, 20] axes.set_xticks([0, 0.05, 0.1, 0.15, 0.2]) axes.set_xticklabels(new_x_tick_labels)
def stacked_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot( figure, (1, 1, 1) # x_label=r'Time [s]', # y_label=r'Filament Length [$\mu$M]' ) as axes: plot_rv_traces(axes, expt) plot_be_traces(axes, expt) plot_coop_traces(axes, expt) plot_fast_traces(axes, expt) axes.set_xlim([0, 1100]) axes.set_ylim([0, 30]) axes.set_xticks([]) # axes.set_xticks([0, 200, 400, 600, 800, 1000]) axes.set_yticks([]) axes.set_frame_on(False) add_scale_bar( axes, (200, 2), # scale_position=(0.875, 0.675)) scale_position=(0.05, 0.45)) inset_qof(figure)
def normal_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot(figure, (2, 2, 1), title='A', x_label=r'Time [s]', y_label=r'Filament Length [$\mu$M]') as axes: # Random filaments plot_traces(axes, 'results/depoly_tc_random.dat', color='#80CC80', thickness=THIN_LINE) # Vectorial filaments plot_traces( axes, 'results/depoly_tc_vectorial.dat', color='#BBBB80', # color='#8080FF', thickness=THIN_LINE) # Vec non be # plot_traces(top_left_axes, # 'results/depoly_nonbe_tc.dat', # color='#80FF80', thickness=THIN_LINE) # Data on top axes.plot(expt[0], expt[1], 'k.', markersize=1, clip_on=False)
def normal_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot(figure, (2, 2, 1), title='A', x_label=r'Time [s]', y_label=r'Filament Length [$\mu$M]') as axes: # Random filaments plot_traces(axes, 'results/depoly_tc_random.dat', color='#80CC80', thickness=THIN_LINE) # Vectorial filaments plot_traces(axes, 'results/depoly_tc_vectorial.dat', color='#BBBB80', # color='#8080FF', thickness=THIN_LINE) # Vec non be # plot_traces(top_left_axes, # 'results/depoly_nonbe_tc.dat', # color='#80FF80', thickness=THIN_LINE) # Data on top axes.plot(expt[0], expt[1], 'k.', markersize=1, clip_on=False)
def melki_rate_error_plot(figure): # results = data.load_data('results/melki_rate_sensitivities.dat') results = data.load_data("results/melki_cooperative_fit.dat") cooperativities, rates, min_rates, max_rates = results[:4] theoretical_rates = 1.0 / (HALFTIME * numpy.sqrt(cooperativities)) errors = numpy.array(numpy.array(rates) - numpy.array(min_rates)) / theoretical_rates rates = numpy.array(rates) / theoretical_rates # with contexts.basic_figure('plots/melki_rate_errors.pdf', with contexts.subplot( figure, (2, 1, 2), title="B", x_label=r"Pi Dissociation Cooperativity, $\rho_d$", y_label=r"$r_d$ [Simulation / Theory]", logscale_x=True, # logscale_y=True ) as axes: axes.axvline(RHO_CRIT, 0, 1, linestyle="--", color="g", linewidth=0.5) contexts.plot(axes, "errorbar", cooperativities, rates, errors, fmt="k.") contexts.plot(axes, "plot", cooperativities, [1 for c in cooperativities], "r-", linewidth=0.5) axes.set_xlim([0.1, 10 ** 12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) axes.set_ylim([0, 1.2])
def cooperativity_plot(figure): x, y = data.load_data('results/rho_v_pi.dat') with contexts.subplot(figure, (2, 2, 4), title='D', # x_label=r'Asymptotic Fraction [F-ADP-Pi-actin]', x_label=r'[Pi]$_{\frac{1}{2}}$ [$\mu$M]', y_label=r'Pi Dissociation Cooperativity, $\rho_d$', logscale_x=True, logscale_y=True) as axes: contexts.plot(axes, 'plot', x, y, 'k')
def coop_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot( figure, (1, 2, 2), #title='E', x_label=r'Time [s]') as axes: axes.plot(expt[0], expt[1], 'k.', markersize=1, clip_on=False)
def coop_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot(figure, (1, 2, 2), #title='E', x_label=r'Time [s]' ) as axes: axes.plot(expt[0], expt[1], 'k.', markersize=1, clip_on=False)
def linear_lagtime_plot( figure, coop_linestyles=[ 'k--', # Random 'r--', # XXX Consider making green 'b--', 'g--' ], cooperative_filename='results/fnc_cooperative_lagtimes.dat', vectorial_filename='results/fnc_vectorial_lagtimes.dat', data_filename='experimental_data/carlier_1986/lagtimes.dat'): d_fncs, d_lagtimes = data.load_data(data_filename) d_norm_lagtimes = d_lagtimes[0] / numpy.array(d_lagtimes) coop_data = data.load_data(cooperative_filename) coop_fncs, coop_lagtimes = coop_data[0], coop_data[1:] coop_fncs = numpy.array(coop_fncs) * 1000 v_fncs, v_lagtimes = data.load_data(vectorial_filename) v_fncs = numpy.array(v_fncs) * 1000 # index 0 is at fnc = 1.1 nM v_lagtimes = v_lagtimes[0] / numpy.array(v_lagtimes) th_fncs = numpy.linspace(1, 20, 100) v_theory = th_fncs / 1.1 r_theory = numpy.ones(len(th_fncs)) with contexts.subplot( figure, (1, 1, 1), #title='A', x_label=r'$n$ [nM]', y_label=r'$t_{lag}^{-1}$ [AU]') as axes: # Cooperative simulations for lagtimes, linestyle in zip(coop_lagtimes, coop_linestyles): # index 0 is at fnc = 1.1 nM y = lagtimes[0] / numpy.array(lagtimes) axes.plot(coop_fncs, y, linestyle, dashes=(3, 3.5)) # Vectorial simulations axes.plot(v_fncs, v_lagtimes, 'k--', dashes=(3, 3.5)) # Vectorial theory axes.plot(th_fncs, v_theory, 'k-', linewidth=0.5) # Random theory axes.plot(th_fncs, r_theory, 'k-', linewidth=0.5) # Carlier 1986 data axes.plot(d_fncs, d_norm_lagtimes, 'ko') axes.set_xlim([0, 22]) x_ticks = [1.1, 5, 10, 15, 20] axes.set_xticks(x_ticks) axes.set_xticklabels(map(str, x_ticks)) inset_qof_plot(figure)
def non_be_quality(figure): results = data.load_data('results/melki_cooperative_fit.dat') (cooperativities, rates, min_rates, max_rates, rate_pe, chi2, min_chi2, max_chi2, chi2_pe) = results nb_results = data.load_data('results/melki_non_be_coop_fit.dat') (nbc, nbr, nbminr, nbmaxr, nbrpe, nbchi2, nbminc2, nbmaxc2, nbcpe) = nb_results nop_results = data.load_data('results/melki_no_pointed_coop_fit.dat') (nbc, nopr, junk, junk, jukn, nopc2, nopminc2, nopmaxc2, junk) = nop_results v_results = data.load_data('results/melki_vectorial_fit.dat') (v_rate, junk, junk, junk, v_chi2, v_min_chi2, v_max_chi2, junk) = zip(*v_results)[0] v_nb_results = data.load_data('results/melki_non_be_vec_fit.dat') (v_nbr, v_nbminr, v_nbmaxr, v_nbrpe, v_nbchi2, v_nbminc2, v_nbmaxc2, v_nbcpe) = zip(*v_nb_results)[0] with contexts.subplot(figure, (2, 1, 2), title='B', x_label=r'Pi Dissociation Cooperativity, $\rho_d$', y_label=r'$\chi^2$ Comparison To Data', logscale_x=True) as axes: axes.fill_between([0.1, 1.0e12], [v_min_chi2, v_min_chi2], v_max_chi2, color='#AAAAAA') axes.fill_between([0.1, 1.0e12], [v_nbminc2, v_nbminc2], v_nbmaxc2, color='#CCCCFF') axes.axhline(v_chi2, 0, 1, linestyle=':', color='k') axes.axhline(v_nbchi2, 0, 1, linestyle=':', color='b') axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5) contexts.plot(axes, 'errorbar', cooperativities, chi2, [c - m for c, m in zip(chi2, min_chi2)], fmt='k.') contexts.plot(axes, 'errorbar', cooperativities, nbchi2, [c - m for c, m in zip(nbchi2, nbminc2)], fmt='b.') contexts.plot(axes, 'errorbar', cooperativities, nopc2, [c - m for c, m in zip(nopc2, nopminc2)], fmt='g.') axes.set_xlim([0.1, 10**12]) axes.set_ylim([0, 14]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000])
def cc_tip(figure): results = data.load_data('results/cc_d_tip.dat') pars, ccs, ds = results with contexts.subplot(figure, (2, 1, 1), title='A', y_label=r'Critical Concentration [$\mu$M]', logscale_x=False, logscale_y=False) as axes: contexts.plot(axes, 'plot', pars, ccs, 'k-') with contexts.subplot( figure, (2, 1, 2), title='B', y_label=r'Diffusion Coefficient [mon^2/s]', x_label=r'Barbed End Pi Dissociation Rate [s$^{-1}$]', logscale_x=False, logscale_y=False) as axes: contexts.plot(axes, 'plot', pars, ds, 'k-')
def melki_rate_plot(figure): # results = data.load_data('results/melki_rates.dat') results = data.load_data('results/melki_cooperative_fit.dat') v_results = data.load_data('results/melki_vectorial_fit.dat') # results = data.load_data('results/melki_rate_sensitivities.dat') # cooperativities, rates, statistical_errors, halftimes, hte = results # cooperativities, rates, errors = results[:3] cooperativities, rates = results[:2] v_rate_pack = zip(*v_results)[0][:3] # with contexts.basic_figure('plots/melki_rates.pdf', with contexts.subplot(figure, (1, 1, 1), #title='A', x_label=r'$\rho_d$', # y_label=r'Non-Boundary Pi Dissociation Rate, $r_d$ [$s^{-1}$]', y_label=r'$r_d$ [$s^{-1}$]', logscale_x=True, logscale_y=True) as axes: contexts.plot(axes, 'plot', cooperativities, rates, 'k.') # contexts.plot(axes, 'errorbar', cooperativities, rates, # errors, fmt='k.') cooperativities = numpy.array(cooperativities) contexts.plot(axes, 'plot', cooperativities, 1.0 / (HALFTIME * numpy.sqrt(cooperativities)), 'r-', linewidth=0.5) axes_2 = axes.twinx() axes_2.set_yscale('log') axes_2.set_ylabel(r'$R_d$ [$s^{-1}$]', size=settings.LABEL_FONT_SIZE) for label in axes_2.get_yticklabels(): label.set_size(settings.TICK_FONT_SIZE) axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5, dashes=(3, 3)) axes.set_yticks([1.0e-9, 1.0e-8, 1.0e-7, 1.0e-6, 1.0e-5, 1.0e-4, 1.0e-3]) axes.minorticks_off() contexts.plot(axes_2, 'plot', cooperativities, cooperativities * rates, 'k.', markerfacecolor='None') axes_2.axhline(v_rate_pack[0], 0, 1, linestyle=':', color='b') axes_2.set_ylim([1.0e-4, 100]) axes_2.set_yticks([1.0e-3, 1.0e-2, 1.0e-1, 1, 1.0e1]) axes_2.minorticks_off() axes.set_xlim([0.1, 10**11]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) inset_error_plot(figure)
def crit_conc(figure): results = data.load_data('results/cc_d_cooperative.dat') v_results = data.load_data('results/cc_d_vectorial.dat') coops, ccs, ds = results vcc, vd = v_results[0][0], v_results[1][0] with contexts.subplot(figure, (2, 1, 1), title='A', y_label=r'Critical Concentration [$\mu$M]', logscale_x=True, logscale_y=False) as axes: contexts.plot(axes, 'plot', coops, ccs, 'k-') axes.axhline(vcc, 0, 1, linestyle=':', linewidth=0.5, color='k') axes.set_ylim(0.1, 0.2) with contexts.subplot(figure, (2, 1, 2), title='B', y_label=r'Diffusion Coefficient [mon^2/s]', logscale_x=True, logscale_y=False) as axes: contexts.plot(axes, 'plot', coops, ds, 'k-') axes.axhline(vd, 0, 1, linestyle=':', linewidth=0.5, color='k')
def timecourse_plot(figure, xmax=3600, ymax=35): timecourses = data.load_data('results/pi_saturation_timecourse.dat') with contexts.subplot(figure, (2, 2, 1), title='A', x_label='Time [s]', y_label=r'Concentrations [$\mu$M]') as axes: # factin contexts.plot(axes, 'plot', timecourses[0], timecourses[1], 'b-.') # adp-pi contexts.plot(axes, 'plot', timecourses[0], timecourses[3], 'g-') # pi contexts.plot(axes, 'plot', timecourses[0], timecourses[5], 'r-') axes.set_xlim(0, xmax) axes.set_ylim(0, ymax) # Lines to highlight halftime axes.axhline(15, 0, float(TIMECOURSE_HALFTIME) / xmax, linestyle=':', linewidth=0.5, color='k') axes.axvline(TIMECOURSE_HALFTIME, 0, 15.0 / 35, linestyle=':', linewidth=0.5, color='k') # Halftime label with arrow axes.annotate('halftime', xy=(TIMECOURSE_HALFTIME, 0.05), xytext=(TIMECOURSE_HALFTIME + 200, 5), arrowprops={ 'facecolor': 'black', 'arrowstyle': '->' }, size=settings.SMALL_FONT_SIZE) # Curve labels axes.text(0.5 * xmax, 30.5, '[F-actin]', horizontalalignment='center', verticalalignment='bottom', size=settings.SMALL_FONT_SIZE) axes.text(600, 20.5, '[ADP-Pi-actin]', horizontalalignment='right', verticalalignment='bottom', size=settings.SMALL_FONT_SIZE)
def linear_lagtime_plot(figure, coop_linestyles=['k--', # Random 'r--', # XXX Consider making green 'b--', 'g--' ], cooperative_filename='results/fnc_cooperative_lagtimes.dat', vectorial_filename='results/fnc_vectorial_lagtimes.dat', data_filename='experimental_data/carlier_1986/lagtimes.dat'): d_fncs, d_lagtimes = data.load_data(data_filename) d_norm_lagtimes = d_lagtimes[0] / numpy.array(d_lagtimes) coop_data = data.load_data(cooperative_filename) coop_fncs, coop_lagtimes = coop_data[0], coop_data[1:] coop_fncs = numpy.array(coop_fncs) * 1000 v_fncs, v_lagtimes = data.load_data(vectorial_filename) v_fncs = numpy.array(v_fncs) * 1000 # index 0 is at fnc = 1.1 nM v_lagtimes = v_lagtimes[0] / numpy.array(v_lagtimes) th_fncs = numpy.linspace(1, 20, 100) v_theory = th_fncs / 1.1 r_theory = numpy.ones(len(th_fncs)) with contexts.subplot(figure, (1, 1, 1), #title='A', x_label=r'$n$ [nM]', y_label=r'$t_{lag}^{-1}$ [AU]') as axes: # Cooperative simulations for lagtimes, linestyle in zip(coop_lagtimes, coop_linestyles): # index 0 is at fnc = 1.1 nM y = lagtimes[0] / numpy.array(lagtimes) axes.plot(coop_fncs, y, linestyle, dashes=(3,3.5)) # Vectorial simulations axes.plot(v_fncs, v_lagtimes, 'k--', dashes=(3,3.5)) # Vectorial theory axes.plot(th_fncs, v_theory, 'k-', linewidth=0.5) # Random theory axes.plot(th_fncs, r_theory, 'k-', linewidth=0.5) # Carlier 1986 data axes.plot(d_fncs, d_norm_lagtimes, 'ko') axes.set_xlim([0, 22]) x_ticks = [1.1, 5, 10, 15, 20] axes.set_xticks(x_ticks) axes.set_xticklabels(map(str, x_ticks)) inset_qof_plot(figure)
def cooperativity_plot(figure): x, y = data.load_data('results/rho_v_pi.dat') with contexts.subplot( figure, (2, 2, 4), title='D', # x_label=r'Asymptotic Fraction [F-ADP-Pi-actin]', x_label=r'[Pi]$_{\frac{1}{2}}$ [$\mu$M]', y_label=r'Pi Dissociation Cooperativity, $\rho_d$', logscale_x=True, logscale_y=True) as axes: contexts.plot(axes, 'plot', x, y, 'k')
def melki_rate_plot(figure): # results = data.load_data('results/melki_rates.dat') results = data.load_data("results/melki_cooperative_fit.dat") v_results = data.load_data("results/melki_vectorial_fit.dat") # results = data.load_data('results/melki_rate_sensitivities.dat') # cooperativities, rates, statistical_errors, halftimes, hte = results # cooperativities, rates, errors = results[:3] cooperativities, rates = results[:2] v_rate_pack = zip(*v_results)[0][:3] # with contexts.basic_figure('plots/melki_rates.pdf', with contexts.subplot( figure, (1, 1, 1), # title='A', x_label=r"$\rho_d$", # y_label=r'Non-Boundary Pi Dissociation Rate, $r_d$ [$s^{-1}$]', y_label=r"$r_d$ [$s^{-1}$]", logscale_x=True, logscale_y=True, ) as axes: contexts.plot(axes, "plot", cooperativities, rates, "k.") # contexts.plot(axes, 'errorbar', cooperativities, rates, # errors, fmt='k.') cooperativities = numpy.array(cooperativities) contexts.plot( axes, "plot", cooperativities, 1.0 / (HALFTIME * numpy.sqrt(cooperativities)), "r-", linewidth=0.5 ) axes_2 = axes.twinx() axes_2.set_yscale("log") axes_2.set_ylabel(r"$R_d$ [$s^{-1}$]", size=settings.LABEL_FONT_SIZE) for label in axes_2.get_yticklabels(): label.set_size(settings.TICK_FONT_SIZE) axes.axvline(RHO_CRIT, 0, 1, linestyle="--", color="g", linewidth=0.5, dashes=(3, 3)) axes.set_yticks([1.0e-9, 1.0e-8, 1.0e-7, 1.0e-6, 1.0e-5, 1.0e-4, 1.0e-3]) axes.minorticks_off() contexts.plot(axes_2, "plot", cooperativities, cooperativities * rates, "k.", markerfacecolor="None") axes_2.axhline(v_rate_pack[0], 0, 1, linestyle=":", color="b") axes_2.set_ylim([1.0e-4, 100]) axes_2.set_yticks([1.0e-3, 1.0e-2, 1.0e-1, 1, 1.0e1]) axes_2.minorticks_off() axes.set_xlim([0.1, 10 ** 11]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) inset_error_plot(figure)
def random_vectorial_timecourse(figure): random_results = data.load_data('results/depoly_timecourse_random.dat') vectorial_results = data.load_data( 'results/depoly_timecourse_vectorial.dat') expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') rtimes, rvalues = numpy.array(random_results[0]), random_results[1:] vtimes, vvalues = numpy.array(vectorial_results[0]), vectorial_results[1:] etimes, evals = numpy.array(expt[0]), expt[1] rtimes -= 300 vtimes -= 300 # with contexts.basic_figure('plots/depoly_rv_timecourses.pdf', with contexts.subplot( figure, (2, 2, 1), title='A', # x_label='Time [s]', y_label=r'Filament Length [$\mu$m]') as axes: for y in rvalues: y = numpy.array(y) y *= 0.0027 contexts.plot( axes, 'plot', rtimes, y, '-', color='#FF8080', # color='#FFA0A0', linewidth=THIN_LINE) for y in vvalues: y = numpy.array(y) y *= 0.0027 contexts.plot( axes, 'plot', vtimes, y, '-', color='#8080FF', # color='#A0A0FF', linewidth=THIN_LINE) contexts.plot(axes, 'plot', etimes, evals, 'k', linewidth=0.7) axes.set_ylim(0, 15) axes.set_xlim(0, 1000)
def halftime_plot(figure, data_filename='results/halftime_v_rho.dat'): results = data.load_data(data_filename) pis, halftimes = results[0], results[1:] pis = numpy.array(pis) / 1000.0 # with contexts.subplot(figure, (2, 2, 3), title='B', with contexts.subplot(figure, (1, 1, 1), #title='B', x_label=r'Pi Concentration [mM]', y_label=r'[Pi] Halftime [s]', logscale_x=True, logscale_y=False) as axes: for ht in halftimes: contexts.plot(axes, 'plot', pis, ht) axes.set_xlim(0, 1000) axes.set_ylim(0, 3000)
def halftime_plot(figure, data_filename='results/halftime_v_rho.dat'): results = data.load_data(data_filename) pis, halftimes = results[0], results[1:] pis = numpy.array(pis) / 1000.0 # with contexts.subplot(figure, (2, 2, 3), title='B', with contexts.subplot( figure, (1, 1, 1), #title='B', x_label=r'Pi Concentration [mM]', y_label=r'[Pi] Halftime [s]', logscale_x=True, logscale_y=False) as axes: for ht in halftimes: contexts.plot(axes, 'plot', pis, ht) axes.set_xlim(0, 1000) axes.set_ylim(0, 3000)
def non_be_rates(figure): results = data.load_data('results/melki_cooperative_fit.dat') nb_results = data.load_data('results/melki_non_be_coop_fit.dat') nop_results = data.load_data('results/melki_no_pointed_coop_fit.dat') cooperativities, rates, min_rates, max_rates = results[:4] nbc, nbr, nb_minr, nb_maxr = nb_results[:4] nopc, nopr, nopminr, nopmaxr = nop_results[:4] theoretical_rates = 1.0 / (HALFTIME * numpy.sqrt(cooperativities)) errors = numpy.array(numpy.array(rates) - numpy.array(min_rates)) / theoretical_rates rates = numpy.array(rates) / theoretical_rates nberrors = numpy.array(numpy.array(nbr) - numpy.array(nb_minr)) / theoretical_rates nbrates = numpy.array(nbr) / theoretical_rates noperrors = numpy.array(numpy.array(nopr) - numpy.array(nopminr)) / theoretical_rates noprates = numpy.array(nopr) / theoretical_rates with contexts.subplot(figure, (2, 1, 1), title='A', # x_label=r'Pi Dissociation Cooperativity, $\rho_d$', y_label=r'$r_d$ [Simulation / Theory]', logscale_x=True, ) as axes: axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5) # With enhanced BE dissociation rate contexts.plot(axes, 'errorbar', cooperativities, rates, errors, fmt='k.') # Without enhanced BE dissociation rate contexts.plot(axes, 'errorbar', cooperativities, nbrates, nberrors, fmt='b.') # No pointed end kinetics contexts.plot(axes, 'errorbar', cooperativities, noprates, noperrors, fmt='g.') contexts.plot(axes, 'plot', cooperativities, [1 for c in cooperativities], 'r-', linewidth=0.5) axes.set_xlim([0.1, 10**12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) axes.set_ylim([0, 1.2])
def melki_rate_fit_quality(figure): results = data.load_data("results/melki_cooperative_fit.dat") (cooperativities, rates, min_rates, max_rates, rate_pe, chi2, min_chi2, max_chi2, chi2_pe) = results v_results = data.load_data("results/melki_vectorial_fit.dat") (v_rate, junk, junk, junk, v_chi2, v_min_chi2, v_max_chi2, junk) = zip(*v_results)[0] with contexts.subplot( figure, (2, 1, 2), title="B", x_label=r"$\rho_d$", y_label=r"$\chi^2$ Comparison To Data", logscale_x=True ) as axes: axes.fill_between([0.1, 1.0e12], [v_min_chi2, v_min_chi2], v_max_chi2, color="#CCCCFF") axes.axhline(v_chi2, 0, 1, linestyle=":", color="b") axes.axvline(RHO_CRIT, 0, 1, linestyle="--", color="g", linewidth=0.5) contexts.plot(axes, "errorbar", cooperativities, chi2, [c - m for c, m in zip(chi2, min_chi2)], fmt="k.") axes.set_xlim([0.1, 10 ** 12]) axes.set_ylim([0, 14]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000])
def cooperative_timecourse(figure): filament_results = data.load_data( 'results/depoly_timecourse_rho_200000.dat') mean_results = data.load_data('results/depoly_mean_tc.dat') expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') ftimes, fvalues = numpy.array(filament_results[0]), filament_results[1:] mtimes, mvalues = (numpy.array(mean_results[0]), 0.0027 * numpy.array(mean_results[1])) etimes, evals = numpy.array(expt[0]), expt[1] ftimes -= 300 mtimes -= 300 # with contexts.basic_figure('plots/depoly_coop_timecourses.pdf', with contexts.subplot(figure, (2, 2, 4), title='D', x_label='Time [s]' # y_label=r'Filament Length [$\mu$m]' ) as axes: for y in fvalues: y = numpy.array(y) y *= 0.0027 contexts.plot( axes, 'plot', ftimes, y, '-', # color='#FF8080', # color='#80FF80', color='#8080FF', linewidth=THIN_LINE) contexts.plot(axes, 'plot', etimes, evals, 'k-', linewidth=0.7) contexts.plot(axes, 'plot', mtimes, mvalues, 'r-', linewidth=0.7) axes.set_ylim(0, 15) axes.set_xlim(0, 1000)
def tip_fit(figure): best_tc = data.load_data('results/depoly_timecourse.dat') times, values = numpy.array(best_tc[0]), numpy.array(best_tc[1]) times -= 300 values *= 0.0027 expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') etimes, evals = numpy.array(expt[0]), expt[1] # with contexts.basic_figure('plots/depoly_tip_fit_timecourse.pdf', with contexts.subplot(figure, (2, 2, 2), title='B' # x_label='Time [s]', # y_label=r'Filament Length [$\mu$m]' ) as axes: contexts.plot(axes, 'plot', times, values, 'r-') contexts.plot(axes, 'plot', etimes, evals, 'k-') axes.set_xlim(0, 1000) axes.set_ylim(0, 15)
def copoly_adp_only(figure): adp_halftimes = data.load_data('results/adp_copoly_halftimes.dat') adp_v_halftimes = data.load_data('results/adp_copoly_halftimes_vectorial.dat') fractions, halftimes = adp_halftimes[0], adp_halftimes[1:] v_fractions, v_halftimes = adp_v_halftimes[0], adp_v_halftimes[1] with contexts.subplot(figure, (1, 1, 1), #title='B', y_label=r'[Pi] Halftime [s]', x_label=r'% ADP-actin') as axes: for ht, lt, in zip(halftimes, LINETYPES): # contexts.plot(axes, 'plot', fractions, numpy.array(ht)/ht[0], lt) contexts.plot(axes, 'plot', fractions, numpy.array(ht), lt) # contexts.plot(axes, 'plot', v_fractions, numpy.array(v_halftimes)/v_halftimes[0], 'k-') contexts.plot(axes, 'plot', v_fractions, numpy.array(v_halftimes), 'k-') new_x_tick_labels = [0, 5, 10, 15, 20] axes.set_xticks([0, 0.05, 0.1, 0.15, 0.2]) axes.set_xticklabels(new_x_tick_labels)
def vec_tcs(figure): data_f_times, data_f = data.load_data( 'experimental_data/melki_fievez_carlier_1996/factin_concentration.dat') data_p_times, data_p = data.load_data( 'experimental_data/melki_fievez_carlier_1996/phosphate_concentration.dat' ) data_p = numpy.array(data_p) sim_p = data.load_data('results/melki_timecourses_p.dat') sp_times, sp_vals = sim_p[0], sim_p[1] nbesim_p = data.load_data('results/melki_nonbe_tc_p.dat') colors = ['b', 'g', 'r', 'orange'] labels = ['Vectorial', 'Random', r'$\rho_d = 10^4$', r'$\rho_d = 10^8$'] with contexts.subplot(figure, (1, 1, 1), x_label=r'Time [s]', y_label=r'Concentrations [$\mu$M]') as axes: axes.fill_between(data_p_times, data_p * (1 - MELKI_ERROR), data_p * (1 + MELKI_ERROR), color='#CCCCCC') axes.plot(data_f_times, data_f, 'k--') axes.plot(data_p_times, data_p, 'k-', label='Data') # BE included axes.plot(sp_times, sp_vals, color='b', linestyle='-', label='BE') # Non-BE axes.plot(nbesim_p[0], nbesim_p[1], color='r', linestyle='-', label='Non-BE') axes.set_ylim([0, 35]) axes.set_xlim([0, 2500]) axes.legend(loc=4)
def random_vectorial_timecourse(figure): random_results = data.load_data('results/depoly_timecourse_random.dat') vectorial_results = data.load_data('results/depoly_timecourse_vectorial.dat') expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') rtimes, rvalues = numpy.array(random_results[0]), random_results[1:] vtimes, vvalues = numpy.array(vectorial_results[0]), vectorial_results[1:] etimes, evals = numpy.array(expt[0]), expt[1] rtimes -= 300 vtimes -= 300 # with contexts.basic_figure('plots/depoly_rv_timecourses.pdf', with contexts.subplot(figure, (2, 2, 1), title='A', # x_label='Time [s]', y_label=r'Filament Length [$\mu$m]') as axes: for y in rvalues: y = numpy.array(y) y *= 0.0027 contexts.plot(axes, 'plot', rtimes, y, '-', color='#FF8080', # color='#FFA0A0', linewidth=THIN_LINE) for y in vvalues: y = numpy.array(y) y *= 0.0027 contexts.plot(axes, 'plot', vtimes, y, '-', color='#8080FF', # color='#A0A0FF', linewidth=THIN_LINE) contexts.plot(axes, 'plot', etimes, evals, 'k', linewidth=0.7) axes.set_ylim(0, 15) axes.set_xlim(0, 1000)
def asymptotic_plot(figure): results = data.load_data('results/asymptotic_adppi_v_pi.dat') pis, fractions = results[0], results[1:] with contexts.subplot(figure, (2, 2, 2), title='C', x_label=r'Pi Concentration [$\mu$M]', y_label=r'Asymptotic Fraction [F-ADP-Pi-actin]', logscale_x=True) as axes: # for frac in fractions: # contexts.plot(axes, 'plot', pis, frac) contexts.plot(axes, 'plot', pis, fractions[0], 'b') axes.set_ylim(0, 1) axes.axhline(0.5, 0, 1, linestyle='-', linewidth=0.5, color='k') axes.axvline(HALF_CONCENTRATION, 0, 0.5, linestyle=':', linewidth=0.5, color='k') axes.annotate(r'$c^*$', xy=(HALF_CONCENTRATION, 0.001), xytext=(HALF_CONCENTRATION + 2000, 0.15), arrowprops={ 'facecolor': 'black', 'arrowstyle': '->' }, size=settings.SMALL_FONT_SIZE) axes.text( 4000, 0.8, r'$\rho_d =\,1$', horizontalalignment='right', # verticalalignment='bottom', size=settings.SMALL_FONT_SIZE)
def qof_plot(figure): coop_qof = data.load_data('results/fnc_cooperative_qof.dat') vec_qof = data.load_data('results/fnc_vectorial_qof.dat') coops, qof, min_qof, max_qof, pct_err = coop_qof err = [m - q for m, q in zip(max_qof, qof)] with contexts.subplot(figure, (2, 1, 2), title='B', x_label=r'$\rho_d$', y_label=r'Lag-time Quality of Fit, $\chi^2$', logscale_x=True, logscale_y=False) as axes: axes.fill_between([0.1, 1.0e12], [vec_qof[1][0], vec_qof[1][0]], vec_qof[2][0], color='#CCCCFF') axes.axhline(0, 0, 1, color='k', linestyle='-', linewidth=0.5) axes.axhline(vec_qof[0], 0, 1, color='b', linestyle=':') axes.axvline(RHO_CRIT, 0, 1, color='g', linestyle='--', linewidth=0.5) axes.errorbar(coops, qof, err, fmt='k.') axes.set_ylim([-5, None]) axes.set_xlim([0.1, 10**12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000])
def tip_fit(figure): best_tc = data.load_data('results/depoly_timecourse.dat') times, values = numpy.array(best_tc[0]), numpy.array(best_tc[1]) times -= 300 values *= 0.0027 expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') etimes, evals = numpy.array(expt[0]), expt[1] # with contexts.basic_figure('plots/depoly_tip_fit_timecourse.pdf', with contexts.subplot( figure, (2, 2, 2), title='B' # x_label='Time [s]', # y_label=r'Filament Length [$\mu$m]' ) as axes: contexts.plot(axes, 'plot', times, values, 'r-') contexts.plot(axes, 'plot', etimes, evals, 'k-') axes.set_xlim(0, 1000) axes.set_ylim(0, 15)
def coop_qof(figure): coop_data = data.load_data('results/depoly_cooperative_qof.dat') vec_data = data.load_data('results/depoly_vectorial_qof.dat') rhos, chis, minchis, maxchis, pct_chis = coop_data errs = numpy.array(chis) - numpy.array(minchis) vchi, vminchi, vmaxchi, vpct_chi = zip(*vec_data)[0] with contexts.subplot(figure, (2, 2, 3), title='E', x_label=r'$\rho_d$', y_label=r'Quality of Fit, $\Delta^2$', logscale_x=True) as axes: axes.fill_between([0.1, 1.0e12], [vminchi, vminchi], vmaxchi, color='#CCCCFF') axes.axhline(vchi, 0, 1, color='b', linestyle=':') axes.plot(rhos, chis, 'k.') axes.errorbar(rhos, chis, errs, fmt='k.') axes.set_ylim([0, 8]) axes.set_xlim([0.1, 10**12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000])
def stacked_timecourses(figure): expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') with contexts.subplot(figure, (1, 1, 1) # x_label=r'Time [s]', # y_label=r'Filament Length [$\mu$M]' ) as axes: plot_rv_traces(axes, expt) plot_be_traces(axes, expt) plot_coop_traces(axes, expt) plot_fast_traces(axes, expt) axes.set_xlim([0, 1100]) axes.set_ylim([0, 30]) axes.set_xticks([]) # axes.set_xticks([0, 200, 400, 600, 800, 1000]) axes.set_yticks([]) axes.set_frame_on(False) add_scale_bar(axes, (200, 2), # scale_position=(0.875, 0.675)) scale_position=(0.05, 0.45)) inset_qof(figure)
def cooperative_timecourse(figure): filament_results = data.load_data( 'results/depoly_timecourse_rho_200000.dat') mean_results = data.load_data('results/depoly_mean_tc.dat') expt = data.load_data( 'experimental_data/jegou_2011/sample_filament_timecourse.dat') ftimes, fvalues = numpy.array(filament_results[0]), filament_results[1:] mtimes, mvalues = (numpy.array(mean_results[0]), 0.0027 * numpy.array(mean_results[1])) etimes, evals = numpy.array(expt[0]), expt[1] ftimes -= 300 mtimes -= 300 # with contexts.basic_figure('plots/depoly_coop_timecourses.pdf', with contexts.subplot(figure, (2, 2, 4), title='D', x_label='Time [s]' # y_label=r'Filament Length [$\mu$m]' ) as axes: for y in fvalues: y = numpy.array(y) y *= 0.0027 contexts.plot(axes, 'plot', ftimes, y, '-', # color='#FF8080', # color='#80FF80', color='#8080FF', linewidth=THIN_LINE) contexts.plot(axes, 'plot', etimes, evals, 'k-', linewidth=0.7) contexts.plot(axes, 'plot', mtimes, mvalues, 'r-', linewidth=0.7) axes.set_ylim(0, 15) axes.set_xlim(0, 1000)
def non_be_rates(figure): results = data.load_data('results/melki_cooperative_fit.dat') nb_results = data.load_data('results/melki_non_be_coop_fit.dat') nop_results = data.load_data('results/melki_no_pointed_coop_fit.dat') cooperativities, rates, min_rates, max_rates = results[:4] nbc, nbr, nb_minr, nb_maxr = nb_results[:4] nopc, nopr, nopminr, nopmaxr = nop_results[:4] theoretical_rates = 1.0 / (HALFTIME * numpy.sqrt(cooperativities)) errors = numpy.array(numpy.array(rates) - numpy.array(min_rates)) / theoretical_rates rates = numpy.array(rates) / theoretical_rates nberrors = numpy.array(numpy.array(nbr) - numpy.array(nb_minr)) / theoretical_rates nbrates = numpy.array(nbr) / theoretical_rates noperrors = numpy.array(numpy.array(nopr) - numpy.array(nopminr)) / theoretical_rates noprates = numpy.array(nopr) / theoretical_rates with contexts.subplot( figure, (2, 1, 1), title='A', # x_label=r'Pi Dissociation Cooperativity, $\rho_d$', y_label=r'$r_d$ [Simulation / Theory]', logscale_x=True, ) as axes: axes.axvline(RHO_CRIT, 0, 1, linestyle='--', color='g', linewidth=0.5) # With enhanced BE dissociation rate contexts.plot(axes, 'errorbar', cooperativities, rates, errors, fmt='k.') # Without enhanced BE dissociation rate contexts.plot(axes, 'errorbar', cooperativities, nbrates, nberrors, fmt='b.') # No pointed end kinetics contexts.plot(axes, 'errorbar', cooperativities, noprates, noperrors, fmt='g.') contexts.plot(axes, 'plot', cooperativities, [1 for c in cooperativities], 'r-', linewidth=0.5) axes.set_xlim([0.1, 10**12]) axes.set_xticks([1, 100, 10000, 1000000, 100000000, 10000000000]) axes.set_ylim([0, 1.2])