In [2]:
import os
import sys
import random
import time
from random import seed, randint
import argparse
import platform
from datetime import datetime
import imp
import numpy as np
import fileinput
from itertools import product
import pandas as pd
from scipy.interpolate import griddata
from scipy.interpolate import interp2d
import seaborn as sns
from os import listdir

import matplotlib.pyplot as plt
import seaborn as sns
from scipy.interpolate import griddata
import matplotlib as mpl
sys.path.insert(0,'..')
from notebookFunctions import *
# from .. import notebookFunctions

%matplotlib inline
plt.rcParams['figure.figsize'] = (10,6.180)    #golden ratio
# %matplotlib notebook
%load_ext autoreload
%autoreload 2

In [8]:
pre = "/Users/weilu/Research/server/apr_2018/02_week"
temp = 260
location = pre + "/sixth_expectedEnergy/_280-350/2d_z_qw/force_0.2/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(4, 14), end=(28,24), save=False, xlabel="z_H6", ylabel="Qw")
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location2 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location2, zmin=-500, zmax=-300)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a0d1fe198>
Out[8]:
[<matplotlib.lines.Line2D at 0x1a191e6fd0>]

In [12]:
pre = "/Users/weilu/Research/server/apr_2018/02_week"
temp = 260
location = pre + "/sixth_expectedEnergy/_280-350/2d_z_qw/force_0.2/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(4, 14), end=(28,24), save=False, xlabel="z_H6", ylabel="Qw")
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location2 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location2, zmin=-30, zmax=0, z=4)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a0d1fe198>
Out[12]:
[<matplotlib.lines.Line2D at 0x1a192b5080>]

In [17]:
pre = "/Users/weilu/Research/server/apr_2018/02_week"
temp = 260
location = pre + "/sixth_expectedEnergy/_280-350/2d_z_qw/force_0.2/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(4, 14), end=(28,24), save=False, xlabel="z_H6", ylabel="Qw")
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location2 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location2, zmin=-45, zmax=-10, z=5)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a0d1fe198>
Out[17]:
[<matplotlib.lines.Line2D at 0x1a1a773470>]

In [23]:
pre = "/Users/weilu/Research/server/apr_2018/02_week"
temp = 260
location = pre + "/sixth_expectedEnergy/_280-350/2d_z_qw/force_0.2/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(4, 14), end=(28,24), save=False, xlabel="z_H6", ylabel="Qw")
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location2 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location2, zmin=-5, zmax=20, z=6)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a0d1fe198>
Out[23]:
[<matplotlib.lines.Line2D at 0x1a19003eb8>]

In [3]:
data = pd.read_feather("/Users/weilu/Research/server/apr_2018/second/force_0.02_rg_0.1_lipid_1.0_mem_1_go_0.8/rerun_1_10_Apr_225016.feather")
dic = {"T0":280, "T1":290, "T2":300, "T3":310, "T4":320, "T5":335, "T6":350, "T7":365, "T8":380, "T9":410, "T10":440, "T11":470}
a = data
a["Temp"] = a["Temp"].apply(lambda x: dic[x])
rerun1 = data
t = a.query("Temp < 400").groupby(["BiasTo","Temp"])[["DisReal","Run"]].mean().reset_index()
t["Diff"] = t["DisReal"]-t["BiasTo"].apply(pd.to_numeric)
t["BiasTo"] = t["BiasTo"].apply(pd.to_numeric)
fg = sns.FacetGrid(data=t, hue='Temp', size=8, aspect=1.61)
fg.map(plt.scatter, 'BiasTo', 'Diff').add_legend()


Out[3]:
<seaborn.axisgrid.FacetGrid at 0x1a2b52a470>

In [9]:
rerun1.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a1c849ac8>

In [20]:
rerun1.query("Temp == 300 and z_h6 < -10").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[20]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a1acfcdd8>

In [10]:
rerun1.query("Temp == 300 and DisReal < 55").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a1c862048>

In [ ]:
rerun1.query("Temp == 300 and DisReal < 55").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)

In [22]:
t = rerun1.query("Temp == 300 and DisReal < 55 and z_h6 < -10")
t.groupby(["BiasTo", "Run"])["Qw"].describe().query("count > 300")


Out[22]:
count mean std min 25% 50% 75% max
BiasTo Run
32.0 0 408.0 0.207630 0.022516 0.132922 0.192521 0.206902 0.223214 0.274679
3 646.0 0.295860 0.022529 0.233403 0.279708 0.297560 0.311383 0.358921
34.0 1 350.0 0.305950 0.022710 0.248184 0.288942 0.306891 0.319656 0.364268
2 348.0 0.302553 0.023916 0.234047 0.285842 0.301970 0.318966 0.387317
5 359.0 0.301079 0.023499 0.217187 0.286635 0.300756 0.317220 0.375491
6 348.0 0.303509 0.024971 0.231530 0.285589 0.302540 0.321343 0.374513
8 382.0 0.302625 0.024186 0.241498 0.287331 0.299426 0.319425 0.367993
11 366.0 0.305291 0.024236 0.243061 0.290411 0.306185 0.320459 0.373608
36.0 1 322.0 0.302475 0.026488 0.224957 0.285036 0.303037 0.319929 0.373673
5 405.0 0.302817 0.024464 0.240123 0.286364 0.302248 0.318334 0.388778
7 355.0 0.297774 0.025603 0.224926 0.282275 0.297205 0.316055 0.371603
9 328.0 0.300768 0.023364 0.232542 0.285630 0.301278 0.315238 0.369415
38.0 1 395.0 0.297909 0.024286 0.232771 0.282431 0.295211 0.314988 0.383321
2 410.0 0.296901 0.028159 0.178959 0.281087 0.297486 0.314929 0.376961
6 469.0 0.299374 0.027444 0.224790 0.280788 0.298169 0.317680 0.400986
8 482.0 0.300439 0.024015 0.236319 0.283514 0.300758 0.315697 0.378431
40.0 0 416.0 0.298752 0.026795 0.225444 0.282230 0.299181 0.315989 0.375265
2 427.0 0.300652 0.023760 0.234078 0.284049 0.301228 0.316109 0.359218
5 346.0 0.298074 0.024923 0.206725 0.281198 0.296238 0.315597 0.371299
8 420.0 0.298774 0.024466 0.230950 0.281093 0.298708 0.315803 0.373220
11 301.0 0.293686 0.026253 0.205075 0.279027 0.294424 0.308322 0.378695
42.0 10 550.0 0.290338 0.022129 0.222033 0.276959 0.290725 0.306280 0.350626
44.0 3 550.0 0.295638 0.026440 0.225975 0.278204 0.296254 0.311611 0.396165
5 509.0 0.296504 0.023392 0.228345 0.282192 0.295529 0.311465 0.359904
6 435.0 0.286894 0.033103 0.192652 0.273506 0.290211 0.310525 0.358367
46.0 0 444.0 0.293566 0.024803 0.232870 0.278118 0.292692 0.309750 0.367420
1 345.0 0.286133 0.032047 0.182090 0.267036 0.289887 0.308355 0.369342
3 402.0 0.297618 0.025631 0.232307 0.279979 0.296635 0.314210 0.377506
6 435.0 0.294881 0.024803 0.229723 0.277771 0.292972 0.311775 0.358860
7 411.0 0.292408 0.023057 0.231480 0.276307 0.292923 0.308867 0.364187
48.0 0 489.0 0.293111 0.025162 0.215243 0.276252 0.293997 0.311107 0.366028
4 565.0 0.290827 0.027069 0.217511 0.271691 0.289908 0.309596 0.364749
50.0 3 494.0 0.288745 0.023065 0.191465 0.275506 0.288599 0.302867 0.363905
9 581.0 0.290759 0.024030 0.219821 0.274833 0.291045 0.305578 0.371194
52.0 2 363.0 0.268315 0.040295 0.178919 0.231616 0.277232 0.299423 0.348623
10 413.0 0.281107 0.040133 0.180007 0.263837 0.281966 0.300981 0.409555

In [11]:
rerun1.query("Temp == 300 and DisReal < 55").plot.hexbin("z_h6", "z_h3", cmap="seismic", sharex=False)


Out[11]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a1c62cef0>

In [6]:
rerun1.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[6]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a19cd6240>

In [4]:
rerun1.query("Temp == 300 and z_h5 < -20 and DisReal < 50").plot.hexbin("DisReal", "z_h5", cmap="seismic", sharex=False)
t = rerun1.query("Temp == 300 and z_h5 < -20 and DisReal < 50")
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 300")


Out[4]:
count mean std min 25% 50% 75% max
BiasTo Run
32.0 0 320.0 30.600703 5.089213 15.659740 27.326947 30.489386 33.714216 44.501580
34.0 1 350.0 30.749763 4.732271 18.487694 27.274469 30.553602 34.192073 46.378855
2 348.0 30.650012 4.117803 17.571337 27.831502 30.550741 33.816862 42.919044
5 359.0 30.807649 4.353649 17.893820 27.842581 30.641248 33.576568 43.620992
6 348.0 31.442497 4.381820 16.930372 28.709032 31.525766 34.092051 43.718876
8 381.0 30.479198 4.430799 18.242114 27.447752 30.364277 33.386729 42.698286
11 366.0 30.568140 4.407249 17.242213 27.597367 30.392294 33.368946 44.107742
36.0 1 322.0 31.610923 4.554115 16.442470 28.427412 31.573663 34.545290 44.808560
5 405.0 31.792096 4.493576 18.300224 28.460105 31.698835 34.753392 44.955090
7 355.0 31.980624 4.481062 21.353281 28.712778 31.962010 34.949697 45.396338
9 328.0 32.199280 4.542215 18.414032 29.015070 32.377358 35.266697 47.370807
38.0 1 395.0 33.391924 4.498415 20.176224 30.137547 32.982613 36.261027 49.030869
2 409.0 33.418138 4.895244 21.236112 30.355348 33.120916 36.226249 48.269350
6 469.0 32.976916 4.515556 19.647481 30.150142 32.845168 35.890070 47.124393
8 482.0 33.562322 4.440339 21.268113 30.464877 33.625195 36.647264 45.060788
40.0 0 415.0 34.353749 4.534940 21.406551 31.142116 34.353984 37.214856 48.393647
2 427.0 35.083661 4.455114 24.662640 31.960539 35.017102 38.320103 48.110716
5 345.0 34.669044 4.678243 23.348292 31.418841 34.344363 37.967166 48.171741
8 420.0 34.599973 4.674275 24.366743 31.179520 34.462123 38.009348 47.569496
11 301.0 35.036074 4.570229 22.793838 31.476969 34.915843 38.027037 48.141857
44.0 3 547.0 37.474685 4.265686 21.851974 34.733777 37.459143 40.336012 49.011460
5 507.0 37.582231 4.619758 24.645794 34.234549 37.425842 40.770112 49.832555
6 418.0 37.873560 5.034221 24.196811 34.484058 37.597240 40.968960 49.900429
46.0 0 437.0 39.060455 4.710545 25.717187 35.899471 39.002991 42.436197 49.770467
1 329.0 38.755429 4.619595 26.082116 35.258550 38.899663 42.176299 49.861196
3 398.0 38.881637 4.622304 25.074804 35.940105 39.048328 41.980755 49.131202
6 433.0 38.864495 4.458226 22.741744 35.736110 39.067321 42.224370 48.493042
7 407.0 38.341217 4.533874 25.624146 35.230563 38.689933 41.435068 49.012736
48.0 0 483.0 40.219442 4.316037 26.694145 37.225257 40.330396 43.417476 49.972263
4 545.0 40.040957 4.451745 28.092196 36.775364 40.043420 43.182294 49.859849
50.0 3 469.0 41.368375 4.203223 27.445262 38.755971 41.666380 44.530420 49.819812
9 553.0 41.025948 4.445371 28.651777 37.817299 41.223216 44.201592 49.903475
52.0 10 302.0 43.083734 3.849976 31.860405 40.514810 43.565921 46.080353 49.825383

