AutoDock Vina 对接计算(大批量)

news2024/11/27 15:55:39

AutoDock Vina 1.2.0 对接计算(大批量)

在这里插入图片描述

AutoDockVina 1.2.0 的示例应用:A) 对接多个配体 (PDB 5x72);B) 使用 AutoDock4 (PDB 4ykq) 的水合对接方案与水分子对接;C)在锌存在的情况下使用 AutoDock4Zn 力场 (PDB 1s63); D) 柔性大环化合物。

1. AutoDock Vina 1.2.0 简介

AutoDock Vina 1.2.0 可以说是速度最快、使用最广泛的分子对接开源程序之一,是 AutoDock Vina 的升级版本。以下是 AutoDock Vina 1.2.0 的一些主要特点和功能:

  • 多配体对接 (Simultaneous Multiple Ligand Docking)
    Vina 现在能够同时对接多个配体。 这种功能可能会在基于片段的药物设计中得到应用,其中结合相同靶标的小分子可以生长或组合成具有潜在更好亲和力的更大化合物。

  • 水合对接 (Hydrated Docking)
    水合对接能够直接模拟配体-受体和水分子的相互作用。该方法基于与球形水分子显式水合的配体对接,可用于预测单个水分子的位置和作用(即桥接或置换),并总体上改进配体构象预测。

  • AutoDock4_Zn
    AutoDock4_Zn是基于AD4的一种模拟锌离子配体的专用力场。基于使用假原子来描述复合在蛋白质中的锌离子的最佳四面体配位几何形状,以及改进电势的定义来描述其与配体中的配位元素(即氮、氧和硫)。该方法能够重现 AD4的对接性能,结果表明配体的晶体构象和最佳锌配位几何形状具有良好重叠。

  • 大环构象采样 (Macrocycle Conformational Sampling)
    大环化合物的对接是一项具有挑战性的任务,因为通过对导致不同构象的相关扭转变化进行建模来对环柔性进行采样很困难。AD4 有一个专门的协议来对接大环化合物,同时对其灵活性进行动态建模。 环结构中的一个键被破坏,形成大环的开放形式,从而进行独立探索扭转自由度。 在对接过程中,施加线性电势以恢复键合,从而形成闭合环形式。因此,在适应结合口袋的同时对大环构象进行采样,但代价是由于添加了额外的可旋转键而增加了搜索复杂性。

  • Python API
    利用 Python 语言的流行度和实用性, AutoDock Vina1.2.0 版本中添加了Python API。为了生成尽可能符合 pythonic的 Python 接口,Vina 代码被重构为Python库。其大多数功能是通过直接绑定到现有的 C++ 代码来实现,或者通过附加函数来简化对 Python 环境的访问。提供的Python API具有以下功能:

    • 创建 AutoDock Vina 引擎的实例(评分函数选择、CPU 内核和随机种子)
    • 读/写一个或多个PDBQT文件
    • 计算Vina 亲和力
    • 读/写 Vina 亲和力并读取 AutoDock 亲和力
    • 随机化输入配体的方向和位置(randomize_only)
    • 评估当前一个或多个姿势的能量(score_only)
    • 执行局部优化(local_only)
    • 设置蒙特卡罗全局搜索参数(详尽性、输出位姿数量、最大评估等…)

因此,基本的 Vina 计算可以配置并执行如下:

#!/usr/bin/env python
# Simple example with Vina Python bindings
from vina import Vina
v=Vina()

v.set_receptor("protein.pdbgt")ii 
v.set_ligand_from_file("ligand.pdbqt")

v.compute_vina_maps([0.0.0.][303030])
v.dock(exhaustiveness=32)

v.write_poses("docking_results.pdbqt")

2. AutoDock Vina 1.2.0 安装

2.1 下载

根据自己的硬件环境,按需下载,官方下载网址。
在这里插入图片描述

2.2 Linux 安装

