用于计算LeDock, AutoDock和AutoDock Vina的对接盒子插件


背景

背景简介
本PyMOL插件是2014年发表于BioMS论坛的 (http://bioms.org/thread-1234-1-1.html)。以下是转过来的原文。目前支持AutoDock、AutoDock Vina和LeDock和对接盒子的获取。

LeDock是苏黎世大学ZHAO Hongtao博士开发的一款跨平台(Win,Linux, Mac OS)分子对接软件,在速度和准确度上均呈现出强劲的优势,其对接准确性高于Gold (http://bioms.org/thread-1222-1-1.html)。
LeDock对接盒子(Box)是由LePro获得的,盒子的格式如下:

# LeDock  
Binding pocket  
xmin xmax  
ymin ymax  
zmin zmax  

# 类似的,以下是Autodock Vina和AutoDock的盒子格式
# AutoDock Vina  
--center_x xx.x --center_y xx.x --center_z xx.x --size_x xx.x --size_y xx.x --size_z xx.x 

# AutoDock
npts npX npY npZ # num. grid points in xyz # XYZ轴上格点数
spacing 0.375 # spacing (A) # 格点间距(单位:埃)
gridcenter CenterX, CenterY, CenterZ # xyz-coordinates or auto # 盒子中心坐标

LePro可以识别含有一个配体的蛋白活性空腔,但无法识别含多个小分子或离子或无配体蛋白活性空腔,如1MQ4。另外,由于没有图形界面,无法显示和调节盒子的位置。因此有必要用其他方法来获得盒子信息。BioMS论坛里eming用VMD和PyMOL AutoDock Plugin分别实现了LeDock盒子信息的获取与显示(http://bioms.org/thread-1226-1-1.html)。

原理简介

首先介绍在PyMOL下获取盒子的原理和相应PyMOL Script代码的实现。对于不想看原理的伙伴们可以直接跳到下面看安装和具体用法,基于这个插件可以在PyMOL中获取LeDock和Autodock Vina的盒子信息。

1. 预处理蛋白

首先是去除溶剂分子和离子。防止干扰后面的操作

cmd.remove('solvent') # 移除溶剂
removeions() #调用移除离子函数

移除离子的代码:

cmd.select("Ions", "((resn PO4) | (resn SO4) | (resn ZN) | (resn CA) | (resn MG) | (resn CL)) & hetatm") #这里还不完善
cmd.remove("Ions")

根据配体确定盒子

这个方法用于含有配体的蛋白,选定蛋白的A链中小分子突出显示,其中若含多个分子,则手动选择配体,以配体盒子(ligand box)几何中心为盒子中心,生成对接盒子(docking box, 图 1)。下面是关键代码:

cmd.select("ChaHet","hetatm & chain A") # 选中A链中小分子 
cmd.show("sticks", "ChaHet") # 以stick模式显示小分子,以便于手动选定配体  
getbox("ChaHet",extending) # 以配体几何中心为盒子中心,生成盒子,extending是指将配体盒子延长的大小

选定对象盒子空间位置和大小信息的获取代码(关键):

([minX, minY, minZ],[maxX, maxY, maxZ]) = cmd.get_extent(selection) # 获得选定对象的盒子(ligand box),空间两点确定一个长方体
minX = minX - float(extending) # extending是指docking box相对于ligand box,在minX方向延长的长度,默认值为5埃 
minY = minY - float(extending)
minZ = minZ - float(extending)
maxX = maxX + float(extending)
maxY = maxY + float(extending)
maxZ = maxZ + float(extending)

3. 根据活性空腔的氨基酸确定盒子

这个方法可用于没有配体的蛋白质活性空腔的确定。选定空腔各方向的氨基酸(>=2),以氨基酸们盒子(residues box)的几何中心为盒子中心,生成对接盒子(docking box, 图 2)。注意:氨基酸一般选择文献报导的活性空腔的,如果没有文献报道的,就最好用活性空腔搜索软件来确定,如CASTp、PASS、Pocket-Finder、PocketPicker等。下面是关键代码:

cmd.select("sele", ResiduesStr + " & chain A") # 选定链A中ResiduesStr中出现的氨基酸
getbox("sele", extending) # 以氨基酸们的几何中心为盒子中心,生成盒子,原理与图1类似,但这里要注意extending大小的设置,默认值为5埃

AutoDL能docker吗 autodock安装_html

安装方法

基于以上原理和方法,用PyMOL Script编了一个PyMOL的插件——GetBox Plugin,可以输出LeDock和Autodock Vina的盒子信息。 首先介绍安装方法(图 3):打开PyMOL->Plugin->(Plugin Manager)->Install (New) Plugin->找到GetBox Plugin.py安装->重启PyMOL->安装成功,PyMOL的Plugin工具栏会多出一个菜单项GetBox Plugin,有三个子菜单,分别为:Advanced usage、Autodetect box、Get box from selection (sele)。

AutoDL能docker吗 autodock安装_ci_02


AutoDL能docker吗 autodock安装_AutoDL能docker吗_03