In [75]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 280
location = pre + "/second_freeEnergy_1/_280-350/2d_z_qw/force_0.0/"
location2 = location + f"pmf-{temp}.dat"
# , block=[-15,-10,0.5,0.9]
path, f = shortest_path(location2, start=(3, 10), plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=120)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a16d648d0>
Out[75]:
[<matplotlib.lines.Line2D at 0x1a2c122be0>]

In [29]:
t = rerun1.query("Temp < 350 and DisReal < 60 and z_h6 < -10 and Qw  < 0.4 and Qw > 0.2")
t.groupby(["BiasTo", "Run"])["DisReal"].describe()


Out[29]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 4 6.0 41.006222 5.041650 33.110139 38.101547 42.197567 45.108890 45.716518
34.0 2 43.0 39.949554 5.164750 31.090879 35.533119 39.389264 42.208664 51.736888
7 11.0 36.640621 6.045258 27.088338 32.449004 36.995894 41.051114 46.113603
8 1.0 27.806744 NaN 27.806744 27.806744 27.806744 27.806744 27.806744
10 872.0 32.181324 4.841434 16.764560 28.929615 31.956359 35.396399 52.786074
36.0 4 7.0 42.909455 3.404116 38.716239 40.446675 43.216252 44.552141 48.436060
40.0 3 1.0 43.163209 NaN 43.163209 43.163209 43.163209 43.163209 43.163209
8 31.0 44.539105 6.060073 31.727845 40.723865 43.374401 49.418043 57.363641
10 2.0 36.089678 2.913776 34.029327 35.059502 36.089678 37.119853 38.150028
11 1.0 29.796479 NaN 29.796479 29.796479 29.796479 29.796479 29.796479
42.0 9 6.0 49.784714 5.276936 40.146452 49.330081 50.559151 52.184937 55.796271
46.0 0 299.0 49.906283 4.735988 36.525933 46.657418 50.020159 53.264903 59.924340
2 32.0 52.443186 3.907864 45.366041 49.494201 53.068668 55.311558 59.252062
6 19.0 51.484882 5.341404 41.507961 47.895421 53.528449 56.152731 59.363497
7 202.0 44.307198 6.869292 29.087520 39.205512 43.352594 49.349331 59.337085
9 5.0 51.091808 4.004346 46.997042 49.711992 50.107722 50.882936 57.759348
48.0 7 9.0 51.232610 6.215824 42.474518 47.804201 50.764755 57.736108 58.496795
9 13.0 50.710592 3.304929 45.868227 47.873837 50.794927 53.009640 56.656699
54.0 0 3.0 57.694482 3.391918 53.778368 56.687414 59.596460 59.652539 59.708618
6 18.0 55.960376 1.513157 53.573642 54.935420 55.518765 56.681682 59.945366
9 3.0 40.110784 1.508486 38.567418 39.375283 40.183147 40.882466 41.581785
11 1.0 48.324070 NaN 48.324070 48.324070 48.324070 48.324070 48.324070
68.0 3 2.0 56.373507 2.118943 54.875188 55.624347 56.373507 57.122666 57.871826
70.0 4 10.0 56.336501 2.864167 52.458914 53.612847 56.374691 58.880549 59.707680
9 32.0 58.232478 1.438579 55.363267 57.162003 58.346373 59.482124 59.925406

In [41]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 290
location = pre + "/first_freeEnergy_1/_280-350/2d_z_qw/force_0.1/"
location2 = location + f"pmf-{temp}.dat"
# , block=[-15,-10,0.5,0.9]
path, f = shortest_path(location2, start=(3, 10), plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=120)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a16d648d0>
Out[41]:
[<matplotlib.lines.Line2D at 0x1a26fe0438>]

In [36]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 290
location = pre + "/first_freeEnergy_1/_280-350/2d_z_qw/remove_34_46_force_0.1/"
location2 = location + f"pmf-{temp}.dat"
# , block=[-15,-10,0.5,0.9]
path, f = shortest_path(location2, start=(3, 10), plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a16d648d0>
Out[36]:
[<matplotlib.lines.Line2D at 0x1a275829e8>]

In [28]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 300
location = pre + "/first_freeEnergy_1/_280-350/2d_z_qw/remove_34/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(3, 10), plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a16d648d0>
Out[28]:
[<matplotlib.lines.Line2D at 0x1a26c0b2e8>]

In [13]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 300
location = pre + "/first_freeEnergy_1/_280-350/2d_z_qw/quick/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(3, 10), plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1a16d648d0>
Out[13]:
[<matplotlib.lines.Line2D at 0x1a2475b9b0>]

In [151]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 320
location = pre + "/tenth_freeEnergy_5/_280-350/2d_z_qw/remove_52_and_30/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(1, 10), block=[-15,-10,0.5,0.9], plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1157877f0>
Out[151]:
[<matplotlib.lines.Line2D at 0x1a5eb03630>]

In [147]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 310
location = pre + "/tenth_freeEnergy_5/_280-350/2d_z_qw/quick/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(1, 10), block=[-15,-10,0.5,0.9], plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1157877f0>
Out[147]:
[<matplotlib.lines.Line2D at 0x1a60100860>]

In [126]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 270
location = pre + "/tenth_freeEnergy_3/_280-350/2d_z_qw/force_0.0/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(1, 10), block=[-15,-10,0.5,0.9], plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1157877f0>
Out[126]:
[<matplotlib.lines.Line2D at 0x1a83c78630>]

In [55]:
pre = "/Users/weilu/Research/server/apr_2018/01_week"
temp = 280
location = pre + "/tenth_freeEnergy_3_less_temp/_280-350/2d_z_qw/force_0.0/"
location2 = location + f"pmf-{temp}.dat"
path, f = shortest_path(location2, start=(1, 10), block=[-15,-10,0.5,0.9], plot1d=True, save=False)
# plt.savefig("/Users/weilu/papers/figures/2d_z6_qw.png", dpi=300)
# plt.savefig("/Users/weilu/papers/figures/shortest_path.png", dpi=300)
location3 = location + f"evpb-{temp}.dat"
(xi,yi,zi) = plot2d(location3, zmax=100)
plt.plot(xi[path[:,1]], yi[path[:,0]], 'r.-')
# plt.savefig("/Users/weilu/papers/figures/2d_expected_dis.png", dpi=300)
plt.figure()
f_on_path = [zi[tuple(p)] for p in reversed(path)]
plt.plot(f_on_path)
# plt.savefig("/Users/weilu/papers/figures/shortest_path_expected_dis.png", dpi=300)


<matplotlib.colors.LinearSegmentedColormap object at 0x1157877f0>
Out[55]:
[<matplotlib.lines.Line2D at 0x1a2beb58d0>]

In [42]:


In [43]:


In [44]:
data = pd.read_feather("/Users/weilu/Research/server/apr_2018/second/force_0.04_rg_0.15_lipid_1.0_mem_1_go_0.8/rerun_1_09_Apr_154731.feather")
dic = {"T0":280, "T1":290, "T2":300, "T3":310, "T4":320, "T5":335, "T6":350, "T7":365, "T8":380, "T9":410, "T10":440, "T11":470}
a = data
a["Temp"] = a["Temp"].apply(lambda x: dic[x])
rerun1 = data
t = a.query("Temp < 400").groupby(["BiasTo","Temp"])[["DisReal","Run"]].mean().reset_index()
t["Diff"] = t["DisReal"]-t["BiasTo"].apply(pd.to_numeric)
t["BiasTo"] = t["BiasTo"].apply(pd.to_numeric)
fg = sns.FacetGrid(data=t, hue='Temp', size=8, aspect=1.61)
fg.map(plt.scatter, 'BiasTo', 'Diff').add_legend()


Out[44]:
<seaborn.axisgrid.FacetGrid at 0x1a29fa96d8>

In [5]:
t = a.query("Temp < 400").groupby(["BiasTo","Temp"])[["DisReal","Run"]].mean().reset_index()
t["Diff"] = t["DisReal"]-t["BiasTo"].apply(pd.to_numeric)
t["BiasTo"] = t["BiasTo"].apply(pd.to_numeric)
fg = sns.FacetGrid(data=t, hue='Temp', size=8, aspect=1.61)
fg.map(plt.scatter, 'BiasTo', 'Diff').add_legend()


Out[5]:
<seaborn.axisgrid.FacetGrid at 0x1a22a918d0>

In [50]:
rerun1.query("Temp == 280").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[50]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2547dc88>

In [65]:
rerun1.query("Temp == 300").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[65]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a54c2af60>

In [66]:
rerun1.query("Temp == 300 and z_h5 < -20 and DisReal < 50").plot.hexbin("DisReal", "z_h5", cmap="seismic", sharex=False)
t = rerun1.query("Temp == 300 and z_h5 < -20 and DisReal < 50")
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 300")


Out[66]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a275a98d0>

In [68]:



Out[68]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 0 304.0 29.979023 4.790765 13.705478 26.875790 29.877991 32.810311 44.084832
1 321.0 29.644018 4.517274 17.891105 26.533124 29.738254 32.575121 44.005556
5 344.0 29.754010 4.491797 16.993181 27.042696 29.681701 32.712464 41.226739
8 330.0 30.441045 4.424125 14.388906 27.534684 30.250623 33.173724 43.364021
9 328.0 29.931905 4.240580 18.450473 26.948791 29.885532 32.737185 40.656914
34.0 1 394.0 32.462580 4.382931 19.792071 29.657475 32.524224 35.446231 45.513583
2 325.0 32.752681 4.535961 19.289740 29.819029 32.740985 36.009455 44.359873
3 302.0 32.822112 4.524936 22.141380 29.733919 32.774411 35.804096 44.384750
4 398.0 32.389971 4.290879 20.187013 29.591531 32.353272 34.881566 44.043286
36.0 0 367.0 33.305430 4.317637 21.629140 29.993074 33.260484 36.211089 47.261113
1 400.0 34.364454 4.530151 21.893598 31.345396 34.349174 37.183175 46.116171
7 384.0 33.642128 4.769815 20.561968 30.336517 33.418239 37.024575 47.247295
11 370.0 34.424845 4.451086 22.233200 31.482867 34.240181 37.722697 48.325648
38.0 4 579.0 36.880259 5.490024 22.359146 33.040469 36.612923 40.685759 49.986397
5 481.0 35.314404 4.391869 21.529822 32.257253 35.310916 38.186951 48.220139
8 443.0 35.378696 4.496303 22.874511 32.218225 35.239426 38.481410 49.785316
40.0 2 308.0 36.649061 4.995315 22.611220 33.235333 36.567645 39.884125 49.654730
3 310.0 36.177240 4.647701 24.580325 32.858440 35.998416 39.346971 47.881250
4 398.0 36.443190 4.514258 22.690500 33.498606 36.639893 39.630461 48.037086
9 429.0 37.048543 4.840340 23.310791 33.899419 37.161046 40.706441 48.557046
42.0 5 406.0 37.732604 4.493181 24.132447 34.611803 37.718531 40.872639 49.668550
10 446.0 37.731362 4.330579 25.725483 34.454804 37.593847 40.716017 49.816359
44.0 1 339.0 39.602261 4.530057 28.195416 36.635874 39.662952 42.958963 49.923268
5 324.0 39.733014 4.525915 27.884550 36.743964 39.615360 42.669845 49.920130
7 463.0 39.515229 4.427439 27.344606 36.686821 39.868041 42.796974 49.858770
10 422.0 39.163437 4.720635 21.410014 35.986818 39.069022 42.610669 49.568808
11 347.0 39.248348 4.542191 27.348084 36.236094 39.262928 42.483500 49.961964
46.0 0 418.0 40.619876 4.354686 27.843686 37.836525 40.692501 43.744947 49.946566
3 459.0 40.919039 4.371154 28.977153 38.082099 41.117773 44.152462 49.972463
6 453.0 40.742784 4.336766 29.864420 37.664342 40.944588 44.035930 49.904709
9 483.0 40.294067 4.329095 28.732254 37.261039 40.479785 43.206031 49.884505
48.0 0 350.0 41.421598 4.382525 25.362666 38.507405 41.465709 44.954527 49.766820
2 364.0 42.079499 4.138902 30.335834 39.435982 42.134848 44.813583 49.882612
11 418.0 41.920377 4.206719 29.919265 39.250647 42.530749 44.982215 49.997791
52.0 5 371.0 43.742936 3.581647 30.745418 41.322944 43.881151 46.466176 49.917294

In [ ]:
rerun1.query("Temp == 280").plot.hexbin("DisReal", "z_h5", cmap="seismic", sharex=False)

In [6]:
rerun1.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[6]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2276e978>

In [31]:
rerun3.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[31]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a29293f98>

In [108]:
rerun5.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[108]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a60154dd8>

In [9]:
rerun1.query("Temp == 300 and DisReal > 60 and z_h6 > -10").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)

rerun1.query("Temp == 300 and DisReal > 60 and z_h6 > -10").shape


Out[9]:
(44424, 43)

In [158]:
rerun3.query("Temp == 300 and DisReal > 60 and z_h6 > -10").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)

rerun3.query("Temp == 300 and DisReal > 60 and z_h6 > -10").shape


Out[158]:
(17082, 43)

In [157]:
rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)

rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10").shape


Out[157]:
(10766, 43)

In [161]:
rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10 and Lipid1 > -5").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)

rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10 and Lipid1 > -5").shape


Out[161]:
(1410, 43)

In [162]:
rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10 and Lipid1 < -5").plot.hexbin("z_h6", "Lipid1", cmap="seismic", sharex=False)

rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10 and Lipid1 < -5").shape


Out[162]:
(9356, 43)

The problem is that convergence is too slow I think.


In [165]:
rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10 and Lipid1 < -5").groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 100")


Out[165]:
count mean std min 25% 50% 75% max
BiasTo Run
100.0 4 291.0 101.290983 4.914689 86.579550 97.997594 101.602563 104.648987 113.736413
80.0 9 160.0 80.056665 4.733235 69.595291 76.925908 79.666362 83.291439 93.704545
84.0 0 154.0 86.847791 5.733815 75.881057 82.671942 86.352351 91.036747 105.955720
1 150.0 83.663390 4.831534 72.431718 79.776429 83.866325 86.548257 96.760654
7 109.0 66.520216 6.384462 60.021062 61.344709 63.221418 71.311561 81.221194
9 182.0 80.644752 4.641475 66.935735 77.478708 80.518190 83.822827 95.109196
88.0 0 416.0 88.691537 5.686923 73.481455 84.382588 88.868544 92.483306 103.152485
1 395.0 84.072939 5.126198 63.522197 80.824414 84.401033 87.382173 99.204221
2 120.0 93.013277 4.938997 78.700207 89.525464 92.927306 96.223770 110.960913
3 526.0 85.880574 4.941370 70.467115 82.511596 85.923398 89.076483 104.171858
9 178.0 90.929513 5.342915 74.163396 87.247793 90.370119 94.217393 104.348811
10 116.0 91.904287 5.454988 76.575644 88.624011 91.657609 96.406329 104.028057
11 213.0 86.409209 5.013692 74.382506 83.111880 86.086568 89.393202 104.485684
90.0 3 177.0 92.022529 6.496569 74.044918 87.811923 92.602703 95.800873 107.293983
4 124.0 92.680477 5.175468 77.225293 89.009148 92.756547 97.018139 104.639917
5 144.0 88.600461 5.398619 76.846153 84.725755 88.356667 92.344662 103.148131
8 260.0 88.191447 4.884069 76.657861 84.779059 88.025785 91.480807 104.350145
9 144.0 92.761811 5.176547 78.058877 89.941068 92.917139 95.985245 104.965785
92.0 1 163.0 95.032807 5.439215 75.579980 91.546305 94.887129 98.358832 109.956456
2 218.0 87.742949 4.868243 76.067328 84.316909 87.946001 90.743216 101.191623
4 126.0 94.748303 5.013327 83.802866 91.334321 94.383913 97.923619 106.351076
5 224.0 94.529308 5.673440 77.623815 91.000031 94.504562 98.344721 108.717923
8 240.0 93.287250 5.448400 79.897277 89.447653 92.947305 96.752970 108.378930
9 190.0 86.878637 5.129757 75.520161 83.486481 86.398769 90.083818 104.813487
94.0 0 599.0 90.452648 5.018139 73.192655 86.793777 90.305607 93.761666 104.710011
4 154.0 91.322481 5.369170 79.386582 87.711463 91.113092 94.228464 112.906898
5 214.0 95.329540 4.978814 82.674000 92.222113 95.608548 98.696176 107.752551
10 308.0 92.584228 9.994715 60.825264 89.701218 95.330814 98.930434 113.695503
96.0 1 271.0 97.138030 5.382518 83.537617 93.521440 96.907231 100.534041 113.967276
2 160.0 98.726043 5.535312 84.045245 94.662148 98.494065 102.944248 110.989851
7 191.0 98.313458 5.349487 84.984262 94.949656 98.692672 102.293149 113.560510
8 356.0 97.912529 5.360339 85.289507 93.890598 97.818150 101.898636 115.164603
98.0 9 448.0 99.577290 5.500899 81.445258 95.804577 99.850925 103.204493 113.819815

In [133]:
rerun3.query("Temp == 300 and DisReal < 60 and z_h6 < -10").groupby(["BiasTo", "Run"])["DisReal"].describe()


Out[133]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 5 198.0 29.336068 3.950605 19.336090 26.903153 29.186558 31.891191 41.489075
6 276.0 29.636263 4.360028 19.859353 26.500580 29.388270 32.715810 43.859331
32.0 8 328.0 30.973013 4.532931 19.527018 27.872598 30.884822 33.807393 46.069122
10 30.0 32.144568 4.226787 24.855882 28.795477 31.613792 34.753016 42.810558
36.0 10 18.0 34.693258 3.546499 25.427479 32.634434 35.001718 36.928215 40.005021
48.0 0 10.0 45.752164 5.198689 36.677268 42.916804 46.584106 48.765530 52.269899
3 2.0 47.033096 3.602952 44.485424 45.759260 47.033096 48.306932 49.580768
50.0 1 6.0 55.148826 4.149208 49.991137 52.239366 54.663588 58.877874 59.860716
2 81.0 52.621320 5.223459 36.729027 49.800749 53.284565 56.531006 59.992958
3 3.0 53.325541 1.396782 51.743503 52.794139 53.844776 54.116560 54.388345
4 90.0 50.157335 5.215401 37.003271 46.413763 49.488309 54.522507 59.738818
5 8.0 55.825293 2.656410 51.689690 54.367031 57.228660 57.576248 58.010585
6 6.0 55.729481 2.181204 52.023106 54.801028 56.694051 56.875744 57.859350
7 122.0 54.810251 3.574890 44.419525 52.276434 55.394273 57.743415 59.974125
52.0 1 20.0 55.443303 3.453660 47.710008 54.028646 55.538788 57.918754 59.958714
7 26.0 52.919640 3.398741 46.065557 50.947097 53.057708 55.145351 59.174719
8 12.0 55.810775 3.714312 47.287634 53.730993 56.812499 58.635310 59.440824
54.0 11 5.0 54.355347 2.856183 50.113638 53.285473 54.488018 56.762857 57.126752
58.0 0 1.0 59.780390 NaN 59.780390 59.780390 59.780390 59.780390 59.780390
7 16.0 56.420526 3.541696 46.886228 55.137791 57.320794 58.912627 59.886564
60.0 6 3.0 57.093266 1.685845 55.200260 56.423501 57.646741 58.039768 58.432795
62.0 4 18.0 57.172135 2.918663 49.742723 57.029016 58.270282 59.239834 59.933577
86.0 11 1.0 59.543311 NaN 59.543311 59.543311 59.543311 59.543311 59.543311

