Skip to content

Commit b45a3d7

Browse files
committed
Refute my hypothesis of equal diagonals in A_optimal covariance.
1 parent 43504c4 commit b45a3d7

File tree

1 file changed

+296
-0
lines changed

1 file changed

+296
-0
lines changed

A_optimal_diagonals.ipynb

+296
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {
7+
"collapsed": true
8+
},
9+
"outputs": [],
10+
"source": [
11+
"import diffnet as dn\n",
12+
"from cvxopt import matrix"
13+
]
14+
},
15+
{
16+
"cell_type": "code",
17+
"execution_count": 2,
18+
"metadata": {
19+
"collapsed": true
20+
},
21+
"outputs": [],
22+
"source": [
23+
"import numpy as np"
24+
]
25+
},
26+
{
27+
"cell_type": "code",
28+
"execution_count": 3,
29+
"metadata": {
30+
"collapsed": true
31+
},
32+
"outputs": [],
33+
"source": [
34+
"K = 5\n",
35+
"s = np.random.rand( K, K)\n",
36+
"s = 0.5*(s.T + s)\n",
37+
"# for i in range(K): s[i,i] = np.inf"
38+
]
39+
},
40+
{
41+
"cell_type": "code",
42+
"execution_count": 4,
43+
"metadata": {},
44+
"outputs": [
45+
{
46+
"data": {
47+
"text/plain": [
48+
"array([[0.31606839, 0.89819236, 0.89703422, 0.30095392, 0.54763611],\n",
49+
" [0.89819236, 0.70860277, 0.77928054, 0.47375313, 0.64210208],\n",
50+
" [0.89703422, 0.77928054, 0.8733601 , 0.08316998, 0.12200628],\n",
51+
" [0.30095392, 0.47375313, 0.08316998, 0.41130463, 0.29626953],\n",
52+
" [0.54763611, 0.64210208, 0.12200628, 0.29626953, 0.63852698]])"
53+
]
54+
},
55+
"execution_count": 4,
56+
"metadata": {},
57+
"output_type": "execute_result"
58+
}
59+
],
60+
"source": [
61+
"s"
62+
]
63+
},
64+
{
65+
"cell_type": "code",
66+
"execution_count": 5,
67+
"metadata": {},
68+
"outputs": [
69+
{
70+
"name": "stdout",
71+
"output_type": "stream",
72+
"text": [
73+
" pcost dcost gap pres dres k/t\n",
74+
" 0: 0.0000e+00 -0.0000e+00 1e+02 4e+00 7e+02 1e+00\n",
75+
" 1: 3.3375e+00 3.6649e+00 1e+01 6e-01 1e+02 5e-01\n",
76+
" 2: 3.4839e+00 3.7049e+00 8e+00 4e-01 6e+01 3e-01\n",
77+
" 3: 3.4750e+00 3.5654e+00 3e+00 1e-01 2e+01 1e-01\n",
78+
" 4: 3.3033e+00 3.3647e+00 2e+00 7e-02 1e+01 8e-02\n",
79+
" 5: 3.3956e+00 3.4196e+00 1e+00 4e-02 6e+00 3e-02\n",
80+
" 6: 3.2196e+00 3.2352e+00 8e-01 2e-02 3e+00 2e-02\n",
81+
" 7: 3.1761e+00 3.1793e+00 2e-01 3e-03 6e-01 4e-03\n",
82+
" 8: 3.1702e+00 3.1708e+00 3e-02 6e-04 1e-01 7e-04\n",
83+
" 9: 3.1686e+00 3.1686e+00 4e-03 8e-05 1e-02 1e-04\n",
84+
"10: 3.1683e+00 3.1683e+00 4e-04 7e-06 1e-03 8e-06\n",
85+
"11: 3.1683e+00 3.1683e+00 8e-06 2e-07 3e-05 2e-07\n",
86+
"12: 3.1683e+00 3.1683e+00 6e-07 1e-08 2e-06 1e-08\n",
87+
"13: 3.1683e+00 3.1683e+00 4e-08 8e-10 1e-07 1e-09\n",
88+
"Optimal solution found.\n"
89+
]
90+
}
91+
],
92+
"source": [
93+
"n = dn.A_optimize( matrix(s))"
94+
]
95+
},
96+
{
97+
"cell_type": "code",
98+
"execution_count": 6,
99+
"metadata": {},
100+
"outputs": [
101+
{
102+
"name": "stdout",
103+
"output_type": "stream",
104+
"text": [
105+
"[ 1.41e-01 1.94e-10 -3.02e-11 8.84e-02 4.21e-10]\n",
106+
"[ 1.94e-10 1.05e-01 9.93e-11 2.05e-01 5.44e-10]\n",
107+
"[-3.02e-11 9.93e-11 3.05e-11 6.61e-02 6.85e-02]\n",
108+
"[ 8.84e-02 2.05e-01 6.61e-02 3.26e-01 7.75e-11]\n",
109+
"[ 4.21e-10 5.44e-10 6.85e-02 7.75e-11 8.75e-10]\n",
110+
"\n"
111+
]
112+
}
113+
],
114+
"source": [
115+
"print(n)"
116+
]
117+
},
118+
{
119+
"cell_type": "code",
120+
"execution_count": 7,
121+
"metadata": {},
122+
"outputs": [
123+
{
124+
"data": {
125+
"text/plain": [
126+
"3.168258731683343"
127+
]
128+
},
129+
"execution_count": 7,
130+
"metadata": {},
131+
"output_type": "execute_result"
132+
}
133+
],
134+
"source": [
135+
"np.trace(dn.covariance( n/s**2))"
136+
]
137+
},
138+
{
139+
"cell_type": "code",
140+
"execution_count": 8,
141+
"metadata": {},
142+
"outputs": [
143+
{
144+
"data": {
145+
"text/plain": [
146+
"array([[0.48064717, 0.12440851, 0.15276036, 0.15276036, 0.15276036],\n",
147+
" [0.12440851, 1.13881256, 0.30465855, 0.30465855, 0.30465855],\n",
148+
" [0.15276036, 0.30465855, 0.47877161, 0.37408816, 0.47877161],\n",
149+
" [0.15276036, 0.30465855, 0.37408816, 0.37408816, 0.37408816],\n",
150+
" [0.15276036, 0.30465855, 0.47877161, 0.37408816, 0.69593923]])"
151+
]
152+
},
153+
"execution_count": 8,
154+
"metadata": {},
155+
"output_type": "execute_result"
156+
}
157+
],
158+
"source": [
159+
"dn.covariance( n/s**2)"
160+
]
161+
},
162+
{
163+
"cell_type": "markdown",
164+
"metadata": {},
165+
"source": [
166+
"Clearly, the diagonal elements are not the same."
167+
]
168+
},
169+
{
170+
"cell_type": "code",
171+
"execution_count": 9,
172+
"metadata": {
173+
"collapsed": true
174+
},
175+
"outputs": [],
176+
"source": [
177+
"s = np.ones( (K, K)) + 0.1*(np.random.rand( K, K) - 0.5)\n",
178+
"s = 0.5*(s + s.T)"
179+
]
180+
},
181+
{
182+
"cell_type": "code",
183+
"execution_count": 10,
184+
"metadata": {},
185+
"outputs": [
186+
{
187+
"data": {
188+
"text/plain": [
189+
"array([[0.97351052, 0.96050154, 1.01524271, 1.00311652, 1.00580902],\n",
190+
" [0.96050154, 0.95744738, 1.00080002, 1.03008442, 0.97986122],\n",
191+
" [1.01524271, 1.00080002, 1.01532568, 1.01995957, 1.00801957],\n",
192+
" [1.00311652, 1.03008442, 1.01995957, 1.02903125, 1.01919704],\n",
193+
" [1.00580902, 0.97986122, 1.00801957, 1.01919704, 0.99439068]])"
194+
]
195+
},
196+
"execution_count": 10,
197+
"metadata": {},
198+
"output_type": "execute_result"
199+
}
200+
],
201+
"source": [
202+
"s"
203+
]
204+
},
205+
{
206+
"cell_type": "code",
207+
"execution_count": 11,
208+
"metadata": {},
209+
"outputs": [
210+
{
211+
"name": "stdout",
212+
"output_type": "stream",
213+
"text": [
214+
" pcost dcost gap pres dres k/t\n",
215+
" 0: 0.0000e+00 -0.0000e+00 1e+02 4e+00 2e+01 1e+00\n",
216+
" 1: 4.1070e+00 4.4992e+00 2e+01 1e+00 4e+00 6e-01\n",
217+
" 2: 8.1702e+00 1.0088e+01 2e+02 2e+00 7e+00 2e+00\n",
218+
" 3: 1.3893e+01 1.4048e+01 1e+01 3e-01 1e+00 2e-01\n",
219+
" 4: 1.6870e+01 1.6949e+01 6e+00 1e-01 5e-01 1e-01\n",
220+
" 5: 1.8994e+01 1.9039e+01 3e+00 5e-02 2e-01 6e-02\n",
221+
" 6: 2.0385e+01 2.0392e+01 4e-01 7e-03 3e-02 8e-03\n",
222+
" 7: 2.0644e+01 2.0645e+01 5e-02 1e-03 4e-03 1e-03\n",
223+
" 8: 2.0685e+01 2.0685e+01 2e-03 3e-05 1e-04 4e-05\n",
224+
" 9: 2.0686e+01 2.0686e+01 1e-04 2e-06 7e-06 2e-06\n",
225+
"10: 2.0686e+01 2.0686e+01 4e-06 7e-08 3e-07 9e-08\n",
226+
"Optimal solution found.\n"
227+
]
228+
}
229+
],
230+
"source": [
231+
"n = dn.A_optimize( matrix( s))"
232+
]
233+
},
234+
{
235+
"cell_type": "code",
236+
"execution_count": 12,
237+
"metadata": {},
238+
"outputs": [
239+
{
240+
"data": {
241+
"text/plain": [
242+
"array([[4.04384771, 0.9226813 , 0.87485767, 0.94890855, 0.85672638],\n",
243+
" [0.9226813 , 3.97632199, 0.89016928, 0.82843275, 0.90830927],\n",
244+
" [0.87485767, 0.89016928, 4.23165798, 0.98485259, 0.94333631],\n",
245+
" [0.94890855, 0.82843275, 0.98485259, 4.29673937, 0.9415661 ],\n",
246+
" [0.85672638, 0.90830927, 0.94333631, 0.9415661 , 4.13744 ]])"
247+
]
248+
},
249+
"execution_count": 12,
250+
"metadata": {},
251+
"output_type": "execute_result"
252+
}
253+
],
254+
"source": [
255+
"dn.covariance( n/s**2)"
256+
]
257+
},
258+
{
259+
"cell_type": "markdown",
260+
"metadata": {},
261+
"source": [
262+
"The observed approximately equal diagonal elements may be attributable to similar $s_{ij}$ values in all the relative binding free energy calculations."
263+
]
264+
},
265+
{
266+
"cell_type": "code",
267+
"execution_count": null,
268+
"metadata": {
269+
"collapsed": true
270+
},
271+
"outputs": [],
272+
"source": []
273+
}
274+
],
275+
"metadata": {
276+
"kernelspec": {
277+
"display_name": "Python 2",
278+
"language": "python",
279+
"name": "python2"
280+
},
281+
"language_info": {
282+
"codemirror_mode": {
283+
"name": "ipython",
284+
"version": 2
285+
},
286+
"file_extension": ".py",
287+
"mimetype": "text/x-python",
288+
"name": "python",
289+
"nbconvert_exporter": "python",
290+
"pygments_lexer": "ipython2",
291+
"version": "2.7.15"
292+
}
293+
},
294+
"nbformat": 4,
295+
"nbformat_minor": 2
296+
}

0 commit comments

Comments
 (0)