鉴于虚拟筛选任务需要进行大规模或超大规模的分子对接计算任务,最合适的选择是在Linux服务器上安装Vina。以下是安装、测试以及设置环境变量的步骤。
1. 安装

tar xzvf autodock_vina_1_1_2_linux_x86.tgz

2. 测试

./autodock_vina_1_1_2_linux_x86/bin/vina --help

输出help信息如下⬇

Input:
 --receptor arg rigid part of the receptor (PDBQT)
 --flex arg flexible side chains, if any (PDBQT)
 --ligand arg ligand (PDBQT)

Search space (required):
 --center_x arg X coordinate of the center
 --center_y arg Y coordinate of the center
 --center_z arg Z coordinate of the center
 --size_x arg size in the X dimension (Angstroms)
 --size_y arg size in the Y dimension (Angstroms)
 --size_z arg size in the Z dimension (Angstroms)

Output (optional):
 --out arg output models (PDBQT), the default is chosen based on the ligand file name
 --log arg optionally, write log file

Misc (optional):
 --cpu arg the number of CPUs to use (the default is to try to detect the number of CPUs or, failing that, use 1)
 --seed arg explicit random seed
 --exhaustiveness arg (=8) exhaustiveness of the global search (roughly proportional to time): 1+
 --num_modes arg (=9) maximum number of binding modes to generate
 --energy_range arg (=3) maximum energy difference between the best binding mode and the worst one displayed (kcal/mol)

Configuration file (optional):
 --config arg the above options can be put here

Information (optional):
 --help display usage summary
 --help_advanced display usage summary with advanced options
 --version display program version

3. 添加至环境变量
为了简化和方便使用vina,可以将其添加至环境变量。编辑~/.bashrc~/.bash_profile等配置文件,然后添加vina的安装路径到环境变量。

#修改路径为vina的安装路径,最后将其写入.basrch文件中
export PATH=/home/.../autodock_vina_1_1_2_linux_x86/bin/:$PATH

注:前期的文件处理和后续的可视化分析可能会用到其他程序,建议安装ADFR,并将其也加入环境变量中。

3. 对接前受体配体处理

此部分需要用到ADFR,请自行下载安装后并将其加入至环境变量中。以下示例假设你位于包含受体receptor.pdbqt 和一组名为ligand_01.mol2、ligand_02.mol2 等的配体的目录中。

3.1 受体处理(PDB转为PDBQT格式)

在将受体的PDB格式转为PDBQT格式前,请务必确认受体是否质子化(从RCSB数据库中直接下载的结构缺乏质子化步骤)、是否有杂原子(溶剂、离子、辅因子和vina不支持计算的分子)、侧链缺失loop缺失结合位点的突变(病理性突变or其他)、水分子的保留与否等情况是否被一一考虑。我自己常用Schrödinger的Maestro中的Protein Prepare Wizard做蛋白的常态化处理,可以一次性解决质子化、侧链缺失、loop缺失、能量最小化等问题。
该脚本假定vinaADFR已经在PATH环境变量中(参考2.2.3)。否则,请进行相应修改。

#! /bin/bash
prepare_receptor -r receptor.pdb -o receptor.pdbqt
#-r是输入的受体PDB格式文件
#-o是输出的受体PDBQT格式文件

3.2 配体处理(MOL2转为PDBQT格式)

还是那句老话,在转格式之前务必检查分子结构是否正确且检查质子化状态,是否是3D结构,否则需要2D转3D(参考Schrödinger中Ligprep小分子三维结构生成详解)。强烈建议不要使用 PDB 格式的小分子,因为它不包含有关键连接的信息。
目前,ADFR中的prepare_ligand可以将MOL2格式转换为PDBQT格式,通过for循环将所有小分子的格式批量转换为PDBQT格式。
该脚本假定vinaADFR已经在PATH环境变量中(参考2.2.3)。否则,请进行相应修改。

#! /bin/bash

for mol2 in `ls ./*.mol2`
do 
	prepare_ligand -l ${mol2}
done

3.3 对接口袋参数生成

创建一个配置文件conf.txt,如下所示⬇

receptor = receptor.pdbqt

center_x = 2
center_y = 6
center_z = -7

size_x = 25
size_y = 25
size_z = 25

num_modes = 9

我自己通常通过PyMol插件GetBox-PyMOL-Plugin来生成口袋参数。在PyMol中安装GetBox-PyMOL-Plugin后,可以通过选中配体分子或指定的氨基酸来生成结合位点坐标。该插件不仅能够获取上述的vina 对接口袋参数,同时还能生成LeDock, AutoDock所需的对接口袋参数,对于需要多款分子对接软件交叉验证而言十分方便。

4. 大规模虚拟筛选

以下示例假设你位于包含受体receptor.pdbqt 和一组名为ligand_01.pdbqt、ligand_02.pdbqt 等的配体的目录(/home/…/vina_dock/)中。该脚本run_vina.sh假定 vina 已经在PATH环境变量中(参考2.2.3)。否则,请进行相应修改。

#! /bin/bash

cd /home/.../vina_dock/
for pdbqt in `ls ./*.pdbqt`
do
	vina --config conf.txt --ligand ${pdbqt}
done

最终将产生ligand_01_out.pdbqt、ligand_02_out.pdbqt的对接后结果文件。

5. 结果处理

5.1 提取对接打分

对接完成后我们将对ligand_01_out.pdbqt、ligand_02_out.pdbqt文件中的对接打分提取进行过滤筛选。以下脚本可以提取每个小分子排名第一的对接打分。

#! /bin/bash

for i in `ls *_out.pdbqt`
do 
name=`basename $i _out.pdbqt`
grep "REMARK VINA RESULT" -m 1 $i|awk -v id="$name" '{print id " " $4}'>>vina_score.txt
done

脚本功能:将每个小分子排名第一的对接打分保存在vina_score.txt文件中。

vina_score.txt的结果如下⬇

ligand_01 -10.267
ligand_02 -10.146

5.2 对接打分排序

按照vina_score.txt第二列打分值的升序排列,使用shell中的sort命令即可完成,也可将排序后的结果保存至vina_score_sort.txt文件中。

#结果排序
sort -k2,2n vina_score.txt
#保存排序后的结果
sort -k2,2n vina_score.txt >vina_score_sort.txt

5.3 提取小于一定值的打分结果

在一些有阳性或者阴性分子的打分结果作为对照的情况下,以他们的打分为阈值,我们可以通过过滤vina_score_sort.txt来获得更优分子的结果。

awk '$2 < -8' vina_score_sort.txt

5.4 对接后的构象拆分

以ligand_01_out.pdbqt为例,ligand_01_out.pdbqt包含了多个对接后的构象,他们按照打分的大小依次分布,通过使用vina的自带程序vina_split完成对对接后构象的拆分,以便后续的结果分析。该脚本假定 vina 已经在PATH环境变量中(参考2.1.3)。否则,请进行相应修改。

vina_split --input ligand_01_out.pdbqt --ligand ligand_01_split

将会获得拆分的单个构象:ligand_01_split1.pdbqt ligand_01_split3.pdbqt ligand_01_split5.pdbqt ligand_01_split7.pdbqt ligand_01_split9.pdbqt
ligand_01_split2.pdbqt ligand_01_split4.pdbqt ligand_01_split6.pdbqt ligand_01_split8.pdbqt

5.5 可视化分析

vina对接后的构象可以直接在MGLTools中的PMV中导入展示可视化,但对于我们更热衷于使用PyMol进行可视化分析的人来说,pdbqt格式无法在PyMol中直接加载展示,需要将其转换格式为MOL2、SDF等格式。格式转换可以直接调用ADFR中的babel

babel -ipdbqt ligand_01_split1.pdbqt -osdf ligand_01_split1.sdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGLM2 源码解析:`ChatGLMModel`

# 完整的 GLM 模型&#xff0c;包括嵌入层、编码器、输出层 class ChatGLMModel(ChatGLMPreTrainedModel):def __init__(self, config: ChatGLMConfig, deviceNone, empty_initTrue):super().__init__(config)# 如果设置了empty_init&#xff0c;创建任何 PyTorch 模块时&#…

【软件测试】单元测试、集成测试、系统测试有什么区别?

单元测试、集成测试、系统测试有什么区别 1、粒度不同 集成测试bai粒度居中&#xff0c;单元测试粒度最小&#xff0c;系统du测试粒度最大。 2、测试方式不同 集成测试一般由开发zhi小组采用白盒加黑盒的方式来测试&#xff0c;单元测试一般由开发小组采用白盒方式来测试&a…

第六章:中华民族的抗日战争

1.日本发动灭亡中国的侵略斗争 关键字&#xff1a; 中国抗日战争的起点与全民族抗战阶段 2.中国人民奋起抗击日本侵略者 关键字&#xff1a; 1 国共第二次统一战线初步建立的标志&#xff1a;国民党五届三中全会 2 扭转时局的枢纽&#xff0c;国内和平初步实现&#xff1a;…

3.msfconle

目录 1 进入msfconsole 2 连接postgresql数据库 3 msfconsole基本用法 4 更新msf 5 搜索脚本 search 6 查看脚本信息 info 7 设置参数 8 重新设置参数与取消参数 9 退出当前模块 back 10 查看域名基本信息 dig 11 查看域名的详细信息 whois 1 进入msfco…

k8s部署redis 3主3从

k8s部署redis6节点&#xff0c;组成3主3从集群模式 一般来说&#xff0c;redis部署有三种模式。 单实例模式&#xff0c;一般用于测试环境。 哨兵模式 集群模式后两者用于生产部署 哨兵模式 在redis3.0以前&#xff0c;要实现集群一般是借助哨兵sentinel工具来监控master节点…

BeanUtils.copyProperties:曾经是我的女神,现在是我的毒药。

前言 BeanUtils.copyProperties十有八九是你这些年工作中用的很多的其中一个&#xff0c;不管是Apache的还是Spring的。 网上的解释浩如烟海&#xff0c;我这边用一个超简单的例子直观展示给你看。 以后就记住了&#xff0c;能不用就不用。 正文 1、网上的解释 我收纳了几个网…

HDFS 架构剖析

目录 一、HDFS 架构整体概述 二、HDFS 集群角色介绍 2.1 整体概述 2.2 主角色&#xff1a;namenode 2.3 从角色&#xff1a;datanode 2.4 主角色辅助角色&#xff1a; secondarynamenode 三、HDFS 重要特性 3.1 主从架构 3.2 分块存储机制 3.3 副本机制 3.4 …

基于React实现:弹窗组件与Promise的有机结合

背景 弹窗在现代应用中是最为常见的一种展示信息的形式&#xff0c;二次确认弹窗是其中最为经典的一种。当我们在React&#xff0c;Vue这种数据驱动视图的前端框架中渲染弹窗基本是固定的使用形式。 使用方式&#xff1a;创建新的弹窗组件&#xff0c;在需要弹窗的地方引用并…

百叶帘系统内置于玻璃内,分为手动和电动两种控制方式

百叶帘系统是一种在餐厅包厢隔断墙中常见的控制窗帘或遮光帘的方式。这种系统通常分为手动和电动两种控制方式&#xff0c;具体选择取决于您的需求和预算。 1. 手动控制&#xff1a;手动控制是传统的方式&#xff0c;通过手动操作绳子或杆来打开或关闭百叶帘。这是一种经济实惠…

力扣刷题49 字母 异位词分组

目录 题目描述代码实现基本实现优化代码 基础知识回溯集合 参考 题目描述 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”…

19|返璞归真:王维佛系建议,万事不如吃好睡好

好诗相伴&#xff0c;千金不换。你好&#xff0c;我是天博。 今天我们的主题仍然是“见自己”。其实&#xff0c;诗词里并不是只有诗情画意的春花秋月&#xff0c;也充满了实实在在的人间烟火。这些现实的生活对我们平常人来说&#xff0c;往往比春花秋月更有借鉴意义。我们今…

基于Java+SpringBoot+Vue前后端分离在线考试系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

蝶形运算法

蝶形运算法是一种基于FFT&#xff08;Fast Fourier Transform&#xff09;算法的计算方法&#xff0c;其基本思想是将长度为N的DFT分解成若干个长度为N/2的DFT计算&#xff0c;并通过不断的合并操作得到最终的结果。该算法也称为“蝴蝶算法”&#xff0c;因为它的计算过程中需要…

未加载Qt6Core.pdb

编译代码发现未加载.pdb。 问题是Qt6的bin目录下也没有.pdb文件啊&#xff1f; 有两种方法&#xff0c;一是把Qt路径放到环境变量下&#xff0c;这样系统就能找到Qt6需要的依赖项。 二是在生成目录下找到编译好的.exe文件&#xff0c;然后调用windeployqt.exe为其生成依赖项&…

通用策略06丨横截面因子在期货中的应用(2)

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 大家好&#xff0c;今天为大家带来2023年度通用系列的收官之作——再议横截面因子。 在通用05策略中&#xff0c;我们以一种很简单的框架和复现方式&#xff0c;为大家展示了横截面因子在期货中的运用展…

5. 本地方法接口和本地方法栈

5.1. 什么是本地方法&#xff1f; 简单地讲&#xff0c;一个Native Method是一个Java调用非Java代码的接囗。一个Native Method是这样一个Java方法&#xff1a;该方法的实现由非Java语言实现&#xff0c;比如C。这个特征并非Java所特有&#xff0c;很多其它的编程语言都有这一…

云贝餐饮连锁独立版 v2.7.9+公众号+小程序端+全插件(免授权前端线传)安装教程

云贝餐饮连锁版主要基于目前比较流行小程序生态下的自助点单系统&#xff0c;一款非常不错的餐饮外卖小程序。播播资源测试云贝餐饮连锁独立版 v2.7.9该版本与上一版一样永久授权版&#xff0c;增加了小程序前端线传功能&#xff08;通过其他第三方上传&#xff09;&#xff0c…

jdk17下netty导致堆内存疯涨原因排查 | 京东云技术团队

背景&#xff1a; 介绍 天网风控灵玑系统是基于内存计算实现的高吞吐低延迟在线计算服务&#xff0c;提供滑动或滚动窗口内的count、distinctCout、max、min、avg、sum、std及区间分布类的在线统计计算服务。客户端和服务端底层通过netty直接进行tcp通信&#xff0c;且服务端…

JS判断对象是否发生变化,常用于监听页面表单是否修改并给出保存提示

本文主要封装方法&#xff0c;实现用户离开表单编辑页面时弹出提示框&#xff0c;若表单数据发生变化&#xff0c;则提示用户是否保存当前页面的信息&#xff0c;如图&#xff1a; 封装方法&#xff1a; /*** 比较俩个对象之间的差异&#xff0c;项目中多处用到监听表单数据是…

配电室能耗数据采集系统

随着社会的快速发展&#xff0c;能源消耗逐年增加&#xff0c;能源问题已成为制约我国经济社会发展的瓶颈。在此背景下&#xff0c;节能减排、绿色发展成为国家战略&#xff0c;而配电室作为电力系统的重要组成部分&#xff0c;其能耗管理对整个电力系统的能效有着举足轻重的影…