def main_cli(): bin_dir = os.path.abspath(os.path.dirname(__file__)) project_dir = os.path.abspath(os.path.dirname(bin_dir)) result_dir = os.path.abspath(os.path.join(project_dir, 'results')) info_path = os.path.join(result_dir, 'sort', 'pymsbayes-results', 'pymsbayes-info.txt') plot_dir = os.path.join(result_dir, 'sort', 'pymsbayes-results', 'plots') plotting.plot_validation_results(info_path, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', math_font = None) vr = plotting.plot_validation_results(info_path, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', label_schema = None, prob_plot_height = 3.4, prob_plot_margin_left = 0.005, prob_plot_margin_bottom = 0.005, prob_plot_margin_right = 1, prob_plot_margin_top = 1, plot_accuracy = False, prob_plot_glm = False, write_plots = False, math_font = None) vr['prior']['prior'].prob_plot.subplots[0].set_xlabel( xlabel = 'Estimated probability of one divergence') vr['prior']['prior'].save_prob_plot(os.path.join(plot_dir, 'mc-unadjusted.pdf'))
def main_cli(): info_path = os.path.join(project_util.RESULT_DIR, 'old', 'pymsbayes-results', 'pymsbayes-info.txt') plotting.plot_validation_results(info_path, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', math_font = None)
def main_cli(): bin_dir = os.path.abspath(os.path.dirname(__file__)) project_dir = os.path.abspath(os.path.dirname(bin_dir)) result_dir = os.path.abspath(os.path.join(project_dir, 'results')) info_path = os.path.join(result_dir, 'multi-locus-no-sort', 'pymsbayes-results', 'pymsbayes-info.txt') plotting.plot_validation_results(info_path, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', math_font = None)
def main_cli(): if not os.path.exists(project_util.IMAGE_DIR): os.mkdir(project_util.IMAGE_DIR) results = {} for d in ['dpp', 'old', 'uniform', 'u-shaped']: info_path = os.path.join(project_util.RESULT_DIR, d, 'pymsbayes-results', 'pymsbayes-info.txt') r = plotting.plot_validation_results(info_path, plot_dir = project_util.IMAGE_DIR, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', plot_accuracy = True, prob_plot_glm = True, prob_plot_height = 3.5, prob_plot_margin_left = 0, prob_plot_margin_bottom = 0, prob_plot_margin_right = 1, prob_plot_margin_top = 0.975, prob_plot_padding_between_horizontal = 0.5, prob_plot_padding_between_vertical = 1.0, math_font = None, write_plots = False) for obs_name, p_dict in r.iteritems(): for prior_name, validation_result in p_dict.iteritems(): if not results.has_key(obs_name): results[obs_name] = {} if not results[obs_name].has_key(prior_name): results[obs_name][prior_name] = validation_result else: raise Exception('Unexpected duplicate validation result') sub_plot_map = { 0: ('psi', r'True number of divergence events, $|\mathbf{\tau}|$', r'Estimated number of divergence events, $\hat{|\mathbf{\tau}|}$ (mode)'), 1: ('omega', r'True variance of divergence times, $D_T$', r'Estimated variance of divergence times, $\hat{D_T}$ (median)'), 2: ('time', r'True mean of divergence times, $\bar{T}$', r'Estimated mean of divergence times, $\hat{\bar{T}}$ (median)'), 3: ('psi-glm', r'True number of divergence events, $|\mathbf{\tau}|$', r'GLM-adjusted number of divergence events, $\hat{|\mathbf{\tau}|}$ (mode)'), 4: ('omega-glm', r'True variance of divergence times, $D_T$', r'GLM-adjusted variance of divergence times, $\hat{D_T}$ (median)'), 5: ('time-glm', r'True mean of divergence times, $\bar{T}$', r'GLM-adjusted mean of divergence times, $\hat{\bar{T}}$ (median)'), } for idx, (variable, x_label, y_label) in sub_plot_map.iteritems(): sub_plots = {} for i in ['old', 'dpp', 'uniform', 'u-shaped']: if not sub_plots.has_key(i): sub_plots[i] = {} for j in ['old', 'dpp', 'uniform', 'u-shaped']: sub_plots[i][j] = results['prior-' + i]['prior-' + j].accuracy_plot.subplots[idx] sub_plots[i][j].set_xlabel('') sub_plots[i][j].set_ylabel('') sub_plot_list = [ sub_plots['old']['old'], sub_plots['u-shaped']['old'], sub_plots['uniform']['old'], sub_plots['dpp']['old'], sub_plots['old']['u-shaped'], sub_plots['u-shaped']['u-shaped'], sub_plots['uniform']['u-shaped'], sub_plots['dpp']['u-shaped'], sub_plots['old']['uniform'], sub_plots['u-shaped']['uniform'], sub_plots['uniform']['uniform'], sub_plots['dpp']['uniform'], sub_plots['old']['dpp'], sub_plots['u-shaped']['dpp'], sub_plots['uniform']['dpp'], sub_plots['dpp']['dpp'], ] for p in sub_plot_list: p.set_extra_y_label('') for scatter_data in p.scatter_data_list: scatter_data.markersize = 5.0 pg = plotting.PlotGrid(subplots = sub_plot_list, num_columns = 4, share_x = True, share_y = True, title = x_label, title_size = 14.0, title_top = False, y_title = y_label, y_title_position = 0.015, y_title_size = 14.0, height = 9.0, width = 11.0, auto_height = False, row_labels = [r'$M_{msBayes}$', r'$M_{Ushaped}$', r'$M_{Uniform}$', r'$M_{DPP}$'], column_labels = [r'$M_{msBayes}$', r'$M_{Ushaped}$', r'$M_{Uniform}$', r'$M_{DPP}$'], column_label_size = 20.0, row_label_size = 20.0, column_label_offset = 0.1, row_label_offset = 0.05, super_title = r'\textbf{Data model}', super_y_title = r'\textbf{Inference model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) # pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.04 pg.margin_left = 0.04 pg.margin_top = 0.92 pg.margin_right = 0.94 pg.plot_label_size = 12.0 pg.padding_between_vertical = 1.2 pg.reset_figure() pg.set_shared_x_limits() pg.set_shared_y_limits() pg.reset_figure() pg.savefig(os.path.join(project_util.IMAGE_DIR, 'validation-accuracy-' + variable + '.pdf'))
def main_cli(): results = {} for d in ['dpp', 'old', 'uniform', 'u-shaped']: info_path = os.path.join(project_util.VALIDATION_RESULT_DIR, d, 'pymsbayes-results', 'pymsbayes-info.txt') r = plotting.plot_validation_results(info_path, plot_dir = project_util.IMAGE_DIR, omega_symbol = r'D_T', psi_symbol = r'|\mathbf{\tau}|', mean_time_symbol = r'\bar{T}', plot_accuracy = False, prob_plot_glm = False, prob_plot_height = 3.5, prob_plot_margin_left = 0, prob_plot_margin_bottom = 0, prob_plot_margin_right = 1, prob_plot_margin_top = 0.975, prob_plot_padding_between_horizontal = 0.5, prob_plot_padding_between_vertical = 1.0, math_font = None, write_plots = False) for obs_name, p_dict in r.iteritems(): for prior_name, validation_result in p_dict.iteritems(): if not results.has_key(obs_name): results[obs_name] = {} if not results[obs_name].has_key(prior_name): results[obs_name][prior_name] = validation_result else: raise Exception('Unexpected duplicate validation result') sub_plots = {} for i in ['old', 'dpp', 'uniform', 'u-shaped']: if not sub_plots.has_key(i): sub_plots[i] = {} for j in ['old', 'dpp', 'uniform', 'u-shaped']: sub_plots[i][j] = results['prior-' + i]['prior-' + j].prob_plot.subplots[0] sub_plots[i][j].set_xlabel('') sub_plots[i][j].set_ylabel('') sub_plot_list = [ sub_plots['old']['old'], sub_plots['dpp']['old'], sub_plots['old']['dpp'], sub_plots['dpp']['dpp'], ] pg = plotting.PlotGrid(subplots = sub_plot_list[:1], num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 14.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.001, y_title_size = 14.0, column_labels = [r'msBayes'], column_label_size = 22.0, column_label_offset = 0.04, width = 4.6, height = 3.7, auto_height = False) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.05 pg.margin_top = 0.91 pg.margin_right = 0.94 pg.reset_figure() pg.savefig('../images/validation-model-choice-old.pdf') pg = plotting.PlotGrid(subplots = sub_plot_list[-1:], num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 14.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.001, y_title_size = 14.0, column_labels = [r'dpp-msbayes'], column_label_size = 22.0, column_label_offset = 0.04, width = 4.6, height = 3.7, auto_height = False) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.05 pg.margin_top = 0.91 pg.margin_right = 0.94 pg.reset_figure() pg.savefig('../images/validation-model-choice-dpp.pdf') pg = plotting.PlotGrid(subplots = sub_plot_list, num_columns = 2, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 16.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.03, y_title_size = 16.0, height = 6.0, auto_height = False, column_labels = [r'$M_{msBayes}$', r'$M_{DPP}$'], row_labels = [r'$M_{msBayes}$', r'$M_{DPP}$'], column_label_size = 22.0, row_label_size = 22.0, column_label_offset = 0.05, row_label_offset = 0.05, super_title = r'\textbf{Data model}', super_y_title = r'\textbf{Analysis model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.05 pg.margin_left = 0.07 pg.margin_top = 0.90 pg.margin_right = 0.92 pg.reset_figure() pg.savefig('../images/validation-model-choice-old-dpp.pdf') for p in sub_plot_list: p.set_extra_y_label('') p.set_title_text('') pg = plotting.PlotGrid(subplots = sub_plot_list[-1:], num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 14.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.001, y_title_size = 14.0, # column_labels = [r'dpp-msbayes'], column_label_size = 22.0, column_label_offset = 0.04, width = 4.8, height = 3.6, auto_height = False) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.06 pg.margin_top = 0.99 pg.margin_right = 0.94 pg.reset_figure() pg.savefig('../images/validation-model-choice-dpp-no-label.pdf') sub_plot_list = [ sub_plots['old']['old'], sub_plots['dpp']['old'], sub_plots['uniform']['old'], sub_plots['u-shaped']['old'], sub_plots['old']['dpp'], sub_plots['dpp']['dpp'], sub_plots['uniform']['dpp'], sub_plots['u-shaped']['dpp'], ] for p in sub_plot_list: p.set_extra_y_label('') pg = plotting.PlotGrid(subplots = sub_plot_list, num_columns = 4, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 16.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.015, y_title_size = 16.0, height = 4.8, width = 11.0, auto_height = False, row_labels = [r'$M_{msBayes}$', r'$M_{DPP}$'], column_labels = [r'$M_{msBayes}$', r'$M_{DPP}$', r'$M_{Uniform}$', r'$M_{Ushaped}$'], column_label_size = 22.0, row_label_size = 22.0, column_label_offset = 0.05, row_label_offset = 0.05, super_title = r'\textbf{Data model}', super_y_title = r'\textbf{Analysis model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.045 pg.margin_top = 0.88 pg.margin_right = 0.94 pg.reset_figure() pg.savefig('../images/validation-model-choice-old-dpp-full.pdf') for p in sub_plot_list: p.set_extra_y_label('') p.set_title_text('') old_violations = sub_plot_list[1:3] dpp_violations = sub_plot_list[4:5] + sub_plot_list[6:7] pg = plotting.PlotGrid(subplots = old_violations, num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 16.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.015, y_title_size = 16.0, height = 6.5, width = 4.5, auto_height = False, column_labels = [r'msBayes'], column_label_size = 22.0, column_label_offset = 0.05, # super_title = r'\textbf{Data model}', # super_y_title = r'\textbf{Analysis model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.05 pg.margin_left = 0.07 pg.margin_top = 0.94 pg.margin_right = 0.95 pg.reset_figure() pg.savefig('../images/validation-model-choice-old-violations.pdf') pg = plotting.PlotGrid(subplots = dpp_violations, num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 16.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.015, y_title_size = 16.0, height = 6.5, width = 4.5, auto_height = False, column_labels = [r'dpp-msbayes'], column_label_size = 22.0, column_label_offset = 0.05, # super_title = r'\textbf{Data model}', # super_y_title = r'\textbf{Analysis model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.05 pg.margin_left = 0.07 pg.margin_top = 0.94 pg.margin_right = 0.95 pg.reset_figure() pg.savefig('../images/validation-model-choice-dpp-violations.pdf') for p in sub_plot_list: p.set_extra_y_label('') p.set_title_text('') pg = plotting.PlotGrid(subplots = dpp_violations, num_columns = 2, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 16.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.015, y_title_size = 16.0, height = 4, width = 10, auto_height = False, # column_labels = ['',''], column_label_size = 22.0, column_label_offset = 0.05, # super_title = r'\textbf{Data model}', # super_y_title = r'\textbf{Analysis model}', super_title_size = 20.0, super_y_title_size = 20.0, super_y_title_right = True) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.06 pg.margin_top = 0.99 pg.margin_right = 0.95 pg.reset_figure() pg.savefig('../images/validation-model-choice-dpp-violations-horizontal.pdf') pg = plotting.PlotGrid(subplots = dpp_violations[-1:], num_columns = 1, share_x = True, share_y = True, title = 'Posterior probability of one divergence', title_size = 14.0, title_top = False, y_title = 'True probability of one divergence', y_title_position = 0.001, y_title_size = 14.0, # column_labels = [r'dpp-msbayes'], column_label_size = 22.0, column_label_offset = 0.04, width = 4.8, height = 3.6, auto_height = False) pg.label_schema = None pg.auto_adjust_margins = False pg.margin_bottom = 0.06 pg.margin_left = 0.06 pg.margin_top = 0.99 pg.margin_right = 0.94 pg.reset_figure() pg.savefig('../images/validation-model-choice-dpp-uniform-no-label.pdf')