In [129]:
rerun3.query("Temp == 300 and DisReal < 60 and z_h6 < -10").shape


Out[129]:
(1280, 43)

In [17]:
rerun1.query("Temp == 300 and DisReal > 60 and z_h6 < -10").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[17]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2509a748>

In [76]:
rerun3.query("Temp == 300 and DisReal > 60").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[76]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a549e3588>

In [116]:
rerun5.query("Temp == 300 and DisReal > 60").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[116]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2be30b70>

In [117]:
rerun5.query("Temp == 300 and DisReal > 60").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)


Out[117]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2da9a828>

In [118]:
rerun5.query("Temp == 300 and DisReal > 60 and z_h6 > -10").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)


Out[118]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a58a7a5f8>

In [ ]:

what is in the low Qw region(~0.1)


In [78]:
rerun3.query("Temp == 300 and DisReal > 60 and Qw < 0.18").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[78]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a55837be0>

In [89]:
t = rerun3.query("Temp == 300 and DisReal > 60 and Qw < 0.18")
t.plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)


Out[89]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a29863438>

In [97]:
t = rerun3.query("Temp == 300 and DisReal > 60 and Qw < 0.18")
t.plot.hexbin("z_h6", "TotalE", cmap="seismic", sharex=False)


Out[97]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a20138ba8>

In [98]:
t = rerun3.query("Temp == 300 and DisReal > 60 and Qw < 0.18").query("z_h6 < -10")
t.plot.hexbin("z_h6", "DisReal", cmap="seismic", sharex=False)


Out[98]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2bf1dd68>

In [99]:
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 100")


Out[99]:
count mean std min 25% 50% 75% max
BiasTo Run
100.0 0 144.0 104.491798 6.013065 91.459340 99.861528 104.285855 108.292318 121.219092
6 152.0 104.477376 5.422986 90.680979 101.172589 104.762606 107.617664 119.886242
90.0 6 106.0 94.836557 5.749155 80.277562 91.476685 94.520254 98.217675 116.407320
92.0 1 148.0 98.649970 5.661622 83.443603 94.866793 97.705651 102.615247 114.614200
10 156.0 96.972439 6.073583 79.289039 92.648303 97.136581 100.876661 112.366644
96.0 2 148.0 101.636645 5.661003 88.771541 98.005296 101.729532 105.716271 118.442263
3 120.0 99.630442 5.560884 82.621458 96.227725 100.399388 102.967266 112.166182
98.0 3 208.0 102.161039 5.401836 83.150945 98.446380 101.919437 105.607198 119.205003
4 131.0 102.488535 5.713089 87.220700 98.369990 102.775055 106.193395 117.177513
8 121.0 102.376961 6.269927 87.779664 98.322363 102.088827 105.704551 120.412257

In [104]:
t = rerun3.query("Temp == 300 and DisReal > 60 and Qw < 0.18").query("z_h6 > -10")
t.plot.hexbin("z_h6", "DisReal", cmap="seismic", sharex=False)


Out[104]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2daa2da0>

In [105]:
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 100")


Out[105]:
count mean std min 25% 50% 75% max
BiasTo Run
100.0 3 343.0 101.419737 5.344603 88.471741 97.948046 101.193647 105.224594 116.639743
5 133.0 101.743107 5.215276 89.262132 98.154284 101.732000 105.369159 117.949514
8 237.0 101.403051 5.389449 88.268174 97.258334 101.131563 105.215454 115.846037
10 271.0 102.294095 5.322607 84.519699 98.983044 102.220950 106.238675 115.483940
11 190.0 102.240759 5.173857 87.112626 98.689538 102.592647 105.600489 116.393328
80.0 1 295.0 83.725518 5.320322 71.601636 79.449579 83.800767 87.463644 98.414480
3 184.0 84.322601 6.032452 68.884681 80.134650 84.463636 88.162564 100.143565
5 238.0 82.250431 5.323923 66.376455 79.014000 82.117065 85.466534 97.980040
6 239.0 83.959596 5.283500 69.065391 80.471425 84.460431 87.018960 99.419883
9 370.0 83.464110 5.184569 68.024194 80.065255 83.194071 86.826692 99.624269
10 150.0 83.591743 5.479064 72.777700 79.593404 83.597017 87.637008 96.069277
84.0 1 144.0 86.620354 5.845277 69.958706 82.286564 86.721995 90.106481 101.845931
8 158.0 86.305667 4.921131 71.949944 82.860028 87.076810 89.414453 99.457320
10 146.0 86.746866 5.729380 72.995224 82.324080 86.265695 90.347880 100.849729
11 147.0 86.818128 5.195763 72.925778 83.445519 87.181429 90.135563 99.213723
88.0 0 122.0 91.495361 4.552710 78.015671 88.278897 91.350692 94.303603 104.367169
1 156.0 90.619782 5.092408 77.400641 86.644256 90.898990 93.994523 106.082967
2 157.0 90.519874 5.007912 78.645786 87.381845 90.433571 94.089745 104.368808
4 118.0 88.162467 6.004869 75.220847 83.562134 87.616361 93.076441 102.811417
6 161.0 90.223707 5.301429 77.193535 86.577150 90.610569 93.295657 106.617391
7 154.0 91.054202 5.066067 75.218310 88.020922 91.353845 94.741519 101.490822
8 147.0 91.019100 5.353024 77.322312 87.204732 91.342619 94.679690 105.731032
11 312.0 90.746532 5.516535 72.802829 87.341199 90.963266 94.386680 103.411247
90.0 2 227.0 92.477460 5.362277 78.167770 89.232440 92.793720 96.536465 106.534644
3 151.0 92.069256 5.170890 80.429869 88.175550 91.385073 95.578193 107.327533
4 210.0 92.148623 5.503215 76.057310 88.533815 91.884827 95.279972 106.152031
8 110.0 91.235474 4.825832 79.876495 87.556499 91.698293 93.993410 102.969739
10 125.0 91.523449 5.239083 77.679926 87.943114 91.937501 94.936225 105.611906
92.0 3 152.0 94.427903 5.578285 83.000003 90.313785 94.191581 97.810216 108.375412
8 288.0 94.651978 5.249958 81.261607 90.686894 94.634416 98.063185 109.326186
9 180.0 93.604335 5.265653 78.810665 90.073513 93.454337 97.004841 107.684861
11 107.0 95.811854 5.709908 84.858141 92.187122 95.480859 99.858725 112.476407
94.0 0 223.0 97.000770 5.070741 84.975848 93.202979 97.562265 100.572276 113.135545
1 115.0 96.787236 5.886649 81.948847 93.231287 96.537970 100.195595 112.412212
2 164.0 96.548006 4.853964 82.458984 92.809060 96.833227 100.315487 112.083958
4 173.0 96.525051 5.541299 83.775962 92.797773 96.257867 100.139837 110.602757
6 136.0 95.696398 5.473483 82.625543 92.479375 95.425257 99.008615 110.357449
9 199.0 96.663555 5.123588 85.116593 92.958629 96.785625 99.634166 110.654366
10 222.0 96.253284 5.257964 82.307029 92.854815 96.005613 99.482751 108.893141
11 144.0 95.012932 5.279298 83.130842 91.753912 95.069447 98.213289 107.339766
96.0 0 135.0 99.193167 4.814695 85.831601 96.082552 99.289575 102.443407 115.480518
4 151.0 97.202784 4.762319 83.666895 94.222227 97.238807 100.232032 110.823329
5 123.0 97.766732 5.192767 84.791851 93.951835 98.236856 101.413631 108.357424
8 143.0 98.391997 5.033282 84.603583 94.744820 98.656281 101.261500 111.328596
11 193.0 98.464471 5.058766 87.812560 94.644367 98.573577 102.112389 113.575824
98.0 0 206.0 99.467782 5.481900 81.509614 96.167807 99.586660 103.036994 113.936211
7 254.0 99.985547 5.379235 86.040609 96.225558 100.224658 103.758493 114.780268
9 269.0 99.922524 4.870982 84.277430 96.794690 99.601445 103.055479 115.807165
10 236.0 99.425080 5.041973 85.731022 96.224602 99.256099 102.834661 112.692029

In [32]:
rerun1.query("(z_h6 < -10 or DisReal > 60) and Temp == 300").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[32]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a29467cf8>

In [21]:
rerun3.query("(z_h6 < -10 or DisReal > 60) and Temp == 300").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[21]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a20d548d0>

In [33]:
rerun3.query("Temp == 300").plot.hexbin("Qw", "z_h6", cmap="seismic", sharex=False)


Out[33]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a2a976898>

In [7]:
data.query("Temp == 300").hist("Lipid1", bins=50)


Out[7]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x110b0b4a8>]], dtype=object)

In [27]:
rerun3.query("Temp == 300 and DisReal < 60").hist("Lipid1", bins=50)


Out[27]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1ed000b8>]], dtype=object)

Rerun 7


In [122]:
data = pd.read_feather("/Users/weilu/Research/server/mar_2018/ninth/force_0.06_rg_0.15_lipid_1.0_mem_1_go_0.8/rerun_7_04_Apr_231330.feather")
dic = {"T0":280, "T1":290, "T2":300, "T3":310, "T4":320, "T5":335, "T6":350, "T7":365, "T8":380, "T9":410, "T10":440, "T11":470}
a = data
a["Temp"] = a["Temp"].apply(lambda x: dic[x])

