Autodock vina对接!

Autodock vina对接!
一个非常优雅的docking结果

相信你已经准备好了两个pdbqt,如果没有可以去看我准备pdbqt的那个blog。如果你想要直接下载,请下载:

这个blog采用3NPO作为模拟蛋白,可以在这里看到!上面的pdbqt是处理好的ph=7.0的,Kaempferol就是ligand,3NPO是receptor

config file准备

pdbqt是最难准备的,config相对就容易很多。autodock 4的config file准备也很看水平,但是vina把这个过程简化了,就只要最基础的几个事情

# 受体和配体设置
# 应该你已经准备好了两个pdbqt
receptor = receptor.pdbqt
ligand = ligand.pdbqt
out = output.pdbqt             # 输出格式也是pdbqt!是包含多个对接结果的pdbqt!

# 网格中心与大小 (Grid Box)
# 这一部分要看蛋白质的状态!
center_x = -14.71807
center_y = 4.1954655
center_z = 3.4588184
size_x = 50
size_y = 50
size_z = 50

# 搜索参数
exhaustiveness = 32   # 让他稍微exhausted一点。和AI交流一下具体要多少,一般32即可!
num_modes = 20        # 输出前多少个,前20个比较常用发文章
energy_range = 3      # 

经典的几个参数配置

说白了没啥技术含量,如果非要说,其中最有技术含量的就是center和size了。普遍来说你有两种选择

  1. blind docking:直接使用protein正中间作为center,并且size的数值要大到包括整个protein再加上ligand的扭转可能的范围。对于3NPO我选择50
  2. local docking:使用你blind docking dock 出来的ligand中心,或者口袋中心,范围要包括所有纳入计算的氨基酸!!而不是ligand自身的范围!!这是不同于discovery studio中的binding pocket,那个真的是pocket,这里的size更像计算范围而非口袋范围,一般要比口袋大一大圈!

有人问如何看蛋白质中心在哪里,可以使用下面几个方法:

# 1. 如果你安装了biopython,执行这个一句话脚本,注意receptor.pdb是目标
python -c "from Bio.PDB import PDBParser; import numpy as np; coords = [a.get_coord() for a in PDBParser(QUIET=True).get_structure('p', 'receptor.pdb').get_atoms()]; print('Center:', np.mean(coords, axis=0))"

# 2. 如果你懒得安装,我们可以直接解析pdb计算
awk '/^(ATOM|HETATM)/ {x+=$7; y+=$8; z+=$9; n++} END {if(n>0) printf "Center X, Y, Z: %.3f, %.3f, %.3f\n", x/n, y/n, z/n; else print "No atoms found."}' receptor.pdb

# 3. 如果你的电脑上有pymol,可以用命令行计算
pymol -cq -d "load receptor.pdb; print(cmd.get_position('receptor'))"

没错!你会发现其实就算是pdb上面下载的蛋白质他们中心点也不是0,0,0。经常还会差很多呢!比如这里我就是-14.71807,4.1954655,3.4588184,每个蛋白一定要自己算出来!

开始跑!

config file准备完毕,直接可以跑了。运行下面这个命令

# 1. 加载autodock大礼包环境
module restore autodock-vina

# 2. 启动 Vina 纯 CPU 引擎进行对接
vina --config config.txt --cpu 2

对接结果!

最后你就会看着它从0到100,然后得到这样的结果:

一个还行的对接,图中可以看到有至少两个对接口袋

主要我们就是看第一列affinity也就是亲和力,如果小于-7就已经是很好的结果了!越小越好~ 当然,你可能和我的结果不一样,因为我没有用提供的文件跑。

另外可以从dist from rmsd大概看出有多少个口袋,比如说图中1是0,4是22,很明显4和1不是一个口袋,他们相差了22个A,这很多!但是2和3分别是3.4和3.5应该是在一个口袋的

最后

如果你在同时对接很多pdbqt,这里有脚本可以自动化整个流程!

Read more

GroMacs 跑起来!

开始之前感谢一下Justin A. Lemkul, Ph.D.教授的GROMACS Tutorials。现在已经几乎成为新手必学行业标准了。强烈推荐可以去上他的课。这篇blog是我根据他的教程总结出来,并加上了自动化的部分,让一切更加方便! 我们会采用3NPO pdb file 和一个autodock vina对接后的pdbqt文件开始。你可以从下面下载他们,但也可以参考我之前的教程一步一步拿到自己的pdbqt flie: 3NPO3NPO.pdb143 KBdownload-circleKaempferol_dockingKaempferol_docking.pdbqt53 KBdownload-circle 一、准备pdb file 你会发现autodock vina dock之后的pdbqt里面有多个构象,他们都被MODEL分割。如下图: 所以我们处理的第一步就是分割,把这个含有多个model的变成单独的一个model。利用下面几行sh就可以轻松拿到第一个构象。当然,也可以直接用手复制粘贴出来。不过可能使用vina的vina_split会更可靠一些 vina_spl

By Blake Jia
Autodock vina の pdbqt准备

Autodock vina の pdbqt准备

这篇blog中假设你毫无autodock经验但是有最最基础linux使用经验,本blog着重描述vina的一些文件和操作流程,以避免以后自己操作的时候犯错。 我们会先从配体准备的软件选择和安装开始,然后会分别讲解ligand和receptor的准备过程。 pdbqt生成-软件的选择和安装 这里的软件指的是从sdf或者pdb文件到pdbqt文件的过程。本质上来说他们都是笛卡尔坐标系xyz的信息储存文件,都可以用文本文档直接打开。 head your_pdbqt.pdbqt 如果你打开看了,就会发现其实pdbqt比pdb多出了两列:也就是q和t。Partial Charge (Q)和Atom Type (T)。Q用于计算静电相互作用,T用于计算van derr waal力和氢键,他们正常pdb是不需要的,但是预测docking的时候非常有用。 一直以来Autodock tools或者MGL tools是比较被推荐的,也是官方标准工具,也是图形化工具。另外也有PyRx等别的第三方pdbqt生成器的库,但是兼容性相对差一点点(生成QT就说白了是很简单的活儿,但是既然有官方的为啥不

By Blake Jia
Autodock vina自动化运行

Autodock vina自动化运行

autodock vina 现在还是比较常用了,虽说config file之类的还是比较直观易懂的,但是一般来说我们做一个东西都要同时dock很多个ligand。下面就是我常用的autodock vina自动化运行脚本。 * 自动化批量对接(Batch Docking): 自动扫描指定目录下的所有配体文件(.pdbqt),并逐个与受体(Receptor)进行对接。 * 智能参数记忆(State Persistence): 首次输入参数后,脚本会自动将其缓存到隐藏文件 .dockenv 中。下次运行时直接回车即可跳过输入,极大提升复用效率。 * 动态生成配置与日志(Auto-Logging): 自动为每个配体生成专属的 config.txt 配置文件,并实时保存带有时间戳的详细运行日志(.out)。 * 重名防覆盖保护(File Protection): 如果输出目录已存在同名对接结果,脚本会自动给新文件加上序号(如 _1, _2),防止实验数据被意外覆盖。 用户输入内容: 序号允许用户输入的内容 (Input)默认值 (Default)说明 (Notes)1

By Blake Jia