-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbar-allpath.py
More file actions
124 lines (113 loc) · 4.17 KB
/
Copy pathbar-allpath.py
File metadata and controls
124 lines (113 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from fitting import *
import random
import optparse
import pylab
import matplotlib.gridspec as gridspec
import numpy
import os
from scipy import linspace, polyval, polyfit, sqrt, stats, randn
from numpy import linalg
font = {'family' : 'sans-serif',
'sans-serif':['Helvetica'],
'size' : 16}
pylab.rcParams['lines.linewidth'] = 2
pylab.rc('font', **font)
params = {'legend.fontsize': 14,
'legend.linewidth': 2}
pylab.rcParams.update(params)
def main(name):
systems=['bi', 'car', 'apo']
auclabels=dict()
auclabels['types']='Agonist vs.\n Antag.'
auclabels['antagonist']='Antag. vs. Decoy'
auclabels['agonist']='Agonist vs. Decoy'
aucnames=['agonist', 'antagonist', 'types']
colors=['red', 'blue', 'purple' ]
allvalues=dict()
ranges=dict()
index=0
fig=pylab.figure(figsize=(8,6))
gs=gridspec.GridSpec(1, 2, width_ratios=[2,1])
ax1=pylab.subplot(gs[0] )
ax2=pylab.subplot(gs[1])
for (n, aucname) in enumerate(aucnames):
print "on %s" % aucname
allvalues[aucname]=dict()
start=index
fhandle=open('%s_%svalues.dat' % (aucname, name))
for line in fhandle.readlines():
key=line.split()[0]
value=float(line.split()[1])
try:
test=int(key)
if test in allvalues[aucname].keys():
allvalues[aucname][test].append(value)
else:
allvalues[aucname][test]=[]
allvalues[aucname][test].append(value)
except ValueError:
if key in allvalues[aucname].keys():
allvalues[aucname][key].append(value)
else:
allvalues[aucname][key]=[]
allvalues[aucname][key].append(value)
print "loaded file data"
avgs=[]
errs=[]
for x in sorted(allvalues[aucname].keys()):
avgs.append(numpy.mean(allvalues[aucname][x]))
errs.append(numpy.std(allvalues[aucname][x]))
index+=1
width=0.8
if aucname=='types':
start=0
index=len(allvalues[aucname].keys())
ax2.bar(left=range(start, index), height=avgs,
alpha=0.9, width=width, yerr=errs, color=colors[n], ecolor='k', label=auclabels[aucname])
else:
ax1.bar(left=range(start, index), height=avgs,
alpha=0.9, width=width, yerr=errs,
color=colors[n], ecolor='k', label=auclabels[aucname])
ranges[aucname]=range(start,index)
pylab.hold(True)
length=len(allvalues['agonist'].keys())+len(allvalues['agonist'].keys())
ax1.set_ylabel('AUCs')
ax1.set_xlabel('States Along Path')
ax1.xaxis.set_ticks(numpy.arange(0,length))
labels=[' ', ' ', 'Inactive', '', '', '', ' ', 'Active']
labels2=[' ', ' ', ' ', 'Inactive', '', '', ' ', ' Active']
ax1.xaxis.set_ticklabels(labels+labels2)
ax1.yaxis.set_ticks(numpy.arange(0.6, 1.05, 0.1))
lg=ax1.legend(loc=9)
lg.draw_frame(False)
ax1.set_ylim(0.6, 1.0)
# types graph
length=len(allvalues['types'].keys())
ax2.set_ylim(0.4, 1.0)
ax2.plot(range(0, (length+1)), [0.5]*(length+1),'k--', label='Random')
ax2.set_xlim(0, length)
ax2.xaxis.set_ticks(numpy.arange(0,length))
ax2.xaxis.set_ticklabels(labels)
ax2.set_xlabel('States Along Path')
lg=ax2.legend(loc=9)
lg.draw_frame(False)
#ax1.plot(range(0, 7), [0.5]*7, 'k--')
#axis_label=[]
#ax1.set_xlim(0,6)
#ax2.set_xlim(0,3)
#ax2.yaxis.set_ticks(numpy.arange(0.4, 1.0))
#ax2.yaxis.set_ticklabels([' '*6])
#ax2.xaxis.set_ticks(range(0, 3))
#ax2.xaxis.set_ticklabels([' ', auclabels[aucnames[2]], ' '])
#pylab.savefig('ligand_state_aucs.png', dpi=300)
pylab.savefig('all_progress_aucs.png', dpi=300)
pylab.show()
def parse_commandline():
parser = optparse.OptionParser()
parser.add_option('-n', '--name', dest='name',
help='name')
(options, args) = parser.parse_args()
return (options, args)
if __name__ == "__main__":
(options, args) = parse_commandline()
main(name=options.name)