[转载]原创脚本逐步实现Autodcock-Vina的虚拟筛选及筛选后分析

(2013-07-03 11:31:56)

标签:

转载

Vina是在Autodock4基础上改进的算法,相比autodock4而言,具体优势:准确,并行计算(官网数据):AutoDock

Vina is a new open-source program for drug discovery, molecular docking and

virtual screening, offering multi-core capability, high performance

and enhanced accuracy and ease of use.

相应参考文献:O. Trott, A. J. Olson,

AutoDock Vina: improving the speed and accuracy of docking with a

new scoring function, efficient optimization and multithreading,

Journal of Computational Chemistry 31 (2010)

455-461

最近用了Vina做了一次对接,我只对接了几百个化合物,发现这软件,现在还不太智能,比如说前期处理,对接结果处理,我始终认为与典型的mol2或者sdf格式文件相比,PDBQT+dlg格式文件不是很好处理,最近和一个师弟写了几个脚本程序,用来处理Vina对接问题:主要的程序如下:

对接软件:Autdock-Vina (http://vina.scripps.edu/)

PDBQT生成脚本程序:LigPrep.sh or LigPrep.py (shell 和

python,见附件):可以实现mol2、sdf、PDB、PDBQT等格式文件的虚拟库,转化成Autodock或者Vina需要的单个分子的PDBQT文件,还写了一个插件,自动去除重复分子。

结果处理程序:ARC-1.2.py (Autodock and Vina Result Conversion,

python版本,见附件):实现Dlg文件、单个分子的PDBQT对接结果转化成集成的PDBQT、sdf等格式文件。还可以根据命令提示,提取打分最好的构想及打分,或者排名前十的分子,这对处理大规模虚拟筛选十分关键。

接口程序:Vina-1.4.sh (shell

版本):主要实现自动对接,只要用这个接口就可以实现,就像商业的软件的按钮操作一样,简单方便~

obabel 软件:我们的脚本需要调用此软件里面的插件来实现功能,关于这个插件,现在自己准备后面的时间来写这段代码。

我下面结合具体例子来说:

1、蛋白受体的处理:

这个不需要多说了,ADT或者PyRx,都可以生成受体的PDBQT文件(建议),或者就自己手动生成一个(不建议),然后确定盒子中心。按照Vina的输入文件要去制作.cgf文件,例如:

config.cgf

#######################################################

receptor = rec.pdbqt //受体的名称

center_x = -2

center_y = 0 //盒子的质心

center_z = -4

size_x = 30

size_y = 32 //盒子的大小

size_z = 46

exhaustiveness = 20 //计算的复杂度

cpu = 16 //并行计算

energy_range = 4 //作用能间距等级,这个我到现在也没搞懂

num_modes = 20 //保留构想数目,这个是cluster之后的结果,实际构想可能很多

#######################################################

2、虚拟库小分子文件的准备

首先把虚拟库转化成mol2格式文件(里面包含很多分子),其实这个处理还需注意一些事项,如加氢、电荷、去除自身小分子、离子、无机盐等等,对接前的构想最好是3D构想

然后启动脚本LigPrep.sh,根据提示操作:

###################################################################

# sh LigPrep.sh [option] argument #

# Usage: LigPrep.sh prepares autodock input files (PDBQT).

# Requirement:

# 1.Ensure that molecules in the input file are of 3D prior to

preparation. //需要小分子的3D构象

# 2.Each molecule should have a unique internal name. //需要小分子唯一的内部名字

# 3.obabel is in use and its environment varible set. //需要安装obabel软件

# Option:

# -i input_file (*.sdf, *.mol2, *.pdb, *.pdbqt)

# -o output_directory (default is '__pdbqt_files__')

# -n Number of molecules to divide into each group

# (default is 1500)

# -h display this message

# -help alias of '-h'

###################################################################

例如:

sh LigPrep.sh -i ***.sdf

(这样就可以生成一个默认的文件夹,里面包含虚拟库的单个小分子的PDBQT格式文件,即可以用于Autodock或者vina进行虚拟筛选)

3、虚拟筛选

启动脚本:vina-1.4.sh

#################################################################

# Usage: #

# sh vina-1.4.sh working_direcotry [option] #

# Option: #

# --help display this message #

# -h alias of "--help" #

# Note: #

# working_directory contains input and output folders. Receptor

file (e.g. receptor.pdbqt ), ligand file(s)

(e.g ligand_01.pdbqt or ligands.mol2 ) and configuration file (e.g

config.cfg) must be put in the "input" folder;

all output files (*_out.pdbqt, *.log and *.txt) will be generated

in the "output" folder.

# The hierarchy relationship of the above folders and files can be

depicted as follow: #

# ROOT

# |__ Group1 Group2 Group3 ... vina vina-1.2.sh

# |__ input

# | ___ *.pdbqt config.cfg

# |__ output

# ___ *_out.pdbqt *.log *.txt

#################################################################

这里面要搞清楚程序放的位置关系:

例如:

sh vina-1.4.sh UCSD/ &

这表明 vina-1.4.sh 和vina这2个程序

放在UCSD这个文件外面,UCSD文件里面有个input文件,里面放的是第一步产生的.cfg文件、蛋白的PDBQT文件,以及第二步产生的小分子的PDBQT文件

运行命令,即可筛选~

这样就在input文件夹同级产生output文件夹,里面就是对接结果,有几个文件解释一下:

all.log : 所有对接进度记录;

all_xtr.txt :所有对接打分记录

best_xtr.txt :所有小分子对接打分最好的记录

4、结果分析:

Vina产生的pdbqt文件和Autodock产生的dlg文件,都可以经过我们写的脚本进行处理,实现数据整合,可以用商业软件处理分析、可视化等等

#################################################################

arc-1.2.py [option] argument

Usage:

arc-1.2.py is an Autodock Result Converter that converts autodock

(AD4 or vina)

output file(s) to SDF file(s) via arcing DLG to PDBQT, modifying

PDBQT and

externally-generated SDF. Either an input file or a folder that

contains input

files is required. The output file or folder is optional, and

default name is

used if not specified.

Option:

-i [input_file] (*.dlg of AD4, *.pdbqt of vina or *.sdf) or

[input_directory]

-o [output_file] (default is *_out.pdbqt, *_mod.pdbqt or *_mod.sdf)

or

[output_directory]

-m [Num]; extract the [Num]th mode/model of each molecule

--mode alias of "-m"

--model alias of "-m"

-h display this message

--help alias of "-h"

#################################################################

例子:

python arc-1.2.py -i ***.dlg -o ***.sdf

(对Autodock产生的dlg文件的处理),sdf文件很多软件都可以打开

python arc-1.2.py -i input_directory -o ***.sdf(对Vina结果进行处理)

除此之外,还可以提取打分最好的分子,排序,等等功能

以上是我对Vina虚拟筛选的总结以及如何使用脚本程序来辅助智能化前处理和结果的后分析,花了一天的时间来准备这个,所有本帖提供的程序

都经过一天的测试,希望对大家有所帮助!

我要谢谢跟着我的一个本科生(SheldonCelan),提供技术支持!

有什么问题可以P me~

QQ:42131899

Phone:15626172279

E-mail:Babybluechina@gmail.com

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

python中cock什么意思_[转载]原创脚本逐步实现Autodcock-Vina的虚拟筛选及筛选后分析...相关推荐

  1. python中读取文件编码_[转载]python中使用文件的读取编码问题

    原文链接:https://www.cnblogs.com/qianboping/p/6524420.html 今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都 ...

  2. Python中单个下划线“ _”变量的用途是什么?

    这段代码中_ after for的含义是什么? if tbh.bag:n = 0for _ in tbh.bag.atom_set():n += 1 #1楼 下划线_在Python中被视为" ...

  3. python中的定制类(转载)

    python中的定制类(转载)<?xml version="1.0" encoding="UTF-8"?> 看到类似__slots__这种形如__x ...

  4. Python中单个下划线“_”变量的目的是什么?

    在Python中,下划线_被视为" 我不关心 "或" 丢失 "变量 python解释器将最后一个表达式值存储到名为的特殊变量中_. >>> 1 ...

  5. python中的下划线_讲解

    python中,下划线 "_""_"" \_" 不管是单独作为变量名或者作为变量名的前缀或者后缀,是有特殊含义的,下面简要的来总结一下. 1 ...

  6. python中superclass是什么_深度解析并实现python中的super(转载,好文)

    大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...

  7. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  8. python中class什么意思_【转载】在python的class中的,self到底是什么?

    答案:self可以理解为一个字典变量,内部存的就是对象的数据属性.如:{'name':'zhang','age':'18'}就是这些. 注意只有数据属性,并没有创建新的类的方法. 类-----> ...

  9. [转载] python中的且语句_简单探讨python中的语句和语法

    参考链接: 在Python中解包:并行分配之外 python程序结构 python"一切皆对象",这是接触python听到最多的总结了.在python中最基层的单位应该就是对象了, ...

最新文章

  1. 一行代码都不用写,教你如何快速搭建Github博客!!!
  2. yota3墨水屏设置_国产墨水屏“手写平板”评测,10.3英寸大屏,支持无纸化办公...
  3. 一秒等于多少毫秒_使用kibana对电影一秒钟影评数据测试,详述配图演示如何使用收藏了...
  4. 第13次预习课-20180919 多进程编程
  5. 数据库-设置mysql编码
  6. spring之bean的作用域scope的值的详解
  7. zune自搭虚拟服务器离线升级,Zune 30g 固件更新至 3.3 记录
  8. 块裁剪后的矩形边界如何去掉_手持拍摄画面太抖?这节课教你如何快速稳定抖动的画面...
  9. Linux lsof命令使用详细
  10. python内置函数可以用来_Python内置函数——compile
  11. art.dialog重设弹窗大小和刷新位置
  12. sqlyog和mysql一样么_navicat和sqlyog的区别
  13. DB2数据库添加 更改字段
  14. 网站建设以后如何处理死链接页面
  15. 华为双前置摄像头_华为P40系列的前置双摄像头到底隐藏了什么?我们一起来看看...
  16. 新成员入群监控自动发送邮件效果如何实现?
  17. 07 巧算指数温度--参考即可不用算
  18. Axure绘制页面框架
  19. PHP设计模式(2) -创建型模式
  20. Linux-Day2-查看,移动,复制命令使用

热门文章

  1. java - 求最大公约数和最小公倍数
  2. oracle 分割字符成数组,oracle依据分隔符将字符串分割成数组函数
  3. oracle em界面监控出来的奇怪图像_海康poe主机断电重启后不出图像,显示用户被锁定...
  4. matlab时域分析论文,基于Matlab语言的数字信号时域相关性研究与分析.doc
  5. 错误处理方法 java_JAVA常见错误处理方法 和 JVM内存结构
  6. JAVA中增强循环中用线程_在Java中以循环方式运行线程
  7. springboot 集成redis_一文详解Spring Boot 集成 Redis
  8. java执行class找不到main函数_你所不知道的HelloWorld背后的执行原理
  9. 继电器触点粘连分析_在我们日常电气维护中如何避免由于继电器触点粘连造成的设备故障...
  10. win10家庭版删除文件提示没有权限最简单的方式