На основе одного липида создадим ячейку с 64 липидами (дипальмитоилфосфатидилхолин) функцией genconf. C помощью editconf преобразуем gro файлы с одним липидом и 64-мя в pdb файлы. В файлах одна молекула липида и ее 64 копии в ряд.
import subprocess
cmd = 'genconf -f dppc.gro -o b_64.gro -nbox 4 4 4'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f dppc.gro -o dppc.pdb'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f b_64.gro -o b_64.pdb'
subprocess.call(cmd,shell=True)
from IPython.display import Image
Image(filename='dppc.png')
Image(filename='64.png')
В текстовом редакторе в файле b.top установили правильное количество липидов в системе (64 вместо 34). В ячейке cделаем небольшой отступ от липидов, чтобы добавить примерно 2500 молекул воды:
import subprocess
cmd='editconf -f b_64.gro -o b_ec -d 0.5'
subprocess.call(cmd,shell=True)
Проведём оптимизацию геометрии системы, что бы удалить "плохие" контакты молекул.
cmd='grompp -f em -c b_ec -p b -o b_em -maxwarn 2'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_em -v'
subprocess.call(cmd,shell=True)
Значение максимальной силы после оптимизации: Maximum force = 6.1937860e+02 on atom 915 [из log-файла] (до - я не смогла найти)
Добавим в ячейку молекулы воды типа spc.
cmd='genbox -cp b_em -p b -cs spc216 -o b_s'
subprocess.call(cmd,shell=True)
Проведем утряску воды (оптимизируем).
cmd='grompp -f pr -c b_s -p b -o b_pr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_pr -v'
subprocess.call(cmd,shell=True)
cmd='grompp -f em -c b_s -p b -o b_empr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_empr -v'
subprocess.call(cmd,shell=True)
cmd='grompp -f pr -c b_empr -p b -o b_pr -maxwarn 1'
subprocess.call(cmd,shell=True)
cmd='mdrun -deffnm b_pr -v'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f b_s.gro -o b_s.pdb'
subprocess.call(cmd,shell=True)
cmd = 'editconf -f b_pr.gro -o b_pr.pdb'
subprocess.call(cmd,shell=True)
Посмотрим на структуры b_s (после добавления воды и до оптимизации) и b_pr (после оптимизации). Если приглядеться, видно, что во второй структуре больше воды на периферии (особенно заметно в правом верхнем углу).
from IPython.display import Image
Image(filename='b_s.png')
Image(filename='b_pr.png')