コード例 #1
0
ファイル: test_harness.py プロジェクト: JohnReid/biopsy
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)
コード例 #2
0
ファイル: test_harness.py プロジェクト: pombredanne/biopsy
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)
コード例 #3
0
ファイル: test_generate_rocs.py プロジェクト: JohnReid/biopsy
            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')
コード例 #4
0
ファイル: compare_methods.py プロジェクト: pombredanne/biopsy
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()
コード例 #5
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')
コード例 #6
0
ファイル: read_stats.py プロジェクト: JohnReid/biopsy
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()
コード例 #7
0
ファイル: compare_methods.py プロジェクト: JohnReid/biopsy
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()
コード例 #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()
コード例 #9
0
ファイル: run_sp1_eval.py プロジェクト: pombredanne/biopsy
    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])