In [123]:
rerun7 = data
# data["BiasTo"] = data["BiasTo"].apply(pd.to_numeric)

In [124]:
data.query("Temp == 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[124]:
<matplotlib.axes._subplots.AxesSubplot at 0x10cb1fa90>

In [154]:
data.query("Temp == 300 and DisReal > 60").shape


Out[154]:
(28983, 43)

In [125]:
data.query("Temp == 300").plot.hexbin("TotalE", "Qw", cmap="seismic", sharex=False)


Out[125]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a22c04a90>

In [139]:
data.query("Temp == 300 and Qw > 0.6").plot.hexbin("TotalE", "DisReal", cmap="seismic", sharex=False)


Out[139]:
<matplotlib.axes._subplots.AxesSubplot at 0x10cea14a8>

In [134]:
data.query("Temp == 300 and Qw > 0.6")["TotalE"].hist(bins=50)
data.query("Temp == 300 and Qw > 0.6")["TotalE"].mean()


Out[134]:
-908.9993475062817

In [148]:
data.query("Temp == 300 and z_h6 < -10 and Qw > 0.3").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[148]:
<matplotlib.axes._subplots.AxesSubplot at 0x10cbd5940>

In [164]:
data.query("Temp == 300 and Qw < 0.6")["z_h6"].hist(bins=50)


Out[164]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a20134da0>

In [203]:
data.query("Temp == 300 and Qw > 0.3 and z_h6 < -10 and DisReal > 60")["TotalE"].hist(bins=50)
print(data.query("Temp == 300 and Qw > 0.3 and z_h6 < -10 and DisReal > 60")["TotalE"].mean())
data.query("Temp == 300 and Qw > 0.3 and z_h6 < -10 and DisReal > 60").shape


-858.5170866171323
Out[203]:
(7175, 43)

Two part here,

One with DisReal > 60


In [204]:
data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal > 60")["TotalE"].hist(bins=50)
print(data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal > 60").shape)
data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal > 60")["TotalE"].mean()


(6221, 43)
Out[204]:
-875.0166693690952

In [195]:
t = data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal > 60")
t.groupby(["BiasTo", "Run"])["Qw"].describe().query("count > 100")


Out[195]:
count mean std min 25% 50% 75% max
BiasTo Run
72.0 8 251.0 0.331380 0.016914 0.300520 0.318481 0.329844 0.343734 0.402180
74.0 8 115.0 0.350842 0.024570 0.300538 0.334939 0.349419 0.361610 0.435940
11 184.0 0.352030 0.025777 0.300973 0.334212 0.350647 0.364934 0.442350
78.0 2 582.0 0.350725 0.021947 0.301000 0.335213 0.349560 0.365497 0.418287
80.0 1 383.0 0.347422 0.021195 0.303433 0.331633 0.346739 0.360955 0.411149
7 478.0 0.349377 0.022634 0.300982 0.332810 0.347720 0.363692 0.418313
8 382.0 0.346878 0.021583 0.300855 0.330785 0.346393 0.360646 0.421669
9 396.0 0.349728 0.021193 0.301145 0.333405 0.349832 0.365705 0.411630
84.0 7 361.0 0.347062 0.020163 0.300202 0.332871 0.345651 0.360076 0.416170
88.0 1 489.0 0.387654 0.031921 0.300672 0.365318 0.389423 0.410119 0.472375
10 459.0 0.399617 0.030593 0.318703 0.381806 0.400317 0.419547 0.487651
90.0 9 204.0 0.344613 0.020983 0.300634 0.329445 0.344976 0.358986 0.404646
10 225.0 0.398894 0.027372 0.316385 0.383034 0.398304 0.415516 0.468483
92.0 8 471.0 0.372714 0.032957 0.302890 0.347729 0.370922 0.396583 0.470442
11 198.0 0.341023 0.020253 0.304259 0.325441 0.339567 0.353536 0.428579
96.0 5 383.0 0.339173 0.020122 0.300796 0.324488 0.338162 0.350960 0.411800
9 393.0 0.340088 0.019831 0.302228 0.325773 0.339094 0.352400 0.399826

DisReal < 60


In [190]:
data.query("Temp == 300 and z_h6 > -10 and Qw < 0.6 and DisReal < 60")["TotalE"].hist(bins=50)
data.query("Temp == 300 and z_h6 > -10 and Qw < 0.6 and DisReal < 60")["TotalE"].mean()


Out[190]:
-896.6218664373583

In [206]:
t = data.query("Temp == 300 and z_h6 > -10 and Qw < 0.6 and DisReal < 60")
t.groupby(["BiasTo", "Run"])["TotalE"].describe().query("count > 100")


Out[206]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 0 394.0 -890.251209 19.283854 -947.544810 -904.379298 -888.767989 -877.038622 -838.763927
3 620.0 -901.879032 18.444902 -961.730918 -914.355321 -901.868031 -888.899866 -845.904847
5 114.0 -889.103539 17.625567 -935.345576 -901.511543 -888.432567 -878.658842 -850.719708
7 332.0 -885.430943 17.821426 -932.626242 -897.484021 -885.885062 -873.832352 -835.073611
8 588.0 -899.772309 18.880098 -957.719562 -912.416068 -900.452462 -888.016278 -823.522148
32.0 3 632.0 -899.654913 18.584577 -951.211078 -912.247703 -899.309120 -887.062842 -843.420836
6 194.0 -883.791805 17.641747 -927.904285 -896.698596 -883.547391 -872.018513 -829.492370
9 558.0 -901.007225 19.587102 -947.474355 -913.153758 -901.538200 -888.388642 -837.419089
10 157.0 -887.753531 19.533920 -945.888816 -900.551720 -887.865169 -873.062984 -839.553259
34.0 0 303.0 -901.857320 18.758789 -956.152877 -914.247053 -900.549990 -888.930325 -857.552025
5 206.0 -881.787809 17.559785 -935.028185 -893.783233 -884.337537 -868.700505 -817.040406
6 499.0 -886.639411 19.204203 -956.004474 -898.319677 -886.362851 -873.585164 -831.227083
8 439.0 -886.771852 18.936983 -935.404168 -900.759851 -888.298555 -873.989461 -819.988017
9 166.0 -875.682184 18.760039 -920.377910 -887.859687 -874.233890 -864.202902 -833.039203
10 468.0 -889.802760 19.740321 -940.281849 -903.157731 -890.244557 -876.323514 -839.329975
11 390.0 -889.543798 20.667989 -945.690371 -902.701796 -889.173510 -876.046579 -827.609107
36.0 6 745.0 -898.672030 17.722600 -944.592028 -911.162059 -899.124975 -887.156187 -838.921809
9 178.0 -887.958891 19.361262 -933.458611 -901.874268 -887.386495 -874.446654 -839.795967
10 751.0 -899.442786 18.264277 -948.574290 -911.876551 -899.434582 -887.730034 -842.397713
38.0 0 190.0 -887.070169 19.997046 -932.513527 -899.400700 -887.331952 -873.157369 -837.380043
1 803.0 -897.982131 18.899288 -948.417071 -910.692875 -898.353706 -884.968253 -845.413398
2 292.0 -884.828799 18.548164 -929.632641 -895.771273 -886.483368 -872.085254 -822.687180
3 284.0 -888.637338 17.777921 -935.713625 -900.609155 -888.930495 -875.283016 -841.905732
9 202.0 -888.994218 18.454132 -940.793974 -900.077167 -890.945484 -876.725354 -840.839724
40.0 0 332.0 -881.066871 18.798838 -931.016997 -894.962503 -880.563670 -868.173569 -824.507881
1 421.0 -884.327925 18.959000 -934.258436 -897.606460 -886.138082 -871.902673 -829.521160
2 433.0 -886.459083 18.767784 -937.516092 -899.308611 -886.358190 -874.860867 -837.242895
3 415.0 -886.970365 19.547075 -932.519441 -900.623635 -888.358786 -873.599376 -823.503081
6 266.0 -874.557970 18.951226 -920.341500 -886.050496 -874.460368 -862.144591 -811.120793
8 303.0 -885.330511 17.744929 -934.041834 -897.705181 -884.941002 -874.706651 -834.326246
... ... ... ... ... ... ... ... ... ...
66.0 0 121.0 -901.122000 18.884814 -950.234870 -914.512399 -900.147314 -891.314805 -847.123991
1 116.0 -895.673453 20.593193 -943.158672 -909.286231 -892.700447 -882.176605 -843.592094
2 122.0 -893.386943 16.639179 -940.563389 -903.356458 -890.835211 -882.714439 -860.893218
5 146.0 -892.489449 18.084460 -939.473970 -903.558047 -892.728915 -881.652826 -829.790894
9 113.0 -900.106981 19.429993 -947.721683 -913.266159 -901.885025 -886.696900 -849.944626
68.0 2 114.0 -900.485431 18.094734 -955.734272 -911.996865 -900.974327 -892.588273 -840.315608
4 117.0 -899.122680 18.390827 -937.082189 -912.868173 -897.244308 -887.730809 -849.170993
5 122.0 -899.202206 18.096502 -942.277956 -912.256825 -899.429781 -886.356515 -849.526101
6 108.0 -899.350525 19.895123 -948.184033 -912.749381 -900.136850 -887.966586 -852.250856
70.0 0 128.0 -894.078248 19.151928 -932.680240 -906.530740 -893.622555 -882.169923 -845.602397
1 116.0 -892.546498 19.361662 -941.066566 -905.893757 -890.558962 -878.897157 -854.799927
2 102.0 -886.921617 19.749254 -931.882107 -899.941331 -886.186594 -874.562656 -839.546481
4 117.0 -900.586853 15.987925 -931.885593 -911.162284 -900.690096 -891.125473 -843.020882
6 151.0 -897.635438 19.035434 -948.544722 -910.327936 -898.369543 -884.971073 -850.162537
9 144.0 -899.479657 18.821801 -961.859476 -910.614437 -899.454667 -887.326860 -836.591334
11 129.0 -896.937018 18.231441 -931.164155 -912.345856 -898.066799 -882.549609 -854.551788
72.0 5 843.0 -889.735359 18.385546 -945.165975 -901.767226 -889.610041 -876.941197 -834.454650
7 887.0 -890.804077 19.030764 -950.500121 -903.870195 -890.725187 -878.413063 -825.277069
74.0 2 563.0 -889.161729 19.215481 -945.370722 -901.770235 -888.700659 -876.424557 -820.053293
4 486.0 -891.617002 18.427406 -942.722054 -903.735952 -891.787370 -879.126522 -821.591513
9 260.0 -876.031653 18.858182 -933.126162 -889.470288 -876.422794 -862.308188 -799.717821
10 573.0 -892.888059 20.179539 -966.404766 -907.757438 -893.599110 -879.050420 -830.427500
76.0 0 177.0 -899.930496 17.860655 -951.523665 -911.374667 -899.719720 -887.991498 -849.665731
1 172.0 -898.798099 16.600835 -936.725827 -909.445908 -901.499495 -887.709274 -857.098197
4 258.0 -889.555351 19.880130 -946.994701 -902.343378 -888.851546 -875.051645 -841.475881
5 120.0 -898.296793 20.845806 -947.423702 -911.565177 -899.877191 -883.328435 -841.984704
9 261.0 -888.241465 18.550261 -947.615076 -901.440237 -889.035516 -877.595380 -836.922891
78.0 8 986.0 -889.553024 19.162510 -943.750324 -902.323468 -889.685562 -875.594160 -832.961716
82.0 5 109.0 -875.688598 23.427553 -934.032782 -892.162279 -874.180832 -858.468330 -823.612029
84.0 0 131.0 -881.062538 20.784376 -922.191985 -896.345220 -881.796198 -868.651078 -825.547022

119 rows × 8 columns


In [205]:
t = data.query("Temp == 300 and z_h6 > -10 and Qw < 0.6 and DisReal < 60")
t.groupby(["BiasTo", "Run"])["Qw"].describe().query("count > 100")


Out[205]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 0 394.0 0.489531 0.043844 0.358303 0.461404 0.492923 0.520311 0.594439
3 620.0 0.485340 0.029477 0.408019 0.466635 0.484666 0.505224 0.578709
5 114.0 0.444789 0.047450 0.344071 0.408037 0.429610 0.479605 0.575462
7 332.0 0.524273 0.028805 0.454118 0.505165 0.523628 0.544429 0.598160
8 588.0 0.488453 0.031958 0.389779 0.464817 0.488286 0.510258 0.579697
32.0 3 632.0 0.487750 0.030249 0.410464 0.467053 0.487285 0.507899 0.585787
6 194.0 0.521501 0.028685 0.441429 0.500648 0.521954 0.539422 0.589675
9 558.0 0.486652 0.027890 0.405111 0.468676 0.486566 0.504700 0.576786
10 157.0 0.522495 0.031685 0.437480 0.504383 0.519569 0.541603 0.595622
34.0 0 303.0 0.488812 0.028451 0.418062 0.468822 0.487874 0.509373 0.565705
5 206.0 0.443994 0.035986 0.322582 0.427907 0.446196 0.465365 0.543804
6 499.0 0.522046 0.029040 0.428436 0.503733 0.523642 0.541547 0.588953
8 439.0 0.524791 0.029219 0.430359 0.505522 0.526952 0.545704 0.594427
9 166.0 0.496579 0.026986 0.408038 0.480445 0.496830 0.514039 0.578228
10 468.0 0.413349 0.022430 0.344875 0.399962 0.413567 0.427569 0.482350
11 390.0 0.410743 0.022368 0.350805 0.396504 0.408812 0.424746 0.482739
36.0 6 745.0 0.483690 0.030461 0.394670 0.463188 0.482566 0.503314 0.585620
9 178.0 0.414196 0.020174 0.364020 0.401110 0.413120 0.428199 0.467040
10 751.0 0.484260 0.030414 0.404256 0.463737 0.483324 0.504644 0.582029
38.0 0 190.0 0.408572 0.024124 0.338022 0.391332 0.406393 0.424663 0.472623
1 803.0 0.481138 0.030067 0.398346 0.460458 0.480804 0.501786 0.571299
2 292.0 0.520303 0.028539 0.445324 0.500611 0.520745 0.542394 0.587540
3 284.0 0.423729 0.041731 0.363189 0.396241 0.413268 0.431222 0.575946
9 202.0 0.415782 0.022594 0.363667 0.400491 0.415146 0.429986 0.500137
40.0 0 332.0 0.442155 0.023612 0.370792 0.426444 0.444496 0.456481 0.507021
1 421.0 0.518245 0.030308 0.421739 0.499133 0.519452 0.538511 0.591126
2 433.0 0.407968 0.022324 0.351707 0.392262 0.407573 0.422140 0.473064
3 415.0 0.411648 0.021136 0.323997 0.398344 0.410570 0.425364 0.472014
6 266.0 0.351914 0.017503 0.300588 0.341483 0.352147 0.361913 0.418239
8 303.0 0.443511 0.021982 0.363102 0.428339 0.443220 0.459870 0.503529
... ... ... ... ... ... ... ... ... ...
66.0 0 121.0 0.575636 0.017451 0.524251 0.560832 0.577432 0.591042 0.599985
1 116.0 0.577491 0.021303 0.495074 0.569036 0.584397 0.592174 0.599894
2 122.0 0.467920 0.031502 0.386007 0.445745 0.470909 0.490302 0.548944
5 146.0 0.467205 0.025945 0.404986 0.451272 0.465407 0.485017 0.535565
9 113.0 0.579406 0.016709 0.511979 0.570995 0.583537 0.590994 0.599611
68.0 2 114.0 0.576348 0.019013 0.507565 0.564166 0.581423 0.591033 0.599923
4 117.0 0.580757 0.017576 0.521178 0.572045 0.586170 0.594763 0.599066
5 122.0 0.574987 0.018805 0.529303 0.564137 0.578293 0.591018 0.599944
6 108.0 0.580065 0.015938 0.539403 0.571373 0.582882 0.592905 0.599633
70.0 0 128.0 0.462869 0.026190 0.395824 0.447547 0.460828 0.479186 0.534200
1 116.0 0.466758 0.026348 0.388508 0.450535 0.467621 0.483546 0.525900
2 102.0 0.464029 0.027526 0.391007 0.447468 0.463903 0.481800 0.542475
4 117.0 0.575161 0.021442 0.482658 0.565996 0.579825 0.591280 0.599993
6 151.0 0.577447 0.017979 0.519017 0.565755 0.581196 0.592861 0.599645
9 144.0 0.576912 0.019614 0.518649 0.567711 0.582269 0.592874 0.599916
11 129.0 0.580298 0.017659 0.505153 0.572408 0.586535 0.592519 0.599641
72.0 5 843.0 0.464094 0.025547 0.389147 0.446118 0.463628 0.481530 0.543629
7 887.0 0.467385 0.027932 0.393338 0.448422 0.466138 0.485082 0.568665
74.0 2 563.0 0.466495 0.026990 0.401119 0.449493 0.464952 0.483591 0.561554
4 486.0 0.466071 0.028482 0.375480 0.447966 0.466290 0.483575 0.550493
9 260.0 0.496669 0.028378 0.404756 0.478535 0.496790 0.515455 0.580669
10 573.0 0.470901 0.028174 0.383592 0.452267 0.470268 0.488985 0.579701
76.0 0 177.0 0.577569 0.020088 0.503613 0.564750 0.583074 0.593591 0.599979
1 172.0 0.576932 0.018177 0.516327 0.566479 0.579116 0.592593 0.599804
4 258.0 0.461957 0.085142 0.345313 0.394413 0.419904 0.569953 0.599947
5 120.0 0.579387 0.015364 0.531898 0.570654 0.582667 0.591257 0.599300
9 261.0 0.465503 0.026522 0.393174 0.449805 0.465494 0.483787 0.533802
78.0 8 986.0 0.463921 0.027725 0.365707 0.444712 0.463058 0.482697 0.557890
82.0 5 109.0 0.422596 0.086911 0.280349 0.363041 0.388452 0.430845 0.597187
84.0 0 131.0 0.425814 0.070791 0.274786 0.387266 0.447998 0.476494 0.558342

119 rows × 8 columns


In [197]:
data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal < 60")["Qw"].hist(bins=50)
data.query("Temp == 300 and z_h6 > -10 and Qw > 0.3 and DisReal < 60")["Qw"].mean()


Out[197]:
0.5200406120854402

In [ ]:
t = data.query("Temp == 300 and z_h6 < -10 and Qw > 0.3")
t.groupby(["BiasTo", "Run"])["Qw"].describe().query("count > 100")

In [149]:
t = data.query("Temp == 300 and z_h6 < -10 and Qw > 0.3")
t.groupby(["BiasTo", "Run"])["Qw"].describe().query("count > 100")


Out[149]:
count mean std min 25% 50% 75% max
BiasTo Run
100.0 10 156.0 0.401507 0.029608 0.315298 0.384423 0.401515 0.419898 0.469629
72.0 1 256.0 0.377285 0.022454 0.301294 0.363600 0.377906 0.393576 0.439035
78.0 7 164.0 0.449923 0.035584 0.345792 0.427605 0.446752 0.475710 0.532827
80.0 0 162.0 0.446442 0.032028 0.354827 0.430338 0.449124 0.465840 0.529778
5 229.0 0.448336 0.035905 0.327640 0.422755 0.448652 0.473249 0.536800
11 358.0 0.460356 0.033694 0.369025 0.437515 0.459280 0.483573 0.570592
82.0 2 107.0 0.450985 0.039338 0.364041 0.420962 0.451839 0.477923 0.568188
84.0 8 734.0 0.367220 0.022367 0.306020 0.351989 0.367830 0.383073 0.427086
86.0 6 189.0 0.359501 0.025159 0.310352 0.342112 0.359164 0.375743 0.425219
88.0 2 316.0 0.357779 0.024044 0.301202 0.341398 0.357336 0.373844 0.431721
4 507.0 0.445021 0.036512 0.335681 0.419464 0.446287 0.471036 0.558018
5 481.0 0.443088 0.034372 0.339516 0.420437 0.440849 0.468509 0.547236
8 191.0 0.362609 0.022720 0.307835 0.348507 0.363370 0.380009 0.418722
92.0 7 181.0 0.318419 0.017204 0.300058 0.305806 0.313089 0.327235 0.380311
10 113.0 0.378277 0.052080 0.300115 0.332064 0.378333 0.423989 0.472322
96.0 3 109.0 0.313523 0.010522 0.300059 0.305449 0.312272 0.319603 0.346076
7 854.0 0.334134 0.017192 0.300080 0.321745 0.333039 0.345030 0.404080
98.0 1 488.0 0.334744 0.019960 0.300052 0.320059 0.333613 0.347594 0.409914
6 574.0 0.337025 0.019014 0.300169 0.324376 0.335988 0.349475 0.407215
7 423.0 0.400406 0.031782 0.312027 0.377341 0.402923 0.421179 0.500205
9 311.0 0.338310 0.021854 0.300088 0.320835 0.335578 0.354701 0.404305

In [145]:
data.query("Temp == 300 and z_h6 < -10 and Qw > 0.3").plot.hexbin("z_h4", "Qw", cmap="seismic", sharex=False)


Out[145]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a191c06a0>

In [6]:
t = data.query("Temp < 350 and DisReal > 60 and Qw > 0.18")
t.hist("Lipid1")


Out[6]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1a21e912e8>]], dtype=object)

