In [8]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import glob
import jedi
import os
%matplotlib inline
In [9]:
def read_temper(n=4, location="."):
all_lipid_list = []
for i in range(n):
file = "lipid.{}.dat".format(i)
lipid = pd.read_csv(location+file).assign(Run = i)
lipid.columns = lipid.columns.str.strip()
lipid = lipid[["Steps","Lipid","Run"]]
all_lipid_list.append(lipid)
lipid = pd.concat(all_lipid_list)
all_energy_list = []
for i in range(n):
file = "energy.{}.dat".format(i)
energy = pd.read_csv(location+file).assign(Run = i)
energy.columns = energy.columns.str.strip()
energy = energy[["Steps", "AMH-Go", "Membrane", "Rg", "Run"]]
all_energy_list.append(energy)
energy = pd.concat(all_energy_list)
all_dis_list = []
for i in range(n):
file = "addforce.{}.dat".format(i)
dis = pd.read_csv(location+file).assign(Run = i)
dis.columns = dis.columns.str.strip()
remove_columns = ['AddedForce', 'Dis12', 'Dis34', 'Dis56']
dis.drop(remove_columns, axis=1,inplace=True)
all_dis_list.append(dis)
dis = pd.concat(all_dis_list)
all_wham_list = []
for i in range(n):
file = "wham.{}.dat".format(i)
wham = pd.read_csv(location+file).assign(Run = i)
wham.columns = wham.columns.str.strip()
remove_columns = ['Rg', 'Tc']
wham = wham.drop(remove_columns, axis=1)
all_wham_list.append(wham)
wham = pd.concat(all_wham_list)
file = "../log.lammps"
# file = "../log0/log.lammps"
temper = pd.read_table(location+file, skiprows=2, sep=' ')
temper = temper.melt(id_vars=['Step'], value_vars=['T' + str(i) for i in range(n)], value_name="Temp", var_name="Run")
temper["Run"] = temper["Run"].str[1:].astype(int)
temper["Temp"] = "T" + temper["Temp"].astype(str)
t2 = temper.merge(wham, how='inner', left_on=["Step", "Run"], right_on=["Steps", "Run"]
).sort_values('Step').drop('Steps', axis=1)
t3 = t2.merge(dis, how='inner', left_on=["Step", "Run"], right_on=["Steps", "Run"]
).sort_values('Step').drop('Steps', axis=1)
t4 = t3.merge(lipid, how='inner', left_on=["Step", "Run"], right_on=["Steps", "Run"]
).sort_values('Step').drop('Steps', axis=1)
t5 = t4.merge(energy, how='inner', left_on=["Step", "Run"], right_on=["Steps", "Run"]
).sort_values('Step').drop('Steps', axis=1)
t6 = t5.assign(TotalE = t5.Energy + t5.Lipid)
# t6 = t6.assign(TotalE_perturb_mem_p = t6.TotalE + 0.1*t6.Membrane)
# t6 = t6.assign(TotalE_perturb_mem_m = t6.TotalE - 0.1*t6.Membrane)
# t6 = t6.assign(TotalE_perturb_lipid_p = t6.TotalE + 0.1*t6.Lipid)
# t6 = t6.assign(TotalE_perturb_lipid_m = t6.TotalE - 0.1*t6.Lipid)
# t6 = t6.assign(TotalE_perturb_go_p = t6.TotalE + 0.1*t6["AMH-Go"])
# t6 = t6.assign(TotalE_perturb_go_m = t6.TotalE - 0.1*t6["AMH-Go"])
# t6 = t6.assign(TotalE_perturb_rg_p = t6.TotalE + 0.1*t6.Rg)
# t6 = t6.assign(TotalE_perturb_rg_m = t6.TotalE - 0.1*t6.Rg)
return t6
In [ ]:
pre = "/Users/weilu/Research/server/nov_2017/06nov/23oct/"
data_folder = "/Users/weilu/Research/server/nov_2017/06nov/all_data_folder/"
folder_list = [
"rgWidth_memb_3_rg_0.1_lipid_1_extended",
"rgWidth_memb_3_rg_0.1_lipid_1_topology"
]
# folder_list = [
# 'rgWidth_memb_3_rg_0.1_lipid_1_awsemer_topology',
# 'rgWidth_memb_3_rg_0.1_lipid_1_awsemer_extended'
# ]
def process_temper_data(pre, data_folder, folder_list):
for folder in folder_list:
simulation_list = glob.glob(pre+folder+"/simulation/dis_*")
os.system("mkdir -p " + pre+folder+"/data")
for one_simulation in simulation_list:
dis = one_simulation.split("_")[-1]
print(dis)
location = one_simulation + "/0/"
try:
data = read_temper(location=location, n=12)
except:
print("notrun?", dis)
# temps = list(dic.keys())
data.reset_index().to_feather(pre+folder+"/data/"+f"dis{dis}.feather")
os.system("mv "+pre+folder+"/data "+data_folder+folder)
In [26]:
dic.values()
Out[26]:
In [43]:
remove_columns = ['index', 'Step', "Run", "Temp"]
tmp.drop(remove_columns, axis=1)
# tmp
Out[43]:
In [51]:
data = tmp
In [57]:
list(dic.values())
Out[57]:
In [60]:
for i in list(dic.values()):
fig, axs = plt.subplots(ncols=2, nrows=1, figsize=(10, 4))
tmp = data.query('Temp=={}'.format(i))
# dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
# tmp = tmp.assign(myT = tmp['Temp'].map(dic))
tmp.plot('Step', 'Run', subplots=True, ax=axs[1])
tmp.plot('Step', 'Qw', subplots=True, ax=axs[0])
In [46]:
test = pd.read_feather("/Users/weilu/Research/server/nov_2017/06nov/23oct/rgWidth_memb_3_rg_0.1_lipid_1_extended/data/dis116.0.feather")
In [ ]:
In [48]:
test.filter(["Qw", "Distance"])
Out[48]:
In [41]:
data_folder = "/Users/weilu/Research/server/nov_2017/06nov/all_data_folder/"
freeEnergy_folder = "/Users/weilu/Research/server/nov_2017/06nov/all_freeEnergy_calculation/"
folder = "rgWidth_memb_3_rg_0.1_lipid_1_extended"
def move_data(data_folder, freeEnergy_folder, folder):
os.system("mkdir -p "+freeEnergy_folder+folder)
dis_list = glob.glob(data_folder+folder+"/dis*.feather")
for dis_file in dis_list:
dis = dis_file.split("/")[-1].replace('dis', '').replace('.feather', '')
print(dis)
t6 = pd.read_feather(dis_file)
t6 = t6.assign(TotalE_perturb_mem_p = t6.TotalE + 0.2*t6.Membrane)
t6 = t6.assign(TotalE_perturb_mem_m = t6.TotalE - 0.2*t6.Membrane)
t6 = t6.assign(TotalE_perturb_lipid_p = t6.TotalE + 0.1*t6.Lipid)
t6 = t6.assign(TotalE_perturb_lipid_m = t6.TotalE - 0.1*t6.Lipid)
t6 = t6.assign(TotalE_perturb_go_p = t6.TotalE + 0.1*t6["AMH-Go"])
t6 = t6.assign(TotalE_perturb_go_m = t6.TotalE - 0.1*t6["AMH-Go"])
t6 = t6.assign(TotalE_perturb_rg_p = t6.TotalE + 0.2*t6.Rg)
t6 = t6.assign(TotalE_perturb_rg_m = t6.TotalE - 0.2*t6.Rg)
dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
temps = list(dic.values())
def convert(x):
return dic[x]
t6["Temp"] = t6["Temp"].apply(convert)
for temp in temps:
if temp > 600:
continue
tmp = t6.query('Temp=="{}"& Step > 1e7'.format(temp))
remove_columns = ['index', 'Step', "Run", "Temp"]
tmp = tmp.drop(remove_columns, axis=1)
tmp.to_csv(freeEnergy_folder+folder+"/t_{}_dis_{}.dat".format(temp, dis), sep=' ', index=False, header=False)
In [36]:
tmp
Out[36]:
In [ ]:
dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
# assembly the data I need to do freeEnergy calculation.
do = os.system
freeEnergy_folder = "all_data_folder/"
data_folder = "/Users/weilu/Research/server/nov_2017/06nov/all_data_folder/"
folder = "rgWidth_memb_3_rg_0.1_lipid_1_extended"
do(f"mkdir -p all_freeEnergy_calculation/{folder}")
In [14]:
pre = "/Users/weilu/Research/server/nov_2017/06nov/23oct/"
data_folder = "/Users/weilu/Research/server/nov_2017/06nov/all_data_folder/"
folder_list = [
"rgWidth_memb_3_rg_0.1_lipid_1_extended",
"rgWidth_memb_3_rg_0.1_lipid_1_topology"
]
# folder_list = [
# 'rgWidth_memb_3_rg_0.1_lipid_1_awsemer_topology',
# 'rgWidth_memb_3_rg_0.1_lipid_1_awsemer_extended'
# ]
dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
for folder in folder_list:
simulation_list = glob.glob(pre+folder+"/simulation/*")
os.system("mkdir -p " + pre+folder+"/data")
for one_simulation in simulation_list:
dis = one_simulation.split("_")[-1]
print(dis)
location = one_simulation + "/0/"
# try:
# data = read_temper(location=location, n=12)
# except:
# print("notrun?", dis)
# # temps = list(dic.keys())
# data.reset_index().to_feather(pre+folder+"/data/"+f"dis{dis}.feather")
os.system("mv "+pre+folder+"/data "+data_folder+folder)
# for temp in temps:
# tmp = data.query('Temp=="{}"& Step > 1e7'.format(temp))
# tmp.reset_index().to_feather(pre+folder+"/data/"+f"dis{dis}_t{dic[temp]}.feather")
# tmp.to_csv(pre+folder+"/data/"+f"dis{dis}_t{dic[temp]}.dat", sep=' ', index=False, header=False)
In [ ]:
In [23]:
# folder_list = [
# '/Users/weilu/Research/server/oct_2017/23oct/rgWidth_memb_3_rg_0.1_lipid_1_topology/',
# '/Users/weilu/Research/server/oct_2017/23oct/rgWidth_memb_3_rg_0.1_lipid_1_extended/'
# ]
pre = "/Users/weilu/Research/server/oct_2017/30oct/"
# folder_list = [
# 'rgWidth_memb_3_rg_0.1_lipid_1_extended'
# ]
folder_list = [
'rgWidth_memb_3_rg_0.1_lipid_1_topology'
]
dis_list = np.linspace(30, 180, 151)
# dis_list = np.linspace(30, 230, 101)
# dis_list = np.linspace(132, 232, 51)
# dis_list = [30.0]
dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
for folder in folder_list:
for dis in dis_list:
print(dis)
location = pre + folder + "/simulation/dis_{}/0/".format(dis)
try:
data = read_temper(location=location, n=12)
except:
print("notrun?", dis)
temps = list(dic.keys())
for temp in temps:
tmp = data.query('Temp=="{}"& Step > 1e7'.format(temp))
tmp.to_csv(location+"t{}_new.dat".format(dic[temp]), sep=' ', index=False, header=False)
In [9]:
import os
In [25]:
# folder_list = [
# '/Users/weilu/Research/server/oct_2017/23oct/rgWidth_memb_3_rg_0.1_lipid_1_topology/',
# '/Users/weilu/Research/server/oct_2017/23oct/rgWidth_memb_3_rg_0.1_lipid_1_extended/'
# ]
pre = "/Users/weilu/Research/server/oct_2017/30oct/"
# folder_list = [
# 'rgWidth_memb_3_rg_0.1_lipid_1_extended'
# ]
folder_list = [
'rgWidth_memb_3_rg_0.1_lipid_1_topology'
]
dis_list = np.linspace(30, 180, 151)
# dis_list = np.linspace(30, 230, 101)
# dis_list = np.linspace(132, 232, 51)
# dis_list = [30.0]
dic = {"T0":350, "T1":400, "T2":450, "T3":500, "T4":550, "T5":600, "T6":650, "T7":700, "T8":750, "T9":800, "T10":900, "T11":1000}
for folder in folder_list:
for dis in dis_list:
print(dis)
temps = list(dic.keys())
location = pre + folder + "/simulation/dis_{}/0/".format(dis)
for temp in temps:
os.system(f"cp {location}t{dic[temp]}_new.dat {pre}{folder}/data/dis_{dis}_temp_{dic[temp]}.dat")
In [12]:
ls
In [ ]: