序 随着近年来计算机软硬件技术的发展,利用分子动力学模拟研究膜蛋白体系越来越多。因此,如何构建膜蛋白体系就显得尤其重要。众多的分子动力学模拟软件中,ACEMD作为一款新的分子动力学软件,基于Python环境的HTMD能够使用户更便捷的构建膜蛋白体系并应用于HTMD和ACEMD软件进行分子动力学模拟。 building protein in membrane #!/usr/bin/python3 # coding: utf-8 # In[1]:导入模块,开启可视化 from htmd.ui import * config(viewer='ngl') # In[2]:准备蛋白并可视化 Molecule('mor/4dkl.pdb').view() # 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') # 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) # In[7]:可视化设置 prot.reps.add(sel='segid P0', style='NewCartoon', color=1) prot.reps.add(sel='segid P1', style='NewCartoon', color=2) prot.view() # In[8]:添加离子 sod = Molecule('mor/sod.pdb') sod.set('segid','S1') prot.append(sod) prot.reps.add(sel='ions', style='VDW') prot.view() # 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) # 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() # 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))) # In[15]:可视化 smol.reps.add(sel='segid L', style='Licorice') smol.reps.add(sel='water', style='Lines') smol.view() # In[16]:建立蛋白的charmm力场坐标和拓扑 molbuilt = charmm.build(smol, topo=topos, param=params, outdir='./build/', saltconc=0.15) # In[17]:建立后体系可视化 molbuilt.view() 参考资料 https://software.acellera.com/docs/latest/htmd/tutorials/system-building-protein-in-membrane.html https://software.acellera.com/docs/latest/htmd/tutorials/protein-preparation.html https://software.acellera.com/docs/latest/htmd/userguide/advancedbuilding.html http://gainstrong.net/works/hudong/