In [9]:
data.query("Temp < 350").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a21e913c8>

In [20]:
rerun7.query("Temp < 350")["Step"].count()


Out[20]:
540000

In [17]:
t = rerun5.query("Temp < 350 and DisReal > 60 and Qw > 0.18 and Lipid1 > -1")
t["Step"].count()


Out[17]:
53939

In [18]:
t = rerun7.query("Temp < 350 and DisReal > 60 and Qw > 0.18 and Lipid1 > -1")
t["Step"].count()


Out[18]:
52305

In [10]:
t = data.query("Temp < 350 and DisReal > 60 and Qw > 0.18 and Lipid1 > -1")
t.plot.hexbin("Lipid1", "z_h1", cmap="seismic", sharex=False)


Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a215447b8>

In [283]:
data.query("Temp < 350 and DisReal > 60 and Qw > 0.18").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[283]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a59b3e198>

In [277]:
data.query("Qw > 0.58").groupby("Temp")["DisReal"].describe()


Out[277]:
count mean std min 25% 50% 75% max
Temp
280 34395.0 42.940793 5.531507 24.547152 38.811300 42.836657 47.382027 59.594937
290 22489.0 42.784274 5.330718 21.744802 38.877496 42.851639 46.927034 57.014944
300 11801.0 43.579822 5.151529 25.652358 39.889707 44.021430 47.580846 58.152470
310 5845.0 44.908710 4.777508 27.114228 41.968282 45.678484 48.428579 55.947778
320 2639.0 45.515907 4.648256 26.487897 42.868365 46.234237 48.820234 56.778925
335 574.0 45.595006 4.176323 31.826684 42.863389 46.208786 48.586064 54.507667
350 82.0 45.239074 4.337481 32.754204 42.069960 46.152603 48.677832 52.897284
365 5.0 46.504712 3.444580 41.733659 45.157007 46.514402 48.106523 51.011969

In [220]:
t = data.query("z_h6 < -20 and Qw > 0.25 and Qw < 0.35 and DisReal > 60")
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 100")


Out[220]:
count mean std min 25% 50% 75% max
BiasTo Run
60.0 5 113.0 66.512154 3.886832 60.147610 63.580878 66.285957 69.405557 77.179416
68.0 11 180.0 73.756180 6.057438 60.749281 69.398390 73.617739 77.737753 92.431294
70.0 0 469.0 74.191685 5.318893 60.414137 70.405310 74.056265 78.122878 89.513138
74.0 2 101.0 76.827775 5.457357 66.320898 72.989188 76.996523 80.230168 89.134214
11 144.0 75.486415 4.963238 62.432900 71.845102 74.953984 79.007245 87.323786
76.0 3 235.0 78.447992 5.253855 66.259977 74.608759 78.511404 81.494020 95.362849
80.0 5 217.0 79.799922 4.855510 67.250980 76.633111 80.259033 83.007123 96.753831
11 198.0 79.955361 5.238624 65.716158 76.483398 80.330906 83.365813 93.809286
82.0 3 114.0 82.243958 3.904281 72.643975 79.513151 81.941932 85.159661 91.372623
84.0 6 416.0 85.558974 4.732438 70.555359 82.467007 85.292550 88.945509 98.381981
8 415.0 86.876651 6.218563 70.161543 82.480690 87.035292 91.161424 104.109995
86.0 6 199.0 91.192025 5.494117 75.331115 88.039038 91.072395 94.250562 106.096975
88.0 2 262.0 90.216668 5.130045 75.261177 86.876216 90.352033 93.509445 104.125687
5 351.0 87.891460 5.725054 73.764376 83.802720 87.646519 91.993305 105.204918
92.0 2 542.0 89.927684 5.273472 70.467923 86.323840 89.760363 93.542206 105.406497
94.0 1 106.0 90.242444 6.574085 77.091854 84.989310 90.004269 95.004842 106.691579
96.0 7 812.0 96.576466 5.142513 79.397742 93.199597 96.335172 100.062148 110.993673
98.0 1 818.0 97.598809 4.302016 86.262144 94.911896 97.646100 100.322980 112.100967
6 441.0 97.337894 5.101396 81.527405 94.271081 97.383584 100.831160 109.210235

In [216]:
data.query("z_h6 < -20 and Qw > 0.25 and Qw < 0.35 and DisReal > 60").plot.hexbin("z_h4", "TotalE", cmap="seismic", sharex=False)


Out[216]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4b46f390>

In [196]:
data.query("z_h6 < -20 and Qw > 0.25 and Qw < 0.35").hist("DisReal", bins=50)


Out[196]:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x1a4a99ada0>]], dtype=object)

In [193]:
data.query("z_h6 < -20 and Qw > 0.25 and Qw < 0.35").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[193]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4a625cc0>

In [40]:
data.query("Temp == 300").plot.hexbin("z_h3", "z_h6", cmap="seismic", sharex=False)


Out[40]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a3ca9f828>

In [42]:
a = data.query("(z_h3 < -10) or (z_h6 < -10)")
a.query("Temp == 300").plot.hexbin("z_h3", "z_h6", cmap="seismic", sharex=False)


Out[42]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a299f2588>

In [66]:
data.columns


Out[66]:
Index(['Step', 'Run', 'Temp', 'Qw', 'Energy', 'DisReal', 'z_average',
       'abs_z_average', 'z_h1', 'z_h2', 'z_h3', 'z_h4', 'z_h5', 'z_h6',
       'Distance', 'AMH-Go', 'Membrane', 'Rg', 'rg1', 'rg2', 'rg3', 'rg4',
       'rg5', 'rg6', 'rg_all', 'Lipid', 'Lipid1', 'Lipid2', 'Lipid3', 'Lipid4',
       'Lipid5', 'Lipid6', 'Lipid7', 'Lipid8', 'Lipid9', 'Lipid10', 'Lipid11',
       'Lipid12', 'Lipid13', 'Lipid14', 'Lipid15', 'TotalE', 'BiasTo'],
      dtype='object')

In [88]:
data.query("Temp <= 300").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[88]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a43e3fd30>

In [87]:
data.query("Temp <= 300 and DisReal > 60").plot.hexbin("DisReal", "Qw", cmap="seismic", sharex=False)


Out[87]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a259706d8>

In [91]:
data.columns


Out[91]:
Index(['Step', 'Run', 'Temp', 'Qw', 'Energy', 'DisReal', 'z_average',
       'abs_z_average', 'z_h1', 'z_h2', 'z_h3', 'z_h4', 'z_h5', 'z_h6',
       'Distance', 'AMH-Go', 'Membrane', 'Rg', 'rg1', 'rg2', 'rg3', 'rg4',
       'rg5', 'rg6', 'rg_all', 'Lipid', 'Lipid1', 'Lipid2', 'Lipid3', 'Lipid4',
       'Lipid5', 'Lipid6', 'Lipid7', 'Lipid8', 'Lipid9', 'Lipid10', 'Lipid11',
       'Lipid12', 'Lipid13', 'Lipid14', 'Lipid15', 'TotalE', 'BiasTo'],
      dtype='object')

In [94]:
data.query("Temp == 300 and DisReal > 60").plot.hexbin("Lipid1", "Qw", cmap="seismic", sharex=False)


Out[94]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a431b42b0>

In [96]:
data.query("Temp == 300").plot.hexbin("abs_z_average", "z_h6", cmap="seismic", sharex=False)


Out[96]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a435ea860>

In [126]:
data.query("Temp == 300 and Qw < 0.6 and DisReal > 60 and Lipid1 > -1").plot.hexbin("abs_z_average", "Qw", cmap="seismic", sharex=False)


Out[126]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a25a95b38>

In [130]:
data.query("Temp == 300 and Qw < 0.6 and DisReal > 60").shape


Out[130]:
(35124, 43)

In [129]:
t = data.query("Temp == 300 and Qw < 0.6 and DisReal > 60 and Lipid1 > -1")
print(t.shape)
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 500")


(11439, 43)
Out[129]:
count mean std min 25% 50% 75% max
BiasTo Run
72.0 8 538.0 77.631154 4.978481 64.034331 74.265102 77.679578 81.148599 92.402795
74.0 5 671.0 79.352226 4.992393 64.103251 75.905704 79.439485 82.716725 94.980508
8 597.0 80.370943 4.771834 63.743749 77.312220 80.329319 83.590274 94.733364
76.0 2 609.0 82.491103 4.934288 66.209328 79.096101 82.395038 85.988688 95.370163
80.0 7 570.0 84.330678 4.942327 65.585395 81.343990 84.503898 87.671476 98.049908
8 583.0 84.765906 4.744009 71.252220 81.699702 84.902951 87.689288 99.617263
82.0 7 591.0 86.381836 4.886817 74.129515 82.791748 86.400281 89.636735 101.037585
9 515.0 86.697468 4.841471 71.817455 83.436906 86.703616 90.212749 101.873019
88.0 1 503.0 91.928638 4.759968 75.885403 88.872399 91.672946 95.171128 105.171102
90.0 11 817.0 92.899936 4.619934 79.678197 89.964819 92.984239 95.992677 107.310590
98.0 10 540.0 98.684912 4.785347 85.058600 95.322567 98.759484 102.196297 111.325873

