Изучение работы методов контроля температуры в GROMACS

1.

Подговтовим файл координат и файл топологии. Создадим индекс файл, содержащий группу из одной молекулы используя файл из задания 6 box_38.gro.

In [1]:
with open("box_38.gro",'w') as file:
    file.write("""first one
  304
    1ETH     C1    1   0.577   0.217   0.574
    1ETH     C2    2   0.680   0.252   0.467
    1ETH     H1    3   0.478   0.241   0.538
    1ETH     H2    4   0.597   0.274   0.664
    1ETH     H3    5   0.583   0.111   0.597
    1ETH     H4    6   0.676   0.358   0.445
    1ETH     H5    7   0.660   0.195   0.377
    1ETH     H6    8   0.780   0.228   0.504
    2ETH     C1    9   1.350   0.305   0.750
    2ETH     C2   10   1.410   0.333   0.888
    2ETH     H1   11   1.276   0.227   0.758
    2ETH     H2   12   1.428   0.275   0.681
    2ETH     H3   13   1.302   0.396   0.712
    2ETH     H4   14   1.458   0.243   0.925
    2ETH     H5   15   1.332   0.364   0.956
    2ETH     H6   16   1.485   0.412   0.880
    3ETH     C1   17   1.424   0.986   1.174
    3ETH     C2   18   1.448   0.987   1.325
    3ETH     H1   19   1.461   0.894   1.132
    3ETH     H2   20   1.475   1.070   1.128
    3ETH     H3   21   1.317   0.994   1.154
    3ETH     H4   22   1.554   0.980   1.345
    3ETH     H5   23   1.396   0.903   1.370
    3ETH     H6   24   1.410   1.080   1.367
    4ETH     C1   25   0.617   0.787   1.059
    4ETH     C2   26   0.675   0.671   0.977
    4ETH     H1   27   0.642   0.881   1.011
    4ETH     H2   28   0.659   0.786   1.158
    4ETH     H3   29   0.509   0.777   1.065
    4ETH     H4   30   0.783   0.680   0.972
    4ETH     H5   31   0.633   0.672   0.877
    4ETH     H6   32   0.650   0.577   1.026
    5ETH     C1   33   0.141   1.073   0.490
    5ETH     C2   34   0.212   0.955   0.558
    5ETH     H1   35   0.038   1.048   0.472
    5ETH     H2   36   0.190   1.095   0.396
    5ETH     H3   37   0.146   1.161   0.555
    5ETH     H4   38   0.208   0.868   0.494
    5ETH     H5   39   0.163   0.933   0.652
    5ETH     H6   40   0.316   0.981   0.576
    6ETH     C1   41   1.250   0.825   0.133
    6ETH     C2   42   1.209   0.892   0.264
    6ETH     H1   43   1.355   0.799   0.137
    6ETH     H2   44   1.233   0.892   0.051
    6ETH     H3   45   1.191   0.734   0.118
    6ETH     H4   46   1.267   0.982   0.279
    6ETH     H5   47   1.226   0.824   0.347
    6ETH     H6   48   1.104   0.918   0.260
    7ETH     C1   49   1.329   0.375   1.295
    7ETH     C2   50   1.403   0.242   1.308
    7ETH     H1   51   1.235   0.360   1.243
    7ETH     H2   52   1.390   0.445   1.240
    7ETH     H3   53   1.309   0.416   1.394
    7ETH     H4   54   1.423   0.202   1.210
    7ETH     H5   55   1.342   0.172   1.364
    7ETH     H6   56   1.497   0.258   1.361
    8ETH     C1   57   0.859   0.689   0.554
    8ETH     C2   58   0.886   0.706   0.405
    8ETH     H1   59   0.931   0.620   0.597
    8ETH     H2   60   0.759   0.650   0.569
    8ETH     H3   61   0.868   0.786   0.604
    8ETH     H4   62   0.876   0.610   0.355
    8ETH     H5   63   0.986   0.744   0.390
    8ETH     H6   64   0.813   0.775   0.362
    9ETH     C1   65   0.410   0.262   0.163
    9ETH     C2   66   0.285   0.262   0.251
    9ETH     H1   67   0.474   0.180   0.191
    9ETH     H2   68   0.463   0.356   0.175
    9ETH     H3   69   0.381   0.251   0.059
    9ETH     H4   70   0.313   0.274   0.355
    9ETH     H5   71   0.232   0.168   0.239
    9ETH     H6   72   0.220   0.344   0.222
   10ETH     C1   73   0.612   1.227   1.074
   10ETH     C2   74   0.723   1.153   0.998
   10ETH     H1   75   0.612   1.195   1.177
   10ETH     H2   76   0.516   1.204   1.029
   10ETH     H3   77   0.629   1.334   1.069
   10ETH     H4   78   0.705   1.047   1.002
   10ETH     H5   79   0.819   1.176   1.043
   10ETH     H6   80   0.723   1.185   0.894
   11ETH     C1   81   1.189   1.122   0.744
   11ETH     C2   82   1.188   1.110   0.896
   11ETH     H1   83   1.088   1.107   0.706
   11ETH     H2   84   1.254   1.046   0.702
   11ETH     H3   85   1.225   1.220   0.715
   11ETH     H4   86   1.153   1.012   0.925
   11ETH     H5   87   1.123   1.186   0.938
   11ETH     H6   88   1.289   1.125   0.934
   12ETH     C1   89   0.259   1.125   1.357
   12ETH     C2   90   0.370   1.140   1.462
   12ETH     H1   91   0.193   1.210   1.363
   12ETH     H2   92   0.203   1.035   1.376
   12ETH     H3   93   0.304   1.120   1.258
   12ETH     H4   94   0.326   1.144   1.561
   12ETH     H5   95   0.426   1.231   1.443
   12ETH     H6   96   0.437   1.054   1.457
   13ETH     C1   97   0.891   1.072   0.621
   13ETH     C2   98   0.929   1.073   0.473
   13ETH     H1   99   0.958   1.137   0.676
   13ETH     H2  100   0.898   0.971   0.660
   13ETH     H3  101   0.789   1.108   0.632
   13ETH     H4  102   1.031   1.036   0.461
   13ETH     H5  103   0.922   1.173   0.434
   13ETH     H6  104   0.862   1.007   0.418
   14ETH     C1  105   0.376   0.628   0.510
   14ETH     C2  106   0.478   0.699   0.599
   14ETH     H1  107   0.337   0.698   0.437
   14ETH     H2  108   0.295   0.590   0.570
   14ETH     H3  109   0.424   0.545   0.458
   14ETH     H4  110   0.431   0.781   0.651
   14ETH     H5  111   0.559   0.737   0.538
   14ETH     H6  112   0.517   0.628   0.672
   15ETH     C1  113   1.138   1.445   1.298
   15ETH     C2  114   1.088   1.453   1.154
   15ETH     H1  115   1.240   1.408   1.299
   15ETH     H2  116   1.075   1.379   1.355
   15ETH     H3  117   1.136   1.544   1.343
   15ETH     H4  118   1.089   1.355   1.109
   15ETH     H5  119   1.151   1.520   1.097
   15ETH     H6  120   0.986   1.491   1.154
   16ETH     C1  121   0.218   1.431   0.458
   16ETH     C2  122   0.334   1.440   0.359
   16ETH     H1  123   0.129   1.473   0.414
   16ETH     H2  124   0.243   1.487   0.548
   16ETH     H3  125   0.200   1.327   0.484
   16ETH     H4  126   0.353   1.544   0.333
   16ETH     H5  127   0.309   1.385   0.269
   16ETH     H6  128   0.424   1.397   0.404
   17ETH     C1  129   0.746   1.287   1.466
   17ETH     C2  130   0.732   1.383   1.348
   17ETH     H1  131   0.668   1.307   1.538
   17ETH     H2  132   0.843   1.301   1.514
   17ETH     H3  133   0.738   1.184   1.432
   17ETH     H4  134   0.741   1.485   1.382
   17ETH     H5  135   0.636   1.368   1.301
   17ETH     H6  136   0.811   1.362   1.275
   18ETH     C1  137   1.328   0.499   0.488
   18ETH     C2  138   1.430   0.432   0.396
   18ETH     H1  139   1.377   0.576   0.545
   18ETH     H2  140   1.286   0.425   0.556
   18ETH     H3  141   1.248   0.543   0.429
   18ETH     H4  142   1.509   0.387   0.455
   18ETH     H5  143   1.472   0.505   0.328
   18ETH     H6  144   1.380   0.353   0.338
   19ETH     C1  145   0.967   0.658   1.263
   19ETH     C2  146   0.947   0.655   1.111
   19ETH     H1  147   0.871   0.649   1.312
   19ETH     H2  148   1.014   0.751   1.292
   19ETH     H3  149   1.030   0.575   1.293
   19ETH     H4  150   0.884   0.738   1.081
   19ETH     H5  151   0.900   0.562   1.083
   19ETH     H6  152   1.043   0.664   1.062
   20ETH     C1  153   1.188   0.157   0.132
   20ETH     C2  154   1.189   0.157   0.285
   20ETH     H1  155   1.173   0.056   0.096
   20ETH     H2  156   1.283   0.194   0.095
   20ETH     H3  157   1.108   0.220   0.096
   20ETH     H4  158   1.269   0.095   0.321
   20ETH     H5  159   1.094   0.120   0.322
   20ETH     H6  160   1.204   0.259   0.321
   21ETH     C1  161   0.899   0.401   0.885
   21ETH     C2  162   0.835   0.339   1.010
   21ETH     H1  163   0.983   0.462   0.915
   21ETH     H2  164   0.826   0.463   0.834
   21ETH     H3  165   0.932   0.322   0.818
   21ETH     H4  166   0.801   0.418   1.076
   21ETH     H5  167   0.907   0.277   1.061
   21ETH     H6  168   0.750   0.278   0.980
   22ETH     C1  169   0.671   0.964   0.249
   22ETH     C2  170   0.697   1.014   0.107
   22ETH     H1  171   0.626   0.865   0.245
   22ETH     H2  172   0.604   1.031   0.300
   22ETH     H3  173   0.765   0.958   0.304
   22ETH     H4  174   0.604   1.020   0.052
   22ETH     H5  175   0.765   0.946   0.056
   22ETH     H6  176   0.743   1.113   0.111
   23ETH     C1  177   0.212   0.408   0.739
   23ETH     C2  178   0.215   0.411   0.891
   23ETH     H1  179   0.161   0.318   0.705
   23ETH     H2  180   0.313   0.409   0.700
   23ETH     H3  181   0.158   0.495   0.702
   23ETH     H4  182   0.269   0.324   0.928
   23ETH     H5  183   0.114   0.410   0.930
   23ETH     H6  184   0.266   0.501   0.925
   24ETH     C1  185   0.702   0.547   1.385
   24ETH     C2  186   0.672   0.520   1.237
   24ETH     H1  187   0.790   0.490   1.414
   24ETH     H2  188   0.618   0.517   1.446
   24ETH     H3  189   0.721   0.653   1.399
   24ETH     H4  190   0.652   0.414   1.223
   24ETH     H5  191   0.756   0.550   1.177
   24ETH     H6  192   0.584   0.577   1.208
   25ETH     C1  193   0.500   0.241   0.886
   25ETH     C2  194   0.528   0.384   0.934
   25ETH     H1  195   0.403   0.210   0.922
   25ETH     H2  196   0.575   0.175   0.925
   25ETH     H3  197   0.502   0.238   0.778
   25ETH     H4  198   0.527   0.387   1.042
   25ETH     H5  199   0.452   0.451   0.895
   25ETH     H6  200   0.626   0.415   0.898
   26ETH     C1  201   0.675   1.384   0.415
   26ETH     C2  202   0.624   1.361   0.273
   26ETH     H1  203   0.596   1.363   0.486
   26ETH     H2  204   0.707   1.487   0.426
   26ETH     H3  205   0.760   1.318   0.435
   26ETH     H4  206   0.540   1.427   0.253
   26ETH     H5  207   0.593   1.258   0.262
   26ETH     H6  208   0.704   1.382   0.202
   27ETH     C1  209   1.243   0.729   0.899
   27ETH     C2  210   1.371   0.765   0.974
   27ETH     H1  211   1.168   0.805   0.917
   27ETH     H2  212   1.206   0.634   0.933
   27ETH     H3  213   1.263   0.724   0.792
   27ETH     H4  214   1.352   0.769   1.080
   27ETH     H5  215   1.408   0.860   0.939
   27ETH     H6  216   1.446   0.688   0.955
   28ETH     C1  217   0.968   1.446   0.290
   28ETH     C2  218   0.990   1.441   0.442
   28ETH     H1  219   1.037   1.517   0.246
   28ETH     H2  220   0.866   1.477   0.270
   28ETH     H3  221   0.984   1.348   0.248
   28ETH     H4  222   0.972   1.539   0.485
   28ETH     H5  223   1.091   1.410   0.462
   28ETH     H6  224   0.920   1.370   0.486
   29ETH     C1  225   0.873   1.487   0.750
   29ETH     C2  226   0.830   1.423   0.882
   29ETH     H1  227   0.814   1.575   0.732
   29ETH     H2  228   0.858   1.416   0.669
   29ETH     H3  229   0.978   1.514   0.754
   29ETH     H4  230   0.726   1.395   0.878
   29ETH     H5  231   0.846   1.493   0.963
   29ETH     H6  232   0.890   1.334   0.900
   30ETH     C1  233   0.273   1.208   0.855
   30ETH     C2  234   0.304   1.115   0.972
   30ETH     H1  235   0.309   1.307   0.877
   30ETH     H2  236   0.166   1.211   0.838
   30ETH     H3  237   0.322   1.171   0.765
   30ETH     H4  238   0.254   1.151   1.062
   30ETH     H5  239   0.411   1.111   0.989
   30ETH     H6  240   0.267   1.015   0.950
   31ETH     C1  241   0.355   0.216   1.360
   31ETH     C2  242   0.360   0.210   1.208
   31ETH     H1  243   0.252   0.210   1.394
   31ETH     H2  244   0.398   0.310   1.394
   31ETH     H3  245   0.412   0.133   1.402
   31ETH     H4  246   0.305   0.293   1.166
   31ETH     H5  247   0.317   0.117   1.174
   31ETH     H6  248   0.464   0.216   1.175
   32ETH     C1  249   0.319   0.679   1.046
   32ETH     C2  250   0.201   0.713   1.136
   32ETH     H1  251   0.393   0.624   1.103
   32ETH     H2  252   0.364   0.770   1.008
   32ETH     H3  253   0.286   0.618   0.963
   32ETH     H4  254   0.234   0.775   1.219
   32ETH     H5  255   0.156   0.623   1.174
   32ETH     H6  256   0.127   0.769   1.078
   33ETH     C1  257   0.990   1.000   1.442
   33ETH     C2  258   0.977   1.036   1.294
   33ETH     H1  259   1.075   1.053   1.485
   33ETH     H2  260   1.005   0.894   1.453
   33ETH     H3  261   0.900   1.029   1.495
   33ETH     H4  262   1.066   1.006   1.241
   33ETH     H5  263   0.962   1.142   1.284
   33ETH     H6  264   0.891   0.983   1.252
   34ETH     C1  265   0.168   0.729   0.117
   34ETH     C2  266   0.290   0.820   0.133
   34ETH     H1  267   0.198   0.626   0.128
   34ETH     H2  268   0.125   0.743   0.019
   34ETH     H3  269   0.094   0.753   0.193
   34ETH     H4  270   0.363   0.797   0.057
   34ETH     H5  271   0.333   0.806   0.231
   34ETH     H6  272   0.259   0.924   0.122
   35ETH     C1  273   1.317   1.396   0.400
   35ETH     C2  274   1.278   1.250   0.378
   35ETH     H1  275   1.228   1.455   0.415
   35ETH     H2  276   1.369   1.433   0.312
   35ETH     H3  277   1.382   1.404   0.487
   35ETH     H4  278   1.214   1.241   0.291
   35ETH     H5  279   1.225   1.213   0.466
   35ETH     H6  280   1.368   1.190   0.363
   36ETH     C1  281   0.907   0.261   1.445
   36ETH     C2  282   0.990   0.367   1.518
   36ETH     H1  283   0.810   0.252   1.493
   36ETH     H2  284   0.957   0.166   1.448
   36ETH     H3  285   0.892   0.291   1.341
   36ETH     H4  286   1.005   0.336   1.621
   36ETH     H5  287   0.940   0.462   1.515
   36ETH     H6  288   1.088   0.375   1.469
   37ETH     C1  289   1.435   1.420   1.441
   37ETH     C2  290   1.478   1.336   1.321
   37ETH     H1  291   1.488   1.385   1.529
   37ETH     H2  292   1.329   1.410   1.457
   37ETH     H3  293   1.459   1.524   1.424
   37ETH     H4  294   1.453   1.232   1.338
   37ETH     H5  295   1.584   1.346   1.305
   37ETH     H6  296   1.425   1.371   1.232
   38ETH     C1  297   0.409   1.119   0.353
   38ETH     C2  298   0.448   1.139   0.499
   38ETH     H1  299   0.465   1.035   0.312
   38ETH     H2  300   0.432   1.208   0.296
   38ETH     H3  301   0.303   1.098   0.346
   38ETH     H4  302   0.554   1.160   0.506
   38ETH     H5  303   0.426   1.049   0.556
   38ETH     H6  304   0.392   1.223   0.540
   1.50000   1.50000   1.50000""")
In []:
%%bash
make_ndx -f box_38.gro -o 1.ndx

После запуска команды вводим сначала "r1", что выбирает первый остаток. Следом за этим появилась новая группа из 8 атомов, нажимаем "q" для выхода. Теперь нужно создать et1.gro файл, выбрать 3 группу, созданную на предыдущем шаге. А затем расположить молекулу по центру ячейки.

In []:
%%bash
editconf -f box_38.gro -o et1.gro -n 1.ndx
editconf -f et1.gro -o et.gro -d 2 -c

Затем нужно построить файл топологии et.top для этана. Предварительно просмотрев файл /usr/share/gromacs/top/oplsaa.ff/atomtypes.atp для изменения типа атомов.

In [2]:
less /usr/share/gromacs/top/oplsaa.ff/atomtypes.atp
In [3]:
with open("et.top",'w') as file:
    file.write("""#include "/usr/share/gromacs/top/oplsaa.ff/forcefield.itp"

[ moleculetype ]
; Name            nrexcl
et            3

[ atoms ]
;   nr  type        resnr  residue  atom    cgnr charge      mass
    1   opls_135    1      ETH      C1      1    -0.189      12.01
    2   opls_135    1      ETH      C2      2    -0.155      12.01
    3   opls_140    1      ETH      H1      3     0.0059     1.008
    4   opls_140    1      ETH      H2      4     0.0059     1.008
    5   opls_140    1      ETH      H3      5     0.0059     1.008
    6   opls_140    1      ETH      H4      6     0.0056     1.008
    7   opls_140    1      ETH      H5      7     0.0056     1.008
    8   opls_140    1      ETH      H6      8     0.0056     1.008
    
[ bonds ]
;  ai    aj funct  b0       kb
     1   2   1  
     1   4   1  
     1   5   1  
     2   6   1
     2   7   1  
     2   8   1 
[ angles ]
;  ai    aj    ak funct  phi0   kphi
;around c1
    3     1     4     1  
    4     1     5     1  
    3     1     5     1  
    2     1     3     1  
    2     1     4     1  
    2     1     5     1  
;around c2
    1     2     6     1   
    6     2     8     1   
    6     2     7     1   
    7     2     8     1   
    1     2     7     1  
    1     2     8     1  
[ dihedrals ]
;  ai    aj    ak    al funct  
    3    1     2     6      3  
    3    1     2     7      3 
    3    1     2     8      3  
    4    1     2     6      3  
    4    1     2     7      3  
    4    1     2     8      3  
    5    1     2     6      3 
    5    1     2     7      3  
    5    1     2     8      3  
[ pairs ]
;  ai    aj funct
   3  6
   3  7
   3  8
   4  6
   4  7
   4  8
   5  6
   5  7
   5  8

[ System ]
; any text here
first one
[ molecules ]
;Name count
 et    1""")

Нам даны 5 файлов с разными параметрами контроля температуры: - be.mdp - метод Берендсена для контроля температуры при постоянном времени. Также не происходит флуктуации кинетической энергии и образуется канонический ансамбль для маленьких систем. - vr.mdp - метод "Velocity rescale" для контроля температуры, использующий стохастический метод для перерасчета скорости. частиц - nh.mdp - метод Нуза-Хувера для контроля температуры, при постоянному времени образуется микроканонический ансамбль. - an.mdp - метод Андерсена для контроля температуры, основанный на случайном выборе частоты столкновения частиц. - sd.mdp - метод стохастической молекулярной динамики.

С помощью скипта построим входные файлы для молекулярно-динамического движка mdrun, применяя gropp, с последющим запуском mdrun. Файлы с результатами конвертируем в pdb и просмотрим в Pymol.

In []:
%%bash
for i in $(echo be vr nh an sd); do
    grompp -f $i.mdp -c et.gro -p et.top -o et_$i.tpr
    mdrun -deffnm et_$i -v -nt 1;
    trjconv -f et_$i.trr -s et_$i.tpr -o et_$i.pdb;
done

При просмотре полученных .pbd начальное состояние абсолютно идентично. Однако при дальнейшем просмотре замечены следующие особенности: * метод Берендсена - начальное изменение длин связей, дальнейшее вращение метильных групп вокруг связи и более медленное вращение всей молекулы вокруг оси молекулы; * метод "Velocity rescale" - изменение длин связей на протяжении всех состояний, колебания валентных углов; * метод Нуза-Хувера - колебание валентных углов и вращение метильных групп вокруг связи; * метод Андерсена - несильное колебание длин связей и углов, нет вращения метильных групп, только очень медленное вращение вокург своей оси; * метод стохастической молекулярной динамики - хаотичное изменение положения молекулы, ее конформации.

Сравним потенциальную энергию связи и кинетическую энергию для каждой из 5 систем для этого в скрипт добавим строчку (параметры 10 и 11):

In []:
g_energy -f et_${i}.edr -o et_${i}_en.xvg

Полученные .xvg файлы переведем в .csv формат с помощью скрипта и построим графики изменения энергии.

In [6]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import pylab
from pylab import *
In [47]:
fig, axes = plt.subplots(1, 5,figsize=(25,5))

data = genfromtxt('be.csv', delimiter=',')
x = data[:,0]
y1 = data[:,1]
y2 = data[:,2]

data1 = genfromtxt('vr.csv', delimiter=',')
x1 = data1[:,0]
y11 = data1[:,1]
y21 = data1[:,2]
data2 = genfromtxt('nh.csv', delimiter=',')
x2 = data2[:,0]
y12 = data2[:,1]
y22 = data2[:,2]
data3 = genfromtxt('an.csv', delimiter=',')
x3 = data3[:,0]
y13 = data3[:,1]
y23 = data3[:,2]
data4 = genfromtxt('sd.csv', delimiter=',')
x4 = data4[:,0]
y14 = data4[:,1]
y24 = data4[:,2]

axes[0].plot(x,y1, x, y2,lw=2, ls='*',marker='+')
axes[0].set_xlabel('Energy, kJ/mol')
axes[0].set_ylabel('Time, ps')
axes[1].plot(x1,y11, x1, y21,lw=2, ls='*',marker='+')
axes[1].set_xlabel('Energy, kJ/mol')
axes[1].set_ylabel('Time, ps')
axes[2].plot(x2,y12, x2, y22,lw=2, ls='*',marker='+')
axes[2].set_xlabel('Energy, kJ/mol')
axes[2].set_ylabel('Time, ps')
axes[3].plot(x3,y13, x3, y23,lw=2, ls='*',marker='+')
axes[3].set_xlabel('Energy, kJ/mol')
axes[3].set_ylabel('Time, ps')
axes[4].plot(x4,y14, x4, y24,lw=2, ls='*',marker='+')
axes[4].set_xlabel('Energy, kJ/mol')
axes[4].set_ylabel('Time, ps')
axes[0].set_title("be")
axes[1].set_title("vr")
axes[2].set_title("nh")
axes[3].set_title("an")
axes[4].set_title("sd")
Out[47]:
<matplotlib.text.Text at 0x7fc2141b7f10>

Рассмотрим распределение длинны связи С-С за время моделирования. Сначала создадим индекс файл с одной связью. В текстовом редакторе создайте файл b.ndx со следующим содержимым:

In [48]:
with open("b.ndx",'w') as file:
    file.write("""[ b ]
1 2 """)

И запустим утилиту по анализу связей g_bond:

In []:
g_bond -f et_${i}.trr -s et_${i}.tpr -o bond_${i}.xvg -n b.ndx 

Полученные .xvg также перевели в .csv и построили графики распределения длинны связи С-С во время моделирования.

In [65]:
fig, axes = plt.subplots(1, 5,figsize=(25,5))

data = genfromtxt('d_be.csv', delimiter=',')
x = data[:,0]
y1 = data[:,1]

data1 = genfromtxt('d_vr.csv', delimiter=',')
x1 = data1[:,0]
y11 = data1[:,1]

data2 = genfromtxt('d_nh.csv', delimiter=',')
x2 = data2[:,0]
y12 = data2[:,1]

data3 = genfromtxt('d_an.csv', delimiter=',')
x3 = data3[:,0]
y13 = data3[:,1]

data4 = genfromtxt('d_sd.csv', delimiter=',')
x4 = data4[:,0]
y14 = data4[:,1]


axes[0].hist(y1,bins=30)
axes[0].set_xlabel('Distance, nm')
axes[0].set_ylabel('Time, ps')
axes[1].hist(y11, color='green',bins=30)
axes[1].set_xlabel('Distance, nm')
axes[1].set_ylabel('Time, ps')
axes[2].hist(y12, color='red',bins=30)
axes[2].set_xlabel('Distance, nm')
axes[2].set_ylabel('Time, ps')
axes[3].hist(y13, color='orange',bins=30)
axes[3].set_xlabel('Distance, nm')
axes[3].set_ylabel('Time, ps')
axes[4].hist(y14, color='yellow',bins=30)
axes[4].set_xlabel('Distance, nm')
axes[4].set_ylabel('Time, ps')
axes[0].set_title("be")
axes[1].set_title("vr")
axes[2].set_title("nh")
axes[3].set_title("an")
axes[4].set_title("sd")
Out[65]:
<matplotlib.text.Text at 0x7fc20e1af110>

На основе полученных данных можно подразделить все исследуемые методы на "стохастические" и "нестохастические", то есть методы Velocity rescale и сам стохастический метод случайном выборе неопределенных параметров, чем не пользуются методы Берендсена, Нуза-Хувера и Андерсена. Самым худшим методом для одной молекулы можно назвать метод Андерсена, так как он основан на вероятности столкновения частиц, а мы имеет только одну частицу. Метод Берендсена образует канонический ансамбль, то есть система обменивается кинетический энергией с термостатом, что ухадшает расчет температуры. Однако при использовании метода Нуза-Хувера не происходит обмени ни энергия, ни массой и частицами, но он все же проигрывает стохастическим методам. Сам метод стохастический метод имеет уже указание о температуре, что делает этот алгоритм более медленным по сравнению с "Velocity rescale". Если сравнивать полученные графики с распределением Максвелла-Больцмана, то наиболее похожи стохастический метод и Velocity rescale. Однако, если сравнивать два pdb файла между собой, то метод Velocity rescale кажется куда более адекватным, и, наверное, он лучше всего подходит для контроля температуры.

Файлы:

In []: