import os
os.environ['PATH']=os.environ['PATH']+'/home/preps/golovin/progs/bin'
os.environ['MOPAC_LICENSE']='/home/preps/golovin/progs/bin'
os.environ['LD_LIBRARY_PATH']='/home/preps/golovin/progs/lib'
%%bash
export PATH=${PATH}:/home/preps/golovin/progs/bin
export MOPAC_LICENSE=/home/preps/golovin/progs/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/preps/golovin/progs/lib
%%bash
echo C1=CC=C2C=CC=C2C=C1 Azulene >> azulene.smi
%%bash
echo c1ccc2ccccc2c1 Naphthalene >> naphtalene.smi
##Создали файлы smiles для нафталина и азулена
from xmlrpclib import ServerProxy
from IPython.display import Image
import os, sys
import __main__
__main__.pymol_argv = [ 'pymol', '-cp' ]
import pymol
pymol.finish_launching()
from pymol import cmd
from IPython.display import Image
%%bash
obgen azulene.smi -ff UFF > azu.mol
%%bash
obgen naphtalene.smi -ff UFF > naph.mol
cmd.delete('all')
cmd.load('azu.mol')
cmd.do('''
ray
png azu1.png
''')
Image(filename='azu1.png')
cmd.save("azul_start.pdb")
cmd.delete('all')
cmd.load('naph.mol')
cmd.do('''
rotate x, 90
ray
png nap1.png
''')
Image(filename='nap1.png')
cmd.save("naph_start.pdb")
%%bash
babel -ipdb azul_start.pdb -omop azul_opt.mop -xk "PM6"
/home/preps/golovin/progs/bin/MOPAC2016.exe azul_opt.mop
%%bash
babel -imopout azul_opt.out -omol azul_opt.mol
cmd.delete('all')
cmd.load('azul_opt.mol')
cmd.do('''
ray
png azul2.png
''')
Image(filename='azul2.png')
%%bash
export PATH=${PATH}:/home/preps/golovin/progs/bin
export MOPAC_LICENSE=/home/preps/golovin/progs/bin
%%bash
babel -ipdb naph_start.pdb -omop naph_opt.mop -xk "PM6"
/home/preps/golovin/progs/bin/MOPAC2016.exe naph_opt.mop
##В итоге использовался MOPAC2009, запущенный через консоль
%%bash
babel -imopout naph_opt.out -omol naph_opt.mol
##Таким образом, провели преоптимизацию для обеих молекул с помощью MOPAC.
%%bash
babel -imol azul_opt.mol -ogamin azul_opt_new.inp
babel -imol naph_opt.mol -ogamin naph_opt_new.inp
%%bash
gms naph_opt_new.inp 1 >& nap_opt.log
gms azul_opt_new.inp 1 >& azu_opt.log
%%bash
babel -igamout azu_opt.log -ogamin azu_hart.inp
babel -igamout nap_opt.log -ogamin nap_hart.inp
%%bash
babel -igamout azu_opt.log -ogamin azu_dft.inp
babel -igamout nap_opt.log -ogamin nap_dft.inp
%%bash
gms nap_hart.inp 1 >& nap_hart_opt.log
gms azu_hart.inp 1 >& azu_hart_opt.log
gms nap_dft.inp 1 >& nap_dft_opt.log
gms azu_dft.inp 1 >& azu_dft_opt.log
##В полученных файлах почему-то не было строки TOTAL ENERGY, поэтому пришлось складывать кинетическую энергию и потенциальную.
%%bash
grep 'TOTAL POTENTIAL ENERGY' nap_hart_opt.log >> energy_nap_hart.txt
grep 'TOTAL KINETIC ENERGY' nap_hart_opt.log >> energy_nap_hart.txt
%%bash
grep 'TOTAL POTENTIAL ENERGY' nap_dft_opt.log >> energy_nap_dft.txt
grep 'TOTAL KINETIC ENERGY' nap_dft_opt.log >> energy_nap_dft.txt
grep 'TOTAL POTENTIAL ENERGY' azu_hart_opt.log >> energy_azu_hart.txt
grep 'TOTAL KINETIC ENERGY' azu_hart_opt.log >> energy_azu_hart.txt
grep 'TOTAL POTENTIAL ENERGY' azu_dft_opt.log >> energy_azu_dft.txt
grep 'TOTAL KINETIC ENERGY' azu_dft_opt.log >> energy_azu_dft.txt
file = open('energy_azu_dft.txt', 'r')
a = []
for line in file:
a.append(float(line.split()[-1]))
print(a)
total_azu_dft=sum(a)
print(total_azu_dft)
file = open('energy_nap_dft.txt', 'r')
b = []
for line in file:
b.append(float(line.split()[-1]))
print(b)
total_nap_dft=sum(b)
print(total_nap_dft)
delta_dft_h = total_azu_dft - total_nap_dft
print(delta_dft_h)
##энергия изомеризации по dft в единицах Хартри
delta_kcal=delta_dft_h*627.509469
print(delta_kcal)
##энергия изомеризации по dft в единицах kcal/mol
file = open('energy_nap_hart.txt', 'r')
a = []
for line in file:
a.append(float(line.split()[-1]))
print(a)
sum(a)
total_nap_hart=sum(a)
print(total_nap_hart)
file = open('energy_azu_hart.txt', 'r')
b = []
for line in file:
b.append(float(line.split()[-1]))
print(b)
sum(b)
total_azu_hart=sum(b)
print(total_azu_hart)
delta_hart_h = total_azu_hart - total_nap_hart
print(delta_hart_h)
##энергия изомеризации по Хартри-Фоку в единицах Харти
delta_kcal=delta_hart_h*627.509469
print(delta_kcal)
##энергия изомеризации по Хартри-Фоку в единицах kcal/mol
##Рассчитали суммарную энергию молекул по Хартри-Фоку и DFT, посчитали энергию изомеризации в каждом из случаев
##Больше похожа на экспериментальную (35.3±2.2 kCal/mol) получилась при рассчете по DFT
E Naphthalene |
E Azulene |
?E , Hartree |
?E, kCal/mol |
|
- | -383.282292968 |
-383.354515509 |
0.0722225409001 |
45.3203282901 |
DFT | -385.585310835 |
-385.63965725 |
0.0543464146 |
34.1028897677 |