In [128]:
t = data.query("Temp == 300 and Qw < 0.6 and DisReal > 60 and z_h6 < -10")
print(t.shape)
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 500")


(15583, 43)
Out[128]:
count mean std min 25% 50% 75% max
BiasTo Run
100.0 11 544.0 84.293570 3.425672 75.519237 81.961637 84.397217 86.622628 94.611569
72.0 5 548.0 73.933853 4.387406 61.049616 71.126700 74.101592 77.014725 86.079380
6 570.0 77.566640 4.805078 63.593634 74.509323 77.478254 80.691643 92.106523
78.0 5 520.0 82.549008 4.721425 70.541042 79.102200 82.721582 85.779293 95.670568
10 540.0 82.675814 4.635266 68.840841 79.520502 82.781726 85.958293 96.702022
80.0 0 568.0 79.695028 4.399605 67.366476 76.710162 79.807395 82.590351 96.141058
84.0 8 530.0 83.894069 5.306648 70.917908 80.118754 83.161541 87.110482 100.301417
11 553.0 86.657368 4.707773 73.011489 83.747428 86.888678 89.551823 100.057218
86.0 11 531.0 87.787863 4.444919 76.416774 84.737965 87.608177 90.635270 102.053831
88.0 2 595.0 84.620395 4.761268 70.773094 81.346685 84.557121 87.582304 98.051481
92.0 2 564.0 91.000057 5.468401 78.150078 87.060316 90.448845 94.965484 108.250962
96.0 7 963.0 95.072311 5.525327 77.822069 91.490362 94.993429 98.830402 110.993673

In [125]:
data.query("Temp == 300 and Qw < 0.6 and DisReal > 60 and z_h6 < -10").plot.hexbin("abs_z_average", "Qw", cmap="seismic", sharex=False)


Out[125]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a43fc2908>

In [124]:
data.query("Temp == 300 and Qw < 0.6 and DisReal > 60").plot.hexbin("abs_z_average", "Qw", cmap="seismic", sharex=False)


Out[124]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a44fa2fd0>

In [120]:
t = data.query("Temp == 300 and Qw < 0.6 and Lipid1 < -1 and DisReal < 60")
t.groupby(["BiasTo", "Run"])["DisReal"].describe().query("count > 500")


Out[120]:
count mean std min 25% 50% 75% max
BiasTo Run
30.0 11 501.0 34.550022 3.497956 24.170195 32.341842 34.733842 36.927544 44.118947
32.0 8 523.0 35.867688 3.378665 24.100050 33.797883 35.808496 38.302579 45.959715
10 645.0 36.086853 2.985883 26.805858 34.255239 35.990810 38.118236 47.008506
34.0 6 514.0 32.001355 3.933645 19.487454 29.375800 32.185595 34.763219 43.226268
36.0 6 683.0 36.538337 3.075776 26.712718 34.600427 36.581137 38.632251 45.696680
9 535.0 37.053009 3.487852 27.163052 34.778089 36.952146 39.300564 46.858792
10 599.0 36.493984 3.050589 28.673133 34.313042 36.475634 38.632653 45.187989
38.0 0 542.0 38.292865 3.117689 29.507186 36.509181 38.429570 40.372452 47.251375
1 714.0 37.156266 3.051513 27.119173 35.145635 37.288075 39.339564 46.587213
2 646.0 38.042212 2.957526 29.438891 36.105246 37.955290 40.029292 47.525100
42.0 6 707.0 38.366364 2.976499 28.001329 36.458438 38.554256 40.285623 47.530492
9 636.0 38.318101 2.830133 30.080318 36.520623 38.279709 40.229305 45.076937
44.0 7 653.0 39.187825 2.832088 31.375651 37.427158 39.179752 41.124606 47.085678
46.0 5 582.0 39.461132 2.802785 29.656917 37.685658 39.756264 41.339765 46.331141
9 592.0 39.515688 2.656214 31.390946 37.743350 39.514984 41.435002 46.551716
48.0 2 532.0 39.997772 2.763595 32.714515 38.160923 40.078110 41.975311 47.424742
5 617.0 40.078830 2.917347 30.190290 38.052028 40.208077 42.158398 49.065847
50.0 4 572.0 40.516251 2.894581 29.218862 38.590035 40.625680 42.319545 49.911833
6 579.0 40.452561 2.723055 31.306359 38.851076 40.420034 42.158544 47.852737
52.0 6 585.0 42.891324 3.309122 34.838188 40.494285 42.791672 45.103617 53.407546
54.0 3 593.0 43.652043 3.418296 34.941781 41.392058 43.590167 45.989911 55.849975
8 504.0 43.468905 3.307635 33.128995 41.161186 43.479570 45.611239 52.045254
56.0 1 557.0 44.201995 3.411782 33.753458 41.816051 44.090526 46.363673 54.841648
7 542.0 44.164520 3.429523 32.235866 41.796897 44.247860 46.500655 55.349855
58.0 7 824.0 42.481098 2.637412 33.582897 40.764434 42.498365 44.173776 50.799169
60.0 8 608.0 42.638195 2.560345 34.202688 40.911645 42.578285 44.345535 49.555813
10 543.0 42.848207 2.621652 34.645227 41.066412 42.700465 44.606472 51.479163
62.0 0 597.0 43.277374 2.653459 32.995607 41.460755 43.142450 45.150519 53.672116
7 634.0 43.225784 2.627363 35.509930 41.493669 43.174808 45.023711 50.970356
9 684.0 43.219135 2.749727 34.961009 41.375080 43.101129 44.931003 53.977729
64.0 7 666.0 47.337949 2.991526 37.048099 45.439008 47.615525 49.520250 54.931101
10 588.0 46.540005 3.096186 38.317320 44.321463 46.640451 48.617557 54.942772
68.0 4 590.0 44.379569 2.656873 36.506250 42.625571 44.344091 46.021600 53.099925
70.0 1 678.0 45.143000 2.616832 36.997997 43.303478 45.142127 46.904454 53.147709
11 679.0 45.274321 2.628822 36.256916 43.455996 45.276506 47.127284 53.834286
74.0 1 549.0 50.903293 3.274476 40.958378 48.939727 50.828384 53.000226 59.523403
76.0 0 522.0 51.331612 3.403327 42.337286 49.037508 51.416541 53.997385 59.633690
4 526.0 51.618093 3.490510 40.795565 49.258330 51.623358 53.998894 59.458026

In [114]:
data.query("Temp == 300 and Qw < 0.6 and Lipid1 < -1 and DisReal < 60").plot.hexbin("z_h1", "Qw", cmap="seismic", sharex=False)


Out[114]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4573e7b8>

In [85]:
data.query("Temp <= 300 and DisReal > 60").plot.hexbin("abs_z_average", "Qw", cmap="seismic", sharex=False)


Out[85]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4631c438>

In [64]:
data.query("Temp == 300").plot.hexbin("z_h6", "Qw", cmap="seismic", sharex=False)


Out[64]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a471194e0>

In [34]:
a = data.query("(z_h6 > -10 and z_h1 < -10) or (z_h6 < -10 and z_h1 > -10)")

In [ ]:


In [35]:
a.query("Temp == 300").plot.hexbin("z_h1", "z_h6", cmap="seismic", sharex=False)


Out[35]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a22079908>

I hope we don't see this, for rerun 3.

(h6 inside, h1 outside)


In [59]:
rerun1.query("Temp <= 300 and z_h1 < -10")["DisReal"].count()


Out[59]:
23027

In [60]:
rerun1.query("Temp <= 300 and z_h1 < -10").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[60]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a44ad06d8>

In [300]:
rerun5.query("Temp <= 300 and z_h1 < -10").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[300]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4c006d30>

In [7]:
data.query("Temp <= 300 and z_h1 < -10").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a5239eb70>

Good, decrease in number


In [61]:
data.query("Temp <= 300")["DisReal"].count()


Out[61]:
270000

In [62]:
data.query("Temp <= 300 and z_h1 < -10")["DisReal"].describe()


Out[62]:
count    15664.000000
mean        86.338072
std         16.724329
min         23.835159
25%         84.224392
50%         91.396990
75%         96.274063
max        115.018263
Name: DisReal, dtype: float64

In [63]:
data.query("Temp <= 300 and z_h1 < -10").plot.hexbin("DisReal", "z_h6", cmap="seismic", sharex=False)


Out[63]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a42dd2e10>

enhance h1, h2 connection.

check if it increase the unfolding force, and if the helix 5,6 unfold first. (how strong h1,h2 bond needs to be)


In [69]:
data = pd.read_feather("/Users/weilu/Research/server/apr_2018/01_week/unfold_strengthen_h1_h2/07_Apr_135640.feather")

In [74]:
data["Run"] = data["Run"].apply(pd.to_numeric)

In [29]:
fg = sns.FacetGrid(data=data.query("Steps < 4e7 and Qw > 0.1 and Folder=='force_6_' and Run ==0"), hue='Run', size=8, aspect=1.61)
fg.map(plt.scatter, 'Steps', 'Qw').add_legend()


Out[29]:
<seaborn.axisgrid.FacetGrid at 0x1a2f93b128>

In [71]:
fg = sns.FacetGrid(data=data.query("Steps < 4e7 and Qw > 0.1"), hue='Folder', size=8, aspect=1.61)
fg.map(plt.scatter, 'Steps', 'Qw').add_legend()


Out[71]:
<seaborn.axisgrid.FacetGrid at 0x1a2ad2e198>

In [72]:
a = data.query("(z_h6 > -10 and z_h1 < -10) or (z_h6 < -10 and z_h1 > -10)")

In [75]:
a.query("Folder == 'force_8_'").plot.hexbin("z_h1", "z_h6", cmap="cool", sharex=False)


Out[75]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a4e26bb38>

In [15]:
data["Folder"].unique()


Out[15]:
array(['force_2_mem_1.0_', 'force_1_mem_1.0_', 'force_3_',
       'force_2_mem_0.8_', 'force_1_mem_0.8_', 'force_4_'], dtype=object)

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]: