linux系统(ubuntu)使用Audock_vina进行小分子化合物的虚拟筛选
发布时间:2022-09-29
一、软件安装
- 安装mgltools
ctrl+alt+T打开终端,cd到压缩包所在的目录,执行
tar mgltools_x86_64Linux2_1.5.6.tar.gz
cd mgltools_x86_64Linux2_1.5.6 #可以先重命名再cd(我的已经重命名为 mgltools)
sudo bash install.sh
#修改bashrc。安装完软件后会提示你需要将哪些内容添加到bashrc文件里,这里只展示我自己的。
vi ~/.bashrc
alias pmv='/home/lizhen/mgltools/bin/pmv'
alias adt='/home/lizhen/mgltools/bin/adt'
alias vision='/home/lizhen/mgltools/bin/vision'
alias pythonsh='/home/lizhen/mgltools/bin/pythonsh'
source ~/.bashrc
- 安装autudock和autodock vina #安装教程见开头
- 安装openbabel #安装教程见开头
- windows下安装pymol。
二、准备文件
- 准备受体文件 #可在windows下完成也可在linux下完成,这里只展示linux下完成的步骤。在准备之前,需要先修改两个py文件。参考官方修改方法
vi /home/lizhen/mgltools/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_receptor4.py
#将第一行 #!/usr/bin/env python 修改为
#!/usr/bin/env /home/lizhen/mgltools/bin/pythonsh
vi /home/lizhen/mgltools/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_ligand4.py
#将第一行 #!/usr/bin/env python 修改为
#!/usr/bin/env /home/lizhen/mgltools/bin/pythonsh
开始准备 #这里以6LU7为例,提前在windows下将其中的蛋白链单独保存出来命名为6LU7.pdb,可使用DS软件或pymol完成。
mkdir 6LU7
cd 6LU7 #将6LU7.pdb文件放在这个文件夹下。
/home/lizhen/mgltools/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_receptor4.py -r 6LU7.pdb -o 6LU7.pdbqt -A hydrogens # -r:指定输入文件;-o:要输出的文件名;-A:为蛋白加氢
- 准备arg文件 #在对接时用于指定对接的区域,以及各项参数,设置的方法可参考文章开头的第(1)、(5)、(6)个链接。里面有详细的方法介绍,主要是设置盒子的中心和大小。需要在windows下完成,这里展示一下我设置的参数,文件名为conf.arg,但此处是我课题用到的参数,具体的数值需要根据自己的蛋白设置,也可以使用我的参数,但可能会没有对接结果。
若不知道结合口袋的位置,可参考文章开头第二个链接。
receptor = 5TX51.pdbqt
ligand = in-trials.pdbqt
center_x = 22.526
center_y = -3.992
center_z = 56.023
size_x = 28
size_y = 28
size_z = 22
cpu = 112 #option
exhaustiveness = 16
num_modes = 10
energy_range = 4
- 准备配体文件。
从ZINC 数据库下载自己需要的小分子数据集,这里以fda为例,下载的文件格式为mol2。并将下载的文件放在6LU7文件夹下。
#使用babel软件将下载mol2文件拆分成单个小分子文件。
/home/lizhen/openbabel/build/bin/obabel -i mol2 fda.mol2 -o mol2 -O fda.mol2 -m #-i:指定输入的文件格式以及文件名。-o:指定输出的文件格式。-O:指定输出的文件名,在输出的时候会自动的添加一个数字作为区分。-m:结束
#将拆分的mol2文件分别放在一个文件夹下,拆分成了几个就创建几个文件夹。
mkdir {1..2106}
for i in {1..2106};do mv ./fda$i.mol2 ./$i;done
#将所有文件夹下拆分的mol2文件统一命名为fda.mol2,方便之后的使用。
for i in {1..2106};do cd ./$i;mv fda*.mol2 ./fda.mol2;cd ../;done
#将受体文件在每个文件夹下复制一份。
for i in {1..2106};do cd ./$i;cp /home/lizhen/6LU7/6LU7.pdbqt .;cd ../;done
#使用autodock将每个文件夹下的mol2文件转变为pdbqt文件
for i in {1..2106};do cd ./$i;/home/lizhen/mgltools/MGLToolsPckgs/AutoDockTools/Utilities24/prepare_ligand4.py -l fda.mol2 -o fda.pdbqt;echo $i;cd ../;done
- 开始对接
最好建立一个后台终端,这样即使与服务器断开连接也不会使对接进程终止。
screen -R 6LU7
#若没有安装screen,可根据提示进行安装
for i in {1..2106};do cd ./$i;/home/lizhen/autodock_vina/bin/vina --config /home/lizhen/6LU7/conf.arg --log fda.log;echo $i;cd ../;done
#找到autodockvina安装目录下的bin/vina软件
#--config:指定arg文件;--log:指定输出文件
#ctrl+A+D可保存并退出终端
#对接完成以后,提取log文件
cd 6LU7 #进入最开始创建的6LU7文件夹
mkdir log_file
for i in {1..2106};do cd ,$i;mv fda.log fda_$i.log;cp fda_$i.log /home/lizhen/6LU7/log_file;cd ../;done
#建一个py脚本用于提取每个log文件里的亲和力数据
cd log_file
vi affinity.py #第一行代码要链接到python的安装目录 可使用 which python来查看
#!/usr/bin/ python
import glob
log_file = glob.glob('*.log')
print(log_file)
file1=open("affinity.out",'w')
for i in log_file:
file2 = open(i,'r')
data = file2.readlines()
file2.close()
for j in data:
if len(j.split())>=2 and j.split()[0]=="1":
affinity=i+" "+j.split()[1]
print(affinity)
file1.writelines(affinity+'\n')
file1.close()
#开始批量提取
python affinity.py
#提取好后可进行排序来查看能量最低的结果。
sort -k 2 -n affinity.out >> affinity_sort.out # -k 2:按照第二列进行排序;-n:将指定的列作为数值进行排序,默认是正序,可加-r进行倒序;>>:将排序的结果输出到指定的文件里
head affinity_sort.out #显示指定文件的前10行(默认),可加-n来指定显示的行数。
通过文件中第一列的文件名来找到相应的小分子所在的文件夹,用于后续的动力学模拟