CADD之分子对接三:利用autodockvina套件进行批量对接——virtual drug screening

目录

1.准备需要的对接文件
靶蛋白的pdbqt文件
小分子库(.pdbqt)格式
对接盒子及信息文件config.txt
2.需要用到的工具
linux系统(服务器,虚拟机或windows上的WLS均可)
autodocktools
openbabel
autodock vina
3.对接环境配置
4.对接过程
1.准备需要的对接文件

这部分参照我前面的博客,详细展开,会很冗长:
对接文件准备
注:蛋白质的处理方法与博客中一致,对于小分子库的批量处理及config.txt文件的参数上有差异,请参照这篇博客的内容

3.对接环境配置
直接使用windows上WLS的unbuntu系统

打开Windows的Microsoft Store在其中搜索ubuntu,直接安装即可,我安装的是18.04.5版本
可按照下面的这篇博客操作:
WLS的安装

在linux系统中安装anaconda3

为保险起见,建议后面所有的操作在root权限下完成,开始由于没有使用root权限,导致后面踩了一天的坑,西湖的水我的泪在这里插入图片描述这个到后面具体的位置会讲到。
anaconda3的安装很容易:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda-1.5.0-Linux-x86_64.sh
sh Anaconda-1.5.0-Linux-x86_64.sh
# 后面一直yes即可
# 配置一下环境变量
vim ~/.bashrc
# 最后一行输入
export PATH="/你的anaconda3安装的绝对路径/anaconda3/bin:$PATH"
# 保存退出
source ~/.bashrc

在linux中安装autodockTools

这部分请使用root权限来搞,在base环境下进行,不然后面会遇到坑,numpy无法调用,MolKit也无法调用(不说了,全是泪)。
首先在官网上下载安装包:
官网下载地址
此处选择mgltools_x86_64Linux2_1.5.7.tar.gz (Linux 64 tarball installer 108Mb)
安装过程:

# 解压安装包:
tar -zxvf mgltools_x86_64Linux2_1.5.7.tar.gz
# 进入mgltools_x86_64Linux2_1.5.7,运行安装脚本
cd mgltools_x86_64Linux2_1.5.7
bash install.sh
# 安装完毕后配置环境变量
vim ~/.bashrc
# 打开后添加如下几行
export PATH=mgltools文件包的绝对路径/bin:$PATH
# 添加alias,同样在.bashrc中,新增下面4行
alias pmv='mgltools文件包的绝对路径/bin/pmv'
alias adt='mgltools文件包的绝对路径/bin/adt'
alias vision='$mgltools文件包的绝对路径/bin/vision'
alias pythonsh='mgltools文件包的绝对路径/bin/pythonsh'
# 保存退出
# 更新设置
source ~/.bashrc

安装完成后我们检查一下,确保安装成功:

# 查看python版本,mgltools包是python2编写的,因此你base环境中的python为2版本运行后续代码才不会出错
python -V
# 我的显示未python2.7.11
# 进入python,检查numpy,Molkit导入
python
>import numpy
>import MolKit
# 均未出现报错,说明安装没有问题,如果报错提示出现UCS2,建议删除,在root环境下搞

安装mgltools主要是使用其中的脚本,prepare_ligand.py和prepare_ligand4.py两个脚本可以批量处理分子库中的分子(加极性氢,电荷优化等)。mgltools中还有好多其它好用的脚本,后面的教程中会慢慢介绍。关于批量处理配体的部分我将在openbabel部分介绍。

在linux中安装openbabel
# 创建一个openbabel的环境
conda create -n openbabel python==2.7
# 激活环境
conda activate opanbabel
# 安装openbabel
conda install openbabel -c conda-forge
# 测试安装成功
obabel -V

openbabel安装成功后,接下来对小分子库进行处理,这里用到了文献上提供的格式转换器进行smiles到sdf格式的转换(自己实验了一下,感觉效果比较好),CACTUS[1]:
CACTUS格式转换器
将smiles格式转换为sdf以后,接下来结合openbabel及prepare_ligand4.py脚本来处理,将mol2格式的分子库文件拆分并转换为.pdbqt的格式(注:openbabel也可以转换pdbqt格式,但实测效果并不好,得出的结构有时会扭曲的不像样子)。

# 首先将mol2格式转换成sdf
obabel ligand.sdf -omol2 -m
# 将大文件切分为单个小文件,共2860个小分子
obabel -i mol2 ligand.mol2 -o mol2 -O ligand.mol2 -m
# 创建文件夹
mkdir {1..2860}
# 批量将配体放入文件夹下
for i in {1..2860};do mv ./ligand${i}.mol2 ./$i;done
# 为方便后面对接,文件夹内的配体名统一改为ligand.mol2
for i in {1..2860};do cd ./$i; mv ligand*.mol2 ./ligand.mol2; cd ../;done
# 批量转换mol2文件为.pdbqt文件,用prepare_ligand4.py脚本来完成
for i in {1..2860};do cd ./$i; /绝对路径/prepare_ligand.py -l ligand.mol2 -o ligand.pdbqt; echo $i; cd ../;done

在linux系统中安装autodock vina

在官网上下载vina_1.2.3_linux_x86_64版本,并编译即可
官网下载链接:
vina下载地址
官网教程链接:
vina官方教程

4.对接过程

一切准备就绪,我们进入对接过程:
把需要的建立几个文件夹,把需要的对接文件放进去:

mkdir data
cd data
mkdir input
# 随后将处理好的小分子库,蛋白质的pdbqt文件,以及config.txt文件放入到input文件夹中, 

对config.txt文件稍做改动,其中receptor要写清绝对路径,对于energy_range项根据自己的体系设置, 也可不设置。
运行如下指令进行对接:

# 运行对接指令
for i in {1..2860};do cd ./$i; vina --config 绝对路径/config.txt --out ligand.log; echo $i; cd ../;done 
# 等待运行完成,会生成2860个.log文件,分别存储2860个分子对接的结果

接下来对对接结果进行提取和分析:

# 提取.log文件,统一存放到log_file文件夹中
mkdir log_file
# 由于前面对接时每一个log文件都叫ligand_protease,在合并到一个文件夹中需要先按照序号进行重新命名
for i in {1..2860}; do cd $i; mv ligand_protease.log ligand_protease_$i.log;cp ligand_protease_$i.log/log_file文件夹的绝对路径/log_file/;cd ../;done
# 对.log文件进行备份
mkdir out_file_change_log_name
for i in {1..2860};do cp -r $i /绝对路径/out_file_change_log_name/;done

对于对接结果,我们关注的是亲和力,与蛋白质结合亲和力越强的分子可能性越大。
接下来写一个脚本,提取每个分子的结合亲和力信息:

# log_file文件夹中创建脚本
touch extract_affinity.py
# 进入编写
vim extract_affinity.py
# 脚本内容
# !/usr/bin/env python
import glob
log_file = glob.glob('*.log')

file1 = open('affinity.out','w')
for i in log_file:
	file2 = open(i,'r')
	data = file2.readlines()
	file2.close()
	for j in data:
		if j.split()[0] == 'REMARK' and j.split()[1] == 'VINA':
			if j.split()[4] == '0.000':
				affinity = i + '   ' + j.split()[3]
				file1.writelines(affinity + '\n')
			else:
				continue

file1.close()
# 退出并保存

在log_file文件夹中运行脚本即可:

python extract_affinity.py

对得到的affinity.out文件中根据能量值排序,选出合适的分子,进行进一步的MD模拟。

注:整个过程主要参考了nature protocol上的文章,及一篇简书上的教程,网络教程千千万,靠谱的凤毛麟角,这篇算保姆级的了,如果您跟着不能复现,请随时留言。此外说明一点,vina目前有GPU版本的,次教程中用到的是cpu版本,我试了一下,还是很快的,4000个左右分子,一晚上就结束了。
量很大的建议用GPU,天量对接的还可以用集群来完成,这篇博客里有记载方法,总之量体裁衣,用现有的资源,选择适合自己的。
使用GPU及集群的方法
nature protocol上的教程强烈建议读一遍,非常好,介绍了一些参数选择问题以及autodock4及vina的原理,还有一些特别的情况,有水分子参与,有金属离子存在该怎么办这类的,非常好,是以一款很有名的药——格列卫分子对接过程做例子的。_看过电影《我不是药神》的人应该对它有印象吧。

1: https://www.nature.com/articles/nprot.2016.051
2:https://www.jianshu.com/p/a6b64e9a3c4f

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值