186072
当前位置: 首页   >  组内活动   >  linux系统(ubuntu)使用Audock_vina进行小分子化合物的虚拟筛选
linux系统(ubuntu)使用Audock_vina进行小分子化合物的虚拟筛选
发布时间:2022-09-29

一、软件安装

  1. 安装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
  1. 安装autudock和autodock vina #安装教程见开头
  2. 安装openbabel #安装教程见开头
  3. windows下安装pymol

二、准备文件

  1. 准备受体文件 #可在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:为蛋白加氢
  1. 准备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
  1. 准备配体文件。

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
  1. 开始对接

最好建立一个后台终端,这样即使与服务器断开连接也不会使对接进程终止。

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来指定显示的行数。

通过文件中第一列的文件名来找到相应的小分子所在的文件夹,用于后续的动力学模拟