УНИТе

Портал > Документация > Инсталиране и използване на pymbar под CentOS 7 и 8

Инсталиране и използване на pymbar под CentOS 7 и 8

Съдържание:

  1. Предварителна информация
  2. Изтегляне на изходния код на pymbar и инсталирането му с Intel Python 3
  3. Тест за взаимодействие на инсталирания модул с бибилотеките на OpenMM

 

1. Предварителна информация

Pymbar е Python модул, реализиращ метода MBAR ("Multistate Bennett Acceptance Ratio"). Този модул може да взаимодейства с библиотеките на OpenMM през Python модула simtk (последния е част от пакета OpenMM). Което означава, че за да можете да използвате това взаимодействие (когато е нужно) то pymbar, трябва да имат достъп до работеща инсталация на OpenMM.

 

2. Изтегляне на изходния код на pymbar и инсталирането му с Intel Python 3

Инсталирането на Intel Python 3 е описано в документа "Инсталиране на Intel Python 3 под CentOS 7 и 8".

Изходният код на библиотеката може да бъде изтеглен от страницата на проекта:

https://github.com/choderalab/pymbar/releases

Препоръчително е да изтеглите и компилирате последната стабилна версия на кода на проекта. За примера тук се предполага, че това е 3.0.5. По времето, по което вие посетите страницата на проекта, там може да има по-нова стабилна версия. Изтеглянето и разпакетирането на кода може да стнане по следния начин:

$ mkdir ~/build
$ cd ~/build
$ wget https://github.com/choderalab/pymbar/archive/3.0.5.tar.gz -O pymbar-3.0.5.tar.gz
$ tar xvf pymbar-3.0.5.tar.gz

Влезте в новосъздадената при разпакетирането директория:

$ cd ~/build/pymbar-3.0.5

и в нея изпълнете (може да коригирате директориите, които са зададени като стойност на променливите PATH и PYTHONPATH, ако това се налага във вашия случай):

$ mkdir -p /usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages
$ PATH=/opt/intel/intelpython3/bin:$PATH PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages python3 setup.py install --prefix=/usr/unite/python-3.7.4-pymbar-3.0.5-intel

По подобен случай може да компилирате и инсталирате кода с използването на Python версия различна от Intel Python 3. Просто коригирайте стойността на променливата PATH да сочи към директорията, която съдържа Python интерпретатора, който искате да използвате.

 

3. Тест за взаимодействие на инсталирания модул с бибилотеките на OpenMM

ВАЖНО! С малки изключения този тест може да бъде извършен с всяка поддържана в момента версия на Python, дори тази, която идва с дистрибуцията и която има на разположение съвремена версия на модулите scipy и numpy.

За да извършите теста е нужно да създадете директория, в която да копирате и стартирате скрипта /usr/unite/openmm-7.4.1-intel/examples/argon-chemical-potential.py. Python кода в този скрипт (поне във версията, в която той е представен в пакета OpenMM) неправилно извиква pymbar.timeseries. Поради това се налага модификация (както е показано в примера по-долу чрез извикване на sed), преди да се стартира теста. Ето и серията от команди за извършване на теста спрямо версията на OpenMM компилирана с Intel Compiler:

$ mkdir ~/test
$ cd ~/test
$ cp /usr/unite/openmm-7.4.1-intel/examples/argon-chemical-potential.py .
$ sed -i 's/from timeseries import/from pymbar.timeseries import/'g argon-chemical-potential.py
$ PATH=/opt/intel/intelpython3/bin:$PATH PYTHONPATH=/usr/unite/python-3.7.4-simtk-intel/lib/python3.7/site-packages:/usr/unite/python-3.7.4-pymbar/lib/python3.7/site-packages python3 argon-chemical-potential.py

При успешно изпълнение на теста (това е последния команден ред по-горе), ще бъде изведена информация за свободната енергия:

Free energy differences (in kT)
[[ 0.          1.06371584  3.99126798  4.89827915  5.04677385]
 [-1.06371584  0.          2.92755214  3.83456331  3.98305801]
 [-3.99126798 -2.92755214  0.          0.90701117  1.05550587]
 [-4.89827915 -3.83456331 -0.90701117  0.          0.1484947 ]
 [-5.04677385 -3.98305801 -1.05550587 -0.1484947   0.        ]]
Statistical errors (in kT)
[[0.         0.06880369 0.38841223 0.54633586 0.57776226]
 [0.06880369 0.         0.35282101 0.52041725 0.55333789]
 [0.38841223 0.35282101 0.         0.25914328 0.31795684]
 [0.54633586 0.52041725 0.25914328 0.         0.11670137]
 [0.57776226 0.55333789 0.31795684 0.11670137 0.        ]]
Free energy of inserting argon particle: 5.047 +- 0.578 kT

 

4. Тестове включени в инсталационния пакет на модула

За да извършите тези тестове ще са ви нужни допълнителни модули, които може да инсталирате само времено, в рамките на виртуална среда за Python. За да създадете виртуалната среда, изпълнете следното:

$ sudo dnf install python3-virtualenv
$ virtualenv -p /opt/intel/intelpython3/bin/python3 ~/tmp/virtenv
$ source ~/tmp/virtenv/bin/activate

След като изпълните последния команден ред, ще забележите, че в началото на реда на командния интерпретатор ще се появи (virtenv), например:

(virtenv) [test@wks-1 virtenv]$

Не излизайте от виртуалната среда по време на изпълнение на тестовете по-долу!

В директория ~/build/pymbar-3.0.5/examples/ се съдържат 6 поддиректории, всяка една от които съдържа скриптове за извършване на различни по характер тестове:

alchemical-free-energy
constant-force-optical-trap
harmonic-oscillators
heat-capacity
parallel-tempering-2dpmf
umbrella-sampling-pmf

Обърнете внимание, че директория alchemical-free-energy е празна, защото проектът, който предоставя изходния код за теста е обособен като отделен. Извършването на този тест изисква Python 2.7, който вече не се поддържа и поради това не е описан в този документ.

Всички тестове в останалите 5 поддиректории се извършват във виртуалната Python среда, в която влизате според инструкциите дадени по-горе. Ако при изпълнението на тестовете не сте в тази среда, то няма да може да следвате примерите, които са дадени по-долу. Изпълнете тестовете в реда показан по-долу:

  • извършване на тестовете в constant-force-optical-trap:

    Първо трябва да инсталирате модула xlrd (във виртуалната среда не е нужно да указвате стойност на PATH, за да посочите кой точно инструмент pip използвате):

    $ pip install xlrd

    След това изпълнете теста от скрипта force-bias-optical-trap.py<:

    $ cd ~/build/pymbar-3.0.5/examples/constant-force-optical-trap
    $ PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 force-bias-optical-trap.py

    След като теста завърши успешно, разпакетирайте файла original-data/20R55_4T_data.xls.bz2:

    $ bunzip2 original-data/20R55_4T_data.xls.bz2

    и стартирайте теста extract-data.py (той е в същата директория, в която е скрипта force-bias-optical-trap.py):

    $ PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 extract-data.py

    Ако и двата теста завършат без извеждане на съобщение за грешка, може да приемете, че те са успешни и да продължите със следващите тестове (виж по-долу).

  • извършване на тестовете в harmonic-oscillators:

    ВНИМАНИЕ! Към момента, в кода на скрипта harmonic-oscillators-distributions.py има грешка и няма смисъл да изпълнявате теста в него.

    Изпълнете теста в скрипта harmonic-oscillators.py:

    $ cd ~/build/pymbar-3.0.5/examples/harmonic-oscillators
    $ PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 harmonic-oscillators.py

    Ако изпълнението на теста завърши без извеждане на съобщение за грешка, може да приемете, че той е успешен и да продължите със следващите тестове (виж по-долу).

  • извършване на тестовете в heat-capacity:

    Изпълнете теста в скрипта heat-capacity.py:

    $ cd ~/build/pymbar-3.0.5/examples/heat-capacity
    $ PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 heat-capacity.py

    Ако изпълнението на теста завърши без извеждане на съобщение за грешка, може да приемете, че той е успешен и да продължите със следващите тестове (виж по-долу).

  • извършване на тестовете в parallel-tempering-2dpmf:

    Изпълнете теста в скрипта parallel-tempering-2dpmf.py:

    $ cd ~/build/pymbar-3.0.5/examples/parallel-tempering-2dpmf
    PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 parallel-tempering-2dpmf.py

    Ако изпълнението на теста завърши без извеждане на съобщение за грешка, може да приемете, че той е успешен и да продължите със следващите тестове (виж по-долу).

  • извършване на тестовете в umbrella-sampling-pmf:

    Изпълнете теста в скрипта umbrella-sampling.py:

    $ cd ~/build/pymbar-3.0.5/examples/umbrella-sampling-pmf
    PYTHONPATH=/usr/unite/python-3.7.4-pymbar-3.0.5-intel/lib/python3.7/site-packages:/opt/intel/intelpython3/lib/python3.7/site-packages python3 umbrella-sampling.py

    Ако изпълнението на теста завърши без извеждане на съобщение за грешка, може да приемете, че той е успешен.

Можете да излезете от виртуалната Python среда чрез Ctrl-D

 


Последна актуализация: 4 март 2020

2020 УНИТе, Веселин Колев