def plot_rocs(title, rocs, num_pssms): """ Plot roc graphs. """ import pylab as P for bg_type, rocs_for_bg in rocs.iteritems(): for dataset, rocs_for_dataset in rocs_for_bg.iteritems(): tag = '%s-%s-%s' % (title, bg_type, dataset) fig = P.figure() for p in num_pssms: plot_roc_points(rocs_for_dataset[p][::-1], label='%d PSSMs' % (p+1)) P.legend(loc='lower right') P.title(tag) plot_random_classifier() label_plot() P.savefig(os.path.join(options.output_dir, 'roc-%s.png' % tag)) P.close(fig)
def plot_rocs(title, rocs, num_pssms): """ Plot roc graphs. """ import pylab as P for bg_type, rocs_for_bg in rocs.iteritems(): for dataset, rocs_for_dataset in rocs_for_bg.iteritems(): tag = '%s-%s-%s' % (title, bg_type, dataset) fig = P.figure() for p in num_pssms: plot_roc_points(rocs_for_dataset[p][::-1], label='%d PSSMs' % (p + 1)) P.legend(loc='lower right') P.title(tag) plot_random_classifier() label_plot() P.savefig(os.path.join(options.output_dir, 'roc-%s.png' % tag)) P.close(fig)
for method in methods ) aucs[bg]['AUC50'] = dict( (method, auc50s[method][0]) for method in methods ) # ROC curves P.figure() for method in methods: rocs = [roc for roc, t in roc_thresholds[method]] auc = aucs[bg]['AUC'][method] auc50 = aucs[bg]['AUC50'][method] R.plot_roc_points(rocs, label=method, marker=markers[method], color=colors[method]) R.plot_random_classifier(label='Random') R.label_plot() P.legend(loc='lower right') P.title('%s - %s' % (fragment_name(fragment), bg)) P.savefig(os.path.join(options.results_dir, 'ROC-%s-%s.png' % (fragment, bg))) P.savefig(os.path.join(options.results_dir, 'ROC-%s-%s.eps' % (fragment, bg))) P.close() # precision-recall curves P.figure() for method in methods: rocs = [roc for roc, t in roc_thresholds[method]] R.plot_precision_versus_recall(rocs, label=method, marker=markers[method], color=colors[method]) R.label_precision_versus_recall() P.legend(loc='lower left')
logging.basicConfig(level=logging.INFO) R.seed(1) param_settings = ( (True, False, True, 'Cumulative Bayesian', 'blue', '-.'), (False, False, True, 'Non-cumulative Bayesian', 'blue', '-'), (False, False, False, 'BiFa', 'cyan', '-'), (True, True, True, 'Cumulative p-values', 'red', '-.'), (False, True, True, 'Non-cumulative p-values', 'red', '-'), ) try: test_cases except NameError: test_cases = list(dataset.generate_test_cases(ignore_chip_data=False)) logging.info('Have %d test cases', len(test_cases)) #P.close('all') P.figure(figsize=(16, 12)) for param_setting in param_settings: plot_param_setting_rocs(test_cases, *param_setting) roc.plot_random_classifier() P.xlim(0, 0.2) P.ylim(0, 0.4) P.xlim(0, 1) P.ylim(0, 1) P.legend(loc='lower right') P.show()
pickle_file) freqs, gaps = pwm roc = run_pwm_forward_backward(tag, freqs, gaps, positive_seqs, negative_seqs) cPickle.dump(roc, open(pickle_file, 'wb')) return roc def do_pwm(tag, pwm, color, marker): roc_points = calc_or_unpickle_roc(tag, pwm, positive_seqs, negative_seqs) roc.plot_roc_points(roc_points, label=tag, color=color, marker=marker) P.figure() do_pwm('GLAM2-Sp1-i4', glam2_sp1_i4(), 'magenta', 's') do_pwm('GLAM2-Sp1-i7', glam2_sp1_i7(), 'cyan', '^') do_pwm('Gapped-Sp1', gapped_sp1(), 'blue', 'o') do_pwm('TRANSFAC-Sp1', transfac_sp1(), 'red', 'v') do_pwm('MEME-Sp1', meme_sp1(), 'green', 'd') roc.plot_random_classifier(label='Random') roc.label_plot() P.legend(loc='lower right') P.savefig('ROC.eps') P.savefig('ROC.png') P.xlim(0., .2) P.ylim(0., .5) P.savefig('ROC-zoom.eps') P.savefig('ROC-zoom.png')
methods = [] datasets_to_ignore = set(('T99004',)) show_title = False sys.argv.pop(0) # remove script name while sys.argv: method = sys.argv.pop(0) methods.append(method) file_glob = sys.argv.pop(0) logging.info('Method: %s; glob: %s', method, file_glob) load_stat_files(glob(file_glob), overall_stats[method]) styles = [ '-', '--' ] for bg in bg_types: for dataset in datasets: P.figure() for style, method in zip(styles, methods): stats = overall_stats[method] rocs = list(stats[bg][0][dataset].iteritems()) rocs.sort() rocs = [r[1] for r in rocs] plot_roc_points(rocs, linestyle=style, color='k', label=method) label_plot() P.legend(loc='lower right') if show_title: P.title('%s - %s' % (dataset, bg)) plot_random_classifier(label='random') P.savefig('ROC-%s-%s.png' % (bg, dataset)) P.savefig('ROC-%s-%s.eps' % (bg, dataset)) P.clf()
R.seed(1) param_settings = ( (True, False, True, 'Cumulative Bayesian', 'blue', '-.'), (False, False, True, 'Non-cumulative Bayesian', 'blue', '-'), (False, False, False, 'BiFa', 'cyan', '-'), (True, True, True, 'Cumulative p-values', 'red', '-.'), (False, True, True, 'Non-cumulative p-values', 'red', '-'), ) try: test_cases except NameError: test_cases = list(dataset.generate_test_cases(ignore_chip_data=False)) logging.info('Have %d test cases', len(test_cases)) #P.close('all') P.figure(figsize=(16,12)) for param_setting in param_settings: plot_param_setting_rocs(test_cases, *param_setting) roc.plot_random_classifier() P.xlim(0, 0.2) P.ylim(0, 0.4) P.xlim(0, 1) P.ylim(0, 1) P.legend(loc='lower right') P.show()
methods = [] datasets_to_ignore = set(('T99004', )) show_title = False sys.argv.pop(0) # remove script name while sys.argv: method = sys.argv.pop(0) methods.append(method) file_glob = sys.argv.pop(0) logging.info('Method: %s; glob: %s', method, file_glob) load_stat_files(glob(file_glob), overall_stats[method]) styles = ['-', '--'] for bg in bg_types: for dataset in datasets: P.figure() for style, method in zip(styles, methods): stats = overall_stats[method] rocs = list(stats[bg][0][dataset].iteritems()) rocs.sort() rocs = [r[1] for r in rocs] plot_roc_points(rocs, linestyle=style, color='k', label=method) label_plot() P.legend(loc='lower right') if show_title: P.title('%s - %s' % (dataset, bg)) plot_random_classifier(label='random') P.savefig('ROC-%s-%s.png' % (bg, dataset)) P.savefig('ROC-%s-%s.eps' % (bg, dataset)) P.clf()
return method for bg in backgrounds: # ROC curves P.figure() for method in methods: rocs = R.picked_rocs_from_thresholds(scores[(method, )], scores[(method, bg)], num_points=options.num_points) auc = R.area_under_curve(rocs) R.plot_roc_points(rocs, label='%.2f %s' % (auc, name(method)), marker=markers[method]) R.plot_random_classifier(label='0.50 Random') R.label_plot() P.legend(loc='lower right') P.title('Full Sp1 - %s' % bg) P.savefig('ROC-Sp1-%s.png' % bg) P.savefig('ROC-Sp1-%s.eps' % bg) # precision-recall curves P.figure() for method in methods: rocs = R.picked_rocs_from_thresholds(scores[(method, )], scores[(method, bg)], num_points=options.num_points) R.plot_precision_versus_recall(rocs, label=name(method), marker=markers[method])