Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2013

Занятие 4

Часть 1. Cеми-эмпирические вычисления: Mopac

Сегодня ключевым модулем на сегодня будет openbabel https://openbabel.org/docs/dev/index.html, это небольшой фрейворк для конвертации молекул между разными форматами.

Итак, как обычно создаем рабочую директорию и в ней запускаем jypiter notebook как мы это делали раньше .

   1 import pybel

посмотрим какие форматы он может читать и писать:

   1 print pybel.informats
   2 print pybel.outformats

Ниже приводятся пример действий, а не задание!!!

   1 mol=pybel.readstring('smi','CC(=O)C')
   2 mol.addh()
   3 mol.make3D()

   1 mop=mol.write(format='mopin',opt={'k':'PM6 CHARGE=%d' % mol.charge})

Заряд правильный? можно и сохранить как файл:

   1 mop=mol.write(format='mopin',filename='my.mop',opt={'k':'PM6 CHARGE=%d' % mol.charge})

   1 %%bash
   2 export MOPAC_LICENSE='/home/preps/golovin/progs/mopac/'
   3 /home/preps/golovin/progs/mopac/MOPAC2016.exe my.mop

Подсказака:

   1 import subprocess, os
   2 my_env = os.environ.copy()
   3 my_env["MOPAC_LICENSE"] = '/home/preps/golovin/progs/mopac/'
   4 p = subprocess.Popen("/home/preps/golovin/progs/mopac/MOPAC2016.exe %s" % 'my.mop', 
   5                      shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=my_env)
   6 p.communicate()

   1 opt=pybel.readfile('mopout','my.out')
   2 for i in opt:
   3     print i
   4     i.write(format='pdb',filename='my.pdb')

Обратите внимание, что объект чтения это итератор, так как геометрий там может быть много.

Это основное задание!!! Подсказка: примеры удобно превратить в функции

cis c.i.=4 meci oldgeo
some description

Найдите в конце файла значения энергий для электронных переходов. На основании этих значений и простой формулы http://upload.wikimedia.org/math/2/5/2/252dadcde07fc3bb32ba42277d845707.png рассчитайте длину волн при которых происходят эти переходы. Пара ссылок в помощь.

http://kodomo.fbb.msu.ru/FBB/year_08/term6/tdimer.png
Наша цель увидеть переход из димера в тимины при возбуждении системы. Так как вычисление возбуждённых состояний в MOPAC затруднены, мы имитируем возбуждение ионизируя оба кольца, т.е. указывая заряд системы +2. И полученое возбуждённое состояние снова оптимизируем при заряде 0.

  1. Проведите оптимизацию геометрии этого димера, при заряде системы 0.
  2. Проведите оптимизацию результата из пункта i. , при заряде системы +2.
  3. Проведите оптимизацию результата из пункта ii. , при заряде системы 0.

Сравните энерегии всех состояний. Опишите причину по которой по Вашему мнению возбуждённое состояние при добавлении электронов не перешло обратно в исходно состояние.

Часть 2. Ab inito вычисления: ORCA

Мы найдём оптимальную геометрию для нафталена и азулена и рассчитаем теплоты образования этих молекул разными подходами квантовой механики.

format='orcainp'
header='''!HF RHF OPT 6-31G ''' 

mop=mol.write(format='orcainp',opt={'k':''})
out = mop.replace('! insert inline commands here ', 'My commands')
save out to file orca.inp

   1 /srv/databases/orca/orca/orca orca.inp | tee orca-opt.log 

Внимание это длительный расчёт, он может занять до 10 минут на каждую задачу. В отчёте отметьте базис, который вы использовали для оптимизации геометрии.

   1  !HF RHF 6-31G

   1  !DFT RHF 6-31G

Вещество

E Naphthalene

E Azulene

ΔE , Hartree

ΔE, kCal/mol

Хартри-Фок

...

...

...

...

DFT

...

...

...

...

* Допонительно: ORCA может сохранять cube файлы с плотностью примерный синтаксис в input:

   1 %plots Format Cube
   2  MO("xxx.cube",n,0);
   3 end

где n орбитали. Узнать номер можно если найти в output:

----------------
ORBITAL ENERGIES
----------------

Тогда HOMO будет орбиталь где макс энергия при OCC =2 , а LUMO следующая