In [1]:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set(style="ticks", color_codes=True, font_scale=1.5)
sns.set_style({"xtick.direction": "in", "ytick.direction": "in"})
%matplotlib inline
import pandas as pd



## Kinetics in the FES model

We use the denaturant dependent thermodynamics to estimate kinetics at different final denaturant concentrations.



In [2]:

R = 8.314e-3 # kJ/mol/K




In [3]:

from prefur import kinetics
kf1st = DataBase.kfexp*np.exp(-(DataBase.mfexp/(R*DataBase.Temp)*DataBase.D1st))
ku1st = DataBase.kuexp*np.exp((DataBase.muexp/(R*DataBase.Temp)*DataBase.D1st))




In [4]:

def ind_to_char(s):
if s == 1:
return "a"
if s == 2:
return "b"
elif s == 3:
return "ab"
nres = DataBase.SizePDB.as_matrix()
struct = DataBase.Structure.as_matrix()
kfold  = []
kunfold  = []
for n, s in zip(nres, struct):
c = ind_to_char(s)
kf, ku, FES = kinetics.predict(nres=n, struct=c)
kfold.append(kf)
kunfold.append(ku)




In [5]:

fig, ax = plt.subplots()
#ax.loglog(kf1st, kfold, 'o')
colors = [None, 'red', 'blue', 'green']
for i in range(1,4):
sel = [x for x in range(len(DataBase.Structure)) \
if DataBase.Structure[x]==i]
ax.scatter(np.array(kf1st)[sel], np.array(kfold)[sel], \
marker='o', s=100, facecolor=colors[i], lw=1)

ax.plot([1e-2,1e5],[1e-2,1e5], 'k', lw=0.5, ls='--')

z = np.polyfit(np.log10(kf1st), np.log10(kfold), 1)
p = np.poly1d(z)
x = np.array([-6.,5.])
ax.plot(10**x,10**p(x),"k-", lw=1)

ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlabel(r'$k_\mathrm{f,exp}$ (s$^{-1}$) ')
ax.set_ylabel(r'$k_\mathrm{f,calc}$ (s$^{-1}$) ')
ax.set_xlim(1e-1,1e5)
ax.set_ylim(1e-2,1e5)
plt.tight_layout()
print "R(kf) = %6.4f"%np.corrcoef(np.log10(kf1st), np.log10(kfold))[0][1]




R(kf) = 0.7942




In [6]:

fig, ax = plt.subplots()
#ax.loglog(ku1st, kunfold, 'o')
colors = [None, 'red', 'blue', 'green']
for i in range(1,4):
sel = [x for x in range(len(DataBase.Structure)) if DataBase.Structure[x]==i]
ax.scatter(np.array(ku1st)[sel], np.array(kunfold)[sel], \
marker='o', s=100, facecolor=colors[i], lw=1)

z = np.polyfit(np.log10(ku1st), np.log10(kunfold), 1)
p = np.poly1d(z)
x = np.array([-6.,5.])
ax.plot(10**x,10**p(x),"k-", lw=1)

ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlabel(r'$k_\mathrm{exp}$ (s$^{-1}$) ')
ax.set_ylabel(r'$k_\mathrm{calc}$ (s$^{-1}$) ')
plt.tight_layout()
ax.plot([1e-6,1e5],[1e-6,1e5], 'k', lw=0.5, ls='--')
ax.set_xlim(1e-5,1e4)
ax.set_ylim(1e-8,1e4)
print "R(ku) = %6.4f"%np.corrcoef(np.log10(ku1st), np.log10(kunfold))[0][1]




R(ku) = 0.7313




In [7]:

fig, ax = plt.subplots(1,2, figsize=(10,5))
#ax.loglog(kf1st, kfold, 'o')
colors = [None, 'red', 'blue', 'green']
for i in range(1,4):
sel = [x for x in range(len(DataBase.Structure)) \
if DataBase.Structure[x]==i]
ax[0].scatter(np.array(kf1st)[sel], np.array(kfold)[sel], \
marker='o', s=100, facecolor=colors[i], lw=1)

ax[0].plot([1e-2,1e5],[1e-2,1e5], 'k', lw=0.5, ls='--')

z = np.polyfit(np.log10(kf1st), np.log10(kfold), 1)
p = np.poly1d(z)
x = np.array([-6.,5.])
ax[0].plot(10**x,10**p(x),"k-", lw=1)

ax[0].set_xscale('log')
ax[0].set_yscale('log')
ax[0].set_xlabel(r'$k_\mathrm{f,exp}$ (s$^{-1}$) ')
ax[0].set_ylabel(r'$k_\mathrm{f,calc}$ (s$^{-1}$) ')
ax[0].set_xlim(1e-2,1e5)
ax[0].set_ylim(1e-2,1e5)
print "R(kf) = %6.4f"%np.corrcoef(np.log10(kf1st), np.log10(kfold))[0][1]

#ax.loglog(ku1st, kunfold, 'o')
colors = [None, 'red', 'blue', 'green']
for i in range(1,4):
sel = [x for x in range(len(DataBase.Structure)) if DataBase.Structure[x]==i]
ax[1].scatter(np.array(ku1st)[sel], np.array(kunfold)[sel], \
marker='o', s=100, facecolor=colors[i], lw=1)

z = np.polyfit(np.log10(ku1st), np.log10(kunfold), 1)
p = np.poly1d(z)
x = np.array([-6.,5.])
ax[1].plot(10**x,10**p(x),"k-", lw=1)

ax[1].set_xscale('log')
ax[1].set_yscale('log')
ax[1].set_xlabel(r'$k_\mathrm{u,exp}$ (s$^{-1}$) ')
ax[1].set_ylabel(r'$k_\mathrm{u,calc}$ (s$^{-1}$) ')

ax[1].plot([1e-6,1e5],[1e-6,1e5], 'k', lw=0.5, ls='--')
ax[1].set_xlim(1e-5,1e4)
ax[1].set_ylim(1e-7,1e4)
ax[0].annotate("A", xy=(-0.2, 0.95), fontsize=24, xycoords=ax[0].get_window_extent)
ax[1].annotate("B", xy=(-0.2, 0.95), fontsize=24, xycoords=ax[1].get_window_extent)

plt.tight_layout()
fig.savefig("predictions.png", dpi=300)

print "R(ku) = %6.4f"%np.corrcoef(np.log10(ku1st), np.log10(kunfold))[0][1]




R(kf) = 0.7942
R(ku) = 0.7313