ACEMD之利用HTMD构建膜蛋白体系 ACEMD之利用HTMD构建膜蛋白体系 日期:2018-02-09 标签: 阅读: 简介:众多的分子动力学模拟软件中,ACEMD作为一款新的分子动力学软件,基于Python环境的HTMD能够使用户更便捷的构建膜蛋白体系并应用于HTMD和ACEMD软件进行分子动力学模拟。

 

 

 

 

 

 


随着近年来计算机软硬件技术的发展,利用分子动力学模拟研究膜蛋白体系越来越多。因此,如何构建膜蛋白体系就显得尤其重要。众多的分子动力学模拟软件中,ACEMD作为一款新的分子动力学软件,基于Python环境的HTMD能够使用户更便捷的构建膜蛋白体系并应用于HTMD和ACEMD软件进行分子动力学模拟。

 

building protein in membrane

#!/usr/bin/python3

# coding: utf-8

# In[1]:导入模块,开启可视化

from htmd.ui import *

config(viewer='ngl')

1.jpg

 

# In[2]:准备蛋白并可视化

Molecule('mor/4dkl.pdb').view()

2.jpg

 

# In[3]:清理蛋白结构

from htmd.util import opm

prot, thickness = opm('4dkl')

thickness

 

# In[4]:清理非蛋白结构

prot.filter('protein and noh and chain B or water within 5 of (chain B and protein)')

 

# In[5]:自动检测片段并重命名

prot = autoSegment(prot,'protein')

3.jpg

 

# In[6]:建立蛋白坐标和拓扑

topos  = charmm.defaultTopo() + ['mor/ff.rtf']

params = charmm.defaultParam() + ['mor/ff.prm']

 

prot = charmm.build(prot, topo=topos, param=params,

outdir='./03c_out_morbuild/prot/', ionize=False)

4.jpg

 

# In[7]:可视化设置

prot.reps.add(sel='segid P0', style='NewCartoon', color=1)

prot.reps.add(sel='segid P1', style='NewCartoon', color=2)

prot.view()

5.jpg

 

# In[8]:添加离子

sod = Molecule('mor/sod.pdb')

sod.set('segid','S1')

prot.append(sod)

prot.reps.add(sel='ions', style='VDW')

prot.view()

6.jpg

 

# In[9]:载入膜结构

memb=Molecule('mor/membrane80by80C36.pdb')

 

# In[10]:将膜至于蛋白中心

pcenter=np.mean(prot.get('coords','protein'),axis=0)

mcenter=np.mean(memb.get('coords'),axis=0)

memb.moveBy(pcenter-mcenter)

 

# In[11]:蛋白嵌入膜

mol = prot.copy()

mol.append(memb, collisions=True)

# mol = embed(prot,memb)

7.jpg

 

# In[12]:可视化膜蛋白系统

mol.reps.add(sel='protein', style='NewCartoon', color='Secondary Structure')

mol.reps.add(sel='ions', style='VDW')

mol.reps.add(sel='lipids', style='Lines')

mol.view()

7.jpg

 

# In[13]:向膜蛋白中加入配体

lig = Molecule('mor/QM-min.pdb')

lig.set('segid','L');

lcenter = np.mean(lig.get('coords'),axis=0)

newlcenter=[np.random.uniform(-10, 10), np.random.uniform(-10, 10),  43 ]

lig.rotateBy(uniformRandomRotation(), lcenter)

lig.moveBy(newlcenter-lcenter)

mol.append(lig)

 

# In[14]:添加水盒子

coo = mol.get('coords','noh and (lipids or protein)')

m = np.min(coo, axis=0) + [0, 0, -5]

M = np.max(coo, axis=0) + [0, 0, 20]

smol = solvate(mol, minmax=np.vstack((m,M)))

8.jpg

 

# In[15]:可视化

smol.reps.add(sel='segid L', style='Licorice')

smol.reps.add(sel='water', style='Lines')

smol.view()

9.jpg

 

# In[16]:建立蛋白的charmm力场坐标和拓扑

molbuilt = charmm.build(smol, topo=topos, param=params,

outdir='./build/',

saltconc=0.15)

 

# In[17]:建立后体系可视化

molbuilt.view()

10.jpg

 

参考资料

  1. https://software.acellera.com/docs/latest/htmd/tutorials/system-building-protein-in-membrane.html

  2. https://software.acellera.com/docs/latest/htmd/tutorials/protein-preparation.html

  3. https://software.acellera.com/docs/latest/htmd/userguide/advancedbuilding.html

  4. http://gainstrong.net/works/hudong/