Calculate Solvent Entropy for a capped amino acid (Solvent)¶
Load Data¶
Load data into MDAnalysis Universe
[1]:
import MDAnalysis as mda
# set the working dir to the root of repo inorder to use these path
tprfile = "data/molecules.prmtop"
trrfile = "data/data.trr"
u = mda.Universe(tprfile, trrfile)
Load data into POSEIDON object
[2]:
from CodeEntropy.ClassCollection.PoseidonClass import Poseidon
poseidon_object = Poseidon(container=u, start=0, end=20)
2022-06-30 14:02:39.497272
frame = 0
< Timestep 0 with unit cell dimensions [30.67833 30.40052 29.490604 90. 90. 90. ] >
0:00:01.521913
frame = 1
< Timestep 1 with unit cell dimensions [30.682182 30.404337 29.494312 90. 90. 90. ] >
0:00:02.572888
frame = 2
< Timestep 2 with unit cell dimensions [30.713255 30.435127 29.524178 90. 90. 90. ] >
0:00:03.637349
frame = 3
< Timestep 3 with unit cell dimensions [30.598316 30.321232 29.41369 90. 90. 90. ] >
0:00:04.678439
frame = 4
< Timestep 4 with unit cell dimensions [30.618622 30.341354 29.43321 90. 90. 90. ] >
0:00:05.883773
frame = 5
< Timestep 5 with unit cell dimensions [30.619095 30.341824 29.433666 90. 90. 90. ] >
0:00:07.016012
frame = 6
< Timestep 6 with unit cell dimensions [30.738136 30.459784 29.5481 90. 90. 90. ] >
0:00:08.035066
frame = 7
< Timestep 7 with unit cell dimensions [30.694881 30.416918 29.506514 90. 90. 90. ] >
0:00:09.121570
frame = 8
< Timestep 8 with unit cell dimensions [30.644718 30.36721 29.458292 90. 90. 90. ] >
0:00:10.153657
frame = 9
< Timestep 9 with unit cell dimensions [30.726116 30.447872 29.536541 90. 90. 90. ] >
0:00:11.302036
frame = 10
< Timestep 10 with unit cell dimensions [30.580582 30.303658 29.39664 90. 90. 90. ] >
0:00:12.495815
frame = 11
< Timestep 11 with unit cell dimensions [30.772951 30.494282 29.581562 90. 90. 90. ] >
0:00:13.531333
frame = 12
< Timestep 12 with unit cell dimensions [30.772266 30.493605 29.580906 90. 90. 90. ] >
0:00:14.756963
frame = 13
< Timestep 13 with unit cell dimensions [30.58512 30.308151 29.401005 90. 90. 90. ] >
0:00:15.946092
frame = 14
< Timestep 14 with unit cell dimensions [30.599762 30.322662 29.415077 90. 90. 90. ] >
0:00:17.018432
frame = 15
< Timestep 15 with unit cell dimensions [30.746477 30.468048 29.556114 90. 90. 90. ] >
0:00:18.067639
frame = 16
< Timestep 16 with unit cell dimensions [30.764982 30.486385 29.573902 90. 90. 90. ] >
0:00:19.290882
frame = 17
< Timestep 17 with unit cell dimensions [30.672724 30.394962 29.485216 90. 90. 90. ] >
0:00:20.361321
frame = 18
< Timestep 18 with unit cell dimensions [30.674246 30.396471 29.48668 90. 90. 90. ] >
0:00:21.491847
frame = 19
< Timestep 19 with unit cell dimensions [30.699165 30.421165 29.510633 90. 90. 90. ] >
0:00:22.582298
0:00:22.582866
Calculate Entropy¶
Whole Molecule level¶
[3]:
result_wm = poseidon_object.run_analysis(level_list = ['moleculeLevel'], verbose=False, forceUnits="Kcal") # this is because the forces value supplied in this trajectory is in Kcal
print(result_wm)
2022-06-30 14:03:04.107787
solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
1. Populate Dictionaries
memory use: 0.231 GB
0:00:00.001139
memory use: 0.231 GB
0:00:01.374287
0:00:01.374803
memory use: 0.231 GB
Total number of frames: 20.0
Number of atoms in each frame: 916
Number of variables in each list: 19
2. Process Dictionaries
['moleculeLevel']
---level: moleculeLevel
0:00:01.557718
{'moleculeLevel': {'solventData': nearest assigned shell_num variable value count
0 ACE WAT 1.0 Sor_test2 4.489916 155
1 ACE WAT 1.0 Strans 47.114194 155
2 ACE WAT 1.0 Srot 21.518819 155
3 ACE WAT 1.0 count 7.75 155
4 ARG WAT 1.0 Sor_test2 4.389286 358
5 ARG WAT 1.0 Strans 46.659296 358
6 ARG WAT 1.0 Srot 21.813924 358
7 ARG WAT 1.0 count 17.9 358
8 NME WAT 1.0 Sor_test2 2.782703 117
9 NME WAT 1.0 Strans 46.479766 117
10 NME WAT 1.0 Srot 20.958346 117
11 NME WAT 1.0 count 5.85 117, 'soluteData': resName variable value count
0 ACE WM_Strans 31.20938 20
1 ACE WM_Srot 18.233384 20
2 ACE WM_UA_Strans 1.450273 20
3 ACE WM_UA_Srot 17.25675 20
4 ARG WM_Strans 37.553747 20
5 ARG WM_Srot 10.55119 20
6 ARG WM_UA_Strans 203.095275 20
7 ARG WM_UA_Srot NaN 20
8 ARG conf_AE 18.358527 20
9 NME WM_Strans 28.852401 20
10 NME WM_Srot 0.387749 20
11 NME WM_UA_Strans 0.0 20
12 NME WM_UA_Srot 27.433272 20}}
/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars
w = w ** 0.5
Residue Level¶
[4]:
result_res = poseidon_object.run_analysis(level_list = ['residLevel_resname'], verbose=False, forceUnits="Kcal") # this is because the forces value supplied in this trajectory is in Kcal
print(result_res)
2022-06-30 14:03:08.891780
solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
1. Populate Dictionaries
memory use: 0.232 GB
0:00:00.001426
memory use: 0.232 GB
0:00:01.297753
0:00:01.298211
memory use: 0.232 GB
Total number of frames: 20.0
Number of atoms in each frame: 916
Number of variables in each list: 19
2. Process Dictionaries
['residLevel_resname']
---level: residLevel_resname
0:00:01.458315
{'residLevel_resname': {'solventData': nearest assigned shell_num variable value count
0 ACE_1 WAT 1.0 Sor_test2 4.489916 155
1 ACE_1 WAT 1.0 Strans 47.114194 155
2 ACE_1 WAT 1.0 Srot 21.518819 155
3 ACE_1 WAT 1.0 count 7.75 155
4 ARG_2 WAT 1.0 Sor_test2 4.389286 358
5 ARG_2 WAT 1.0 Strans 46.659296 358
6 ARG_2 WAT 1.0 Srot 21.813924 358
7 ARG_2 WAT 1.0 count 17.9 358
8 NME_3 WAT 1.0 Sor_test2 2.782703 117
9 NME_3 WAT 1.0 Strans 46.479766 117
10 NME_3 WAT 1.0 Srot 20.958346 117
11 NME_3 WAT 1.0 count 5.85 117, 'soluteData': resName variable value count
0 ACE_1 WM_Strans 31.20938 20
1 ACE_1 WM_Srot 18.233384 20
2 ACE_1 WM_UA_Strans 1.450273 20
3 ACE_1 WM_UA_Srot 17.25675 20
4 ARG_2 WM_Strans 37.553747 20
5 ARG_2 WM_Srot 10.55119 20
6 ARG_2 WM_UA_Strans 203.095275 20
7 ARG_2 WM_UA_Srot NaN 20
8 ARG_2 conf_AE 18.358527 20
9 NME_3 WM_Strans 28.852401 20
10 NME_3 WM_Srot 0.387749 20
11 NME_3 WM_UA_Strans 0.0 20
12 NME_3 WM_UA_Srot 27.433272 20, 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname
0 1 2 3.0 ACE_1 ARG
1 1 3 0.1 ACE_1 NME
2 2 1 3.0 ARG_2 ACE
3 2 3 3.0 ARG_2 NME
4 3 1 0.1 NME_3 ACE
5 3 2 3.0 NME_3 ARG}}
/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars
w = w ** 0.5
United Atom Level¶
[5]:
result_ua = poseidon_object.run_analysis(level_list = ['atomLevel'], verbose=False, forceUnits="Kcal") # this is because the forces value supplied in this trajectory is in Kcal
print(result_ua)
2022-06-30 14:03:13.104061
solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
1. Populate Dictionaries
memory use: 0.232 GB
0:00:00.002788
memory use: 0.233 GB
0:00:01.388482
0:00:01.388816
memory use: 0.233 GB
Total number of frames: 20.0
Number of atoms in each frame: 916
Number of variables in each list: 19
2. Process Dictionaries
['atomLevel']
---level: atomLevel
0:00:01.590813
{'atomLevel': {'solventData': nearest assigned shell_num variable value count
0 ACE_C WAT_O 1.0 Sor_test2 3.859492 90
1 ACE_C WAT_O 1.0 Strans 46.89642 90
2 ACE_C WAT_O 1.0 Srot 21.477797 90
3 ACE_C WAT_O 1.0 count 4.5 90
4 ACE_O WAT_O 1.0 Sor_test2 1.383652 65
5 ACE_O WAT_O 1.0 Strans 47.442017 65
6 ACE_O WAT_O 1.0 Srot 21.607751 65
7 ACE_O WAT_O 1.0 count 3.25 65
8 ARG_C WAT_O 1.0 Sor_test2 2.209787 94
9 ARG_C WAT_O 1.0 Strans 44.950488 94
10 ARG_C WAT_O 1.0 Srot 22.805753 94
11 ARG_C WAT_O 1.0 count 4.7 94
12 ARG_N WAT_O 1.0 Sor_test2 4.32251 213
13 ARG_N WAT_O 1.0 Strans 47.054251 213
14 ARG_N WAT_O 1.0 Srot 21.210664 213
15 ARG_N WAT_O 1.0 count 10.65 213
16 ARG_O WAT_O 1.0 Sor_test2 0.658554 51
17 ARG_O WAT_O 1.0 Strans 49.519626 51
18 ARG_O WAT_O 1.0 Srot 23.221778 51
19 ARG_O WAT_O 1.0 count 2.55 51
20 NME_C WAT_O 1.0 Sor_test2 2.876769 92
21 NME_C WAT_O 1.0 Strans 46.592128 92
22 NME_C WAT_O 1.0 Srot 20.791071 92
23 NME_C WAT_O 1.0 count 4.6 92
24 NME_N WAT_O 1.0 Sor_test2 0.3607 25
25 NME_N WAT_O 1.0 Strans 46.337027 25
26 NME_N WAT_O 1.0 Srot 21.698027 25
27 NME_N WAT_O 1.0 count 1.25 25, 'soluteData': resName variable value count
0 ACE_C WM_Strans 31.20938 20
1 ACE_C WM_Srot 18.233384 20
2 ACE_C WM_UA_Strans 1.450273 20
3 ACE_C WM_UA_Srot 17.25675 20
4 ARG_N WM_Strans 37.553747 20
5 ARG_N WM_Srot 10.55119 20
6 ARG_N WM_UA_Strans 203.095275 20
7 ARG_N WM_UA_Srot NaN 20
8 ARG_N conf_AE 18.358527 20
9 NME_N WM_Strans 28.852401 20
10 NME_N WM_Srot 0.387749 20
11 NME_N WM_UA_Strans 0.0 20
12 NME_N WM_UA_Srot 27.433272 20, 'contactMatrix': centre_resid neighbour_resid count centre_resname neighbour_resname \
0 1 2 1.0 ACE ARG
1 2 3 1.0 ARG NME
2 2 1 1.0 ARG ACE
3 2 3 1.0 ARG NME
4 1 2 1.0 ACE ARG
5 3 2 1.0 NME ARG
6 2 1 1.0 ARG ACE
7 2 1 1.0 ARG ACE
8 3 2 1.0 NME ARG
9 3 1 0.1 NME ACE
10 3 2 1.0 NME ARG
11 1 2 1.0 ACE ARG
12 1 3 0.1 ACE NME
13 2 3 1.0 ARG NME
centre_atom neighbour_atom
0 C CA
1 C CH3
2 CA C
3 CA N
4 CH3 N
5 CH3 C
6 N CH3
7 N O
8 N CA
9 N O
10 N O
11 O N
12 O N
13 O N }}
/home/donald/miniconda3/envs/CEtrial/lib/python3.10/site-packages/CodeEntropy/poseidon/analysis/EECalculation.py:859: RuntimeWarning: invalid value encountered in double_scalars
w = w ** 0.5
Solute Contact¶
[6]:
result_solcon = poseidon_object.run_analysis(level_list = ['soluteContacts'], verbose=False, forceUnits="Kcal") # this is because the forces value supplied in this trajectory is in Kcal
print(result_solcon)
2022-06-30 14:03:19.556689
solvent: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
water: ['WAT', 'wat', 'SOL', 'H2O', 'h2o', 'WAT_O', 'TIP3']
1. Populate Dictionaries
memory use: 0.233 GB
0:00:00.001247
memory use: 0.233 GB
0:00:00.091347
0:00:00.091990
memory use: 0.233 GB
Total number of frames: 20.0
Number of atoms in each frame: 916
Number of variables in each list: 19
2. Process Dictionaries
['soluteContacts']
---level: soluteContacts
0:00:00.190073
{'soluteContacts': {'solventData': nearest assigned shell_num variable value count
0 ACE_1_ACE_1 WAT 1.0 Sor_test2 0.747622 19
1 ACE_1_ACE_1 WAT 1.0 Strans 54.849501 19
2 ACE_1_ACE_1 WAT 1.0 Srot 21.83436 19
3 ACE_1_ACE_1 WAT 1.0 count 0.95 19
4 ACE_1_ARG_2 WAT 1.0 Sor_test2 0.129079 26
5 ACE_1_ARG_2 WAT 1.0 Strans 53.464565 26
6 ACE_1_ARG_2 WAT 1.0 Srot 21.481491 26
7 ACE_1_ARG_2 WAT 1.0 count 1.3 26
8 ACE_1_NME_3 WAT 1.0 Sor_test2 0.029043 16
9 ACE_1_NME_3 WAT 1.0 Strans 49.229698 16
10 ACE_1_NME_3 WAT 1.0 Srot 26.038399 16
11 ACE_1_NME_3 WAT 1.0 count 0.8 16
12 ARG_2_ACE_1 WAT 1.0 Sor_test2 0.129079 26
13 ARG_2_ACE_1 WAT 1.0 Strans 53.464565 26
14 ARG_2_ACE_1 WAT 1.0 Srot 21.481491 26
15 ARG_2_ACE_1 WAT 1.0 count 1.3 26
16 ARG_2_ARG_2 WAT 1.0 Sor_test2 0.424278 104
17 ARG_2_ARG_2 WAT 1.0 Strans 47.596492 104
18 ARG_2_ARG_2 WAT 1.0 Srot 23.318138 104
19 ARG_2_ARG_2 WAT 1.0 count 5.2 104
20 ARG_2_NME_3 WAT 1.0 Sor_test2 0.733499 35
21 ARG_2_NME_3 WAT 1.0 Strans 49.012885 35
22 ARG_2_NME_3 WAT 1.0 Srot 20.595806 35
23 ARG_2_NME_3 WAT 1.0 count 1.75 35
24 NME_3_ACE_1 WAT 1.0 Sor_test2 0.029043 16
25 NME_3_ACE_1 WAT 1.0 Strans 49.229698 16
26 NME_3_ACE_1 WAT 1.0 Srot 26.038399 16
27 NME_3_ACE_1 WAT 1.0 count 0.8 16
28 NME_3_ARG_2 WAT 1.0 Sor_test2 0.733499 35
29 NME_3_ARG_2 WAT 1.0 Strans 49.012885 35
30 NME_3_ARG_2 WAT 1.0 Srot 20.595806 35
31 NME_3_ARG_2 WAT 1.0 count 1.75 35
32 NME_3_NME_3 WAT 1.0 Sor_test2 0.015884 13
33 NME_3_NME_3 WAT 1.0 Strans 48.028634 13
34 NME_3_NME_3 WAT 1.0 Srot 22.175048 13
35 NME_3_NME_3 WAT 1.0 count 0.65 13, 'soluteData': Empty DataFrame
Columns: [resName, variable, value, count]
Index: []}}
[ ]: