Calculate Solvent Entropy for a capped amino acid (Solvent)

Load Data

  1. 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)
  1. 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: []}}
[ ]: