Abinitio вычисления для нафталина и азулена

1

Для построения структур азулена и нафлена использовали команды описанные в прошлом практикуме:

In []:
#запуск на kodomo
export PATH=${PATH}:/home/preps/golovin/progs/bin
export MOPAC_LICENSE=/home/preps/golovin/progs/bin
In []:
#запуск на kodomo
echo 'C1=CC=C2C=CC=C2C=C1 Azulene' > az.smi
echo 'c1ccc2ccccc2c1 Napthalene' > nap.smi
obgen az.smi -ff MMFF94 > az.mol 
obgen nap.smi -ff MMFF94 > nap.mol 

Полученные из SMILES описания .mol файлы открыли в PyMol:

In [5]:
from xmlrpclib import ServerProxy
from IPython.display import Image, display
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
import time
In [6]:
cmd.reinitialize()
cmd.load('az.mol')
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.set('stick_radius','0.1')
cmd.bg_color('white')
cmd.set('valence','on')
cmd.show('sticks')
cmd.orient('az')
cmd.zoom('az')
cmd.do('''rotate y, 80''')
cmd.ray(600,600)
cmd.png('az_1.png')
Image(filename='az_1.png')
Out[6]:
In [11]:
cmd.reinitialize()
cmd.load('nap.mol')
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.set('stick_radius','0.1')
cmd.bg_color('white')
cmd.set('valence','on')
cmd.show('sticks')
cmd.save('nap.pdb')
cmd.zoom('nap')
cmd.do('''rotate y, 80''')
cmd.ray(600,600)
cmd.png('nap_1.png')
Image(filename='nap_1.png')
Out[11]:

Как видно, в силовом поле \(MMFF94\) структура азулена не лежит в одной плоскости, поэтому проведем оптимизацию в другом силовом поле, а именно в \(UFF\).

In []:
#запуск на kodomo
obgen az.smi -ff UFF > az_1.mol

Полученный .mol откроем в PyMol:

In [12]:
cmd.reinitialize()
cmd.load('az_1.mol')
cmd.set("opaque_background", 'off')
cmd.set("ray_trace_mode","1")
cmd.set('antialias','2')
cmd.set('stick_radius','0.1')
cmd.bg_color('white')
cmd.set('valence','on')
cmd.show('sticks')
cmd.orient('az_1')
cmd.zoom('az_1')
cmd.save('az_1.pdb')
cmd.do('''rotate y, 80''')
cmd.ray(600,600)
cmd.png('az_2.png')
Image(filename='az_2.png')
Out[12]:

С помощью openbabel переформатировали координаты в mol формате во входной файл для Mopac и задали тип параметризации "PM6", и оптимизоровали с помощью MOPAC.

In []:
#запуск на kodomo
babel -ipdb az_1.pdb -omop az_1.mop -xk "PM6"
babel -ipdb nap.pdb -omop nap.mop -xk "PM6"
MOPAC2009.exe az_1.mop
MOPAC2009.exe nap.mop

2

Полученные az_1.out и nap.out переформатировали координаты в gamin формат.

In []:
#запуск на kodomo
babel -imopout az_1.out -ogamin az_1.inp
babel -imopout nap.out -ogamin nap.inp

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

 $CONTRL COORD=CART UNITS=ANGS   SCFTYP=RHF RUNTYP=OPTIMIZE $END
 $BASIS  GBASIS=N31 NGAUSS=6  $end
 $system mwords=2 $end
 $DATA

Затем оптимизируем геометрию азулена и порфирина с помощью GAMESS.

In []:
#запуск на kodomo
gms nap.inp  1 >& nap.log 
gms az_1.inp  1 >& az_1.log

3

Из полученных \(.log\)-файлов составили новые входные файлы для расчёта энергии, а именно, построили два файла на каждую молекулу, соответвующих расчётам по методу Хартри-Фока и теории функционала плотности. Эти файлы получали при переформатировании \(.log\)-файла в \(gamin\) и заменили заговолок файла.

метод Хартри-Фока теория функционала плотности
 $CONTRL COORD=CART UNITS=ANGS   SCFTYP=RHF RUNTYP=ENERGY $END
 $BASIS  GBASIS=N31 NGAUSS=6
  POLAR=POPN31 NDFUNC=1 $END
 $GUESS  GUESS=HUCKEL $END
 $system mwords=2 $end
 $DATA
 $CONTRL COORD=CART UNITS=ANGS   dfttyp=b3lyp RUNTYP=ENERGY $END
 $BASIS  GBASIS=N31 NGAUSS=6
  POLAR=POPN31 NDFUNC=1 $END
 $GUESS  GUESS=HUCKEL $END
 $system mwords=2 $end
 $DATA
In []:
#запуск на kodomo
babel -igamout az_1.log -ogamin az_2.inp
babel -igamout nap.log -ogamin nap_2.inp

4

В полученных файлах после отлимизации GAMESS нашли значения "TOTAL ENERGY =" и заполнили таблицу:

ВеществоENaptaleneEAzuleneΔE , HartreeΔE, kCal/mol
Хартри-Фок-383,3549061523-383,28239692310,072509229245,5002301606774
DFT-385,6401306541-385,58562829010,05450236434,200751182458

Так как энергия изомеризации нафталина в азулен составляет 35.3±2.2 kCal/mol, значит расчет по теории DFT лучше, чем метод Хартри-Фока.

5

In [7]:
nl = Image(filename='lumo_nap.png')
nh = Image(filename='homo_nap.png')
al = Image(filename='low_az.png')
ah = Image(filename='homo_az.png')
display('Napthalene - LUMO', nl, 'Napthalene - HOMO', nh, 'Azulene - LUMO', al, 'Azulene - HOMO', ah)
'Napthalene - LUMO'
'Napthalene - HOMO'
'Azulene - LUMO'
'Azulene - HOMO'

Выше представлены полученные с помощью программы Gabedit HOMO и LUMO орбитали азулена и нафталина.