Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
        )
        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')
        P.title('%s - %s' % (fragment_name(fragment), bg))
Ejemplo n.º 4
0
                    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')
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
            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,
Ejemplo n.º 7
0
            pickle_file = '%s-roc.pickle'%tag
            try:
                roc = cPickle.load(open(pickle_file))
                logging.info('Unpickled ROCs from %s.', pickle_file)
            except:
                logging.info('Could not unpickle %s, calculating from scratch.', 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')
Ejemplo n.º 8
0
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()