from xmlrpclib import ServerProxy
from IPython.display import Image
import time
cmd = ServerProxy(uri="http://localhost:9123/RPC2")
cmd.cd('/Users/aleksandrabezmenova/Documents/fbb/term8/Golovin/Pr4')
cmd.bg_color('white')
ImPath = '/tmp/pymolpng.png'
def MakeImage():
cmd.ray(600,400)
cmd.png(ImPath)
time.sleep(2)
def focus(sele):
cmd.center(sele)
cmd.zoom(sele,'1')
$ echo 'C1=CC=C2C=CC=C2C=C1' > Azulene.smi
$ echo 'c1ccc2ccccc2c1' > Napthalene.smi
Подберем такие силовые поля в obgen, чтобы структуры получились плоские.
$ obgen Napthalene.smi -ff MMFF94 > Napthalene.mol
$ obgen Azulene.smi -ff UFF > Azulene.mol
MakeImage()
Image(ImPath)
$ babel -imol Azulene.mol -omop Azulene.mop -xk "PM6"
$ babel -imol Napthalene.mol -omop Napthalene.mop -xk "PM6"
$ MOPAC2009.exe Azulene.mop
$ MOPAC2009.exe Napthalene.mop
%%bash
# Первформатируем вывод MOPAC во вход для GAMESS
babel -imopout Azulene.out -ogamin azu_opt.inp
babel -imopout Napthalene.out -ogamin nap_opt.inp
# Добавим заголовки
sed -i 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=OPTIMIZE $END\
\$BASIS GBASIS=N31 NGAUSS=6 $end\
\$system mwords=2 $end/' nap_opt.inp
sed -i 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$CONTRL COORD=CART UNITS=ANGS SCFTYP=RHF RUNTYP=OPTIMIZE $END\
\$BASIS GBASIS=N31 NGAUSS=6 $end\
\$system mwords=2 $end/' azu_opt.inp
# Запустим оптимизацию
gms nap_opt.inp 1 >& nap_opt.log
gms azu_opt.inp 1 >& azu_opt.log
%%bash
babel -igamout nap_opt.log -ogamin nap_opt.inp
babel -igamout azu_opt.log -ogamin azu_opt.inp
# Input for Hartree-Fock
sed 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$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/' nap_opt.inp > nap_HF.inp
sed 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$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/' azu_opt.inp > azu_HF.inp
# Input for functional density
sed 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$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/' nap_opt.inp > nap_DF.inp
sed 's/$CONTRL COORD=CART UNITS=ANGS $END/\
\$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/' azu_opt.inp > azu_DF.inp
Рассчет методом Хартри-Фока:
%%bash
gms nap_HF.inp 1 >& nap_HF.log
gms azu_HF.inp 1 >& azu_HF.log
%%bash
grep "TOTAL ENERGY =" nap_HF.log azu_HF.log
Рассчет c использованием теории функционала плотности:
%%bash
gms nap_DF.inp 1 >& nap_DF.log
gms azu_DG.inp 1 >& azu_DF.log
%%bash
grep "TOTAL ENERGY =" nap_DF.log azu_DF.log
Сравнение энергий, полученных разными методами:
Вещество | ENaphthalene | EAzulene | ΔE, Hartre | ΔE, kCal/mol |
---|---|---|---|---|
Хартри-Фок | -383.35 | -383.28 | 0.07 | 45.62 |
DFT | -385.64 | -385.59 | 0.05 | 34.32 |
К экспериментальным результатам (ΔE изомеризации нафталина в азулен равна 35.3±2.2 kCal/mol) ближе результат, полученный с использованием теории функционала плотности.