基于Gromacs配体修饰自由能FPE计算(手动版)

news2024/10/2 10:43:12

基于Gromacs配体修饰自由能FPE计算(手动版)

本教程来自于https://github.com/huichenggong/Learning-Computation-with-Chenggong/tree/main/CC_news_008_ddG_uniFEP

我们将要使用的系统来自这篇论文

配体和受体pdb文件

A. 介绍

在本教程中,我们将使用非平衡自由能计算装置来估计与凝血酶结合的两个配体之间的相对自由能差。双重自由能差可以根据下面描述的热力学循环来表示

在这种情况下,我们感兴趣的是得到配体B和A的结合自由能之差,即 Δ G 4 − Δ G 3 ΔG_4 - ΔG_3 ΔG4ΔG3
Δ Δ G = Δ G 4 − Δ G 3 = Δ G 2 − Δ G 1 ΔΔG = ΔG_4 - ΔG_3 = ΔG_2 - ΔG_1 ΔΔG=ΔG4ΔG3=ΔG2ΔG1
这样,我们将用更可行的炼金术配体变形从状态A到B。这种炼金术修饰我们将以非平衡的方式进行。我们将使用PMX设置过渡的所需结构和拓扑。对于配体结构,处理PMX依赖于RDKIT软件包。

B. 混合结构/拓扑结构

首先,我们将为后续的模拟生成混合结构和拓扑。在本教程中,我们将考虑本出版物中描述的一组配体中的两种配体:配体1a和配体5,如图1所示。对于这两种分子,已经按照Amber力场(GAFF)的标准程序制备了拓扑结构:lig 1a和lig 5。在文件夹中,您将找到一个.pdb格式的配体结构文件和两个拓扑文件:MOL.itp and ffMOL.itp. 包含原子、键、角和二面体的信息,而原子类型(范德华参数)则被分离到ffMOL.itp文件中。为了进一步使用,可以方便地将两个原子类型的ffMOL.itp文件合并为一个(one_ff_file.py脚本将执行合并)

python one_ff_file.py -ffitp lig_1a/ffMOL.itp  lig_5/ffMOL.itp -ffitp_out ffMOL.itp

为了生成混合结构和拓扑结构,首先,我们将映射lig_1alig_5的原子,以确定哪些原子可以在分子之间发生变形。这个过程将使用pmx包。原子映射由脚本atoms_to_morph.py执行到

python atoms_to_morph.py -i1 lig_1a/lig_1a.pdb -i2 lig_5/lig_5.pdb -o pairs.dat -alignment -H2H

以上的程序将根据每个原子间距离进行对齐后的映射。此外,氢原子也会变成氢原子(而不是把所有的氢原子都变成假人)。可以随意使用映射选项,例如,标记-mcs将基于配体的最大公共子结构执行基于拓扑的映射,然而,对于当前配体对,结果保持不变。该脚本的输出是映射的分数(out_score.dat):接近于零的数字表示配对中的配体彼此相似,适合进行炼金术修饰。另一个输出是原子的实际映射:pairs.dat文件。接下来,我们将使用创建的原子映射来生成配体对的混合结构和拓扑(make_hybrid.py脚本)

python make_hybrid.py -l1 lig_1a/lig_1a.pdb -l2 lig_5/lig_5.pdb -itp1 lig_1a/MOL.itp -itp2 lig_5/MOL.itp -pairs pairs.dat -oa merged.pdb -oitp MOL.itp -ffitp ffmerged.itp -scDUMd 0.0

新创建的merged.pdb文件包含混合结构(请注意原子列表末尾的虚拟原子)。merged.pdb中的坐标基于脚本提供的第一个配体,即lig_1a。mergedB.pdb具有与merged.pdb相同的原子,但其中的坐标基于lig_5。提供的MOL.itp文件包含了为两个物理状态明确定义的所有参数的混合拓扑结构。混合结构所需的任何虚拟原子在ffmerged.itp拓扑文件中定义。让我们将此原子类型文件与先前生成的ffMOL.itp合并:

python one_ff_file.py -ffitp ffMOL.itp ffmerged.itp -ffitp_out ffMOL.itp

对于进一步的模拟,我们还将需要蛋白质的拓扑:凝血酶。我们可以通过运行标准gromacs工具PDB2GMX(我们将使用Amber99SB-Star-Uldn-Mut Force Field)来获得它:

gmx pdb2gmx -f thrombin.pdb -o thrombin_pdb2gmx.pdb -water none -ff amber99sb-star-ildn-mut

此命令将生成具有添加的氢原子的凝血酶结构。此外,还将创建三个拓扑文件,分别命名为topol_Protein_chain_*.itp,用于结构文件中的每个蛋白链。将所有所需的.itp文件组装到.top文件中是方便的。根据上面图片中的热力学循环,我们需要设置两个不同的仿真分支:1)配体在水中;2)配体结合蛋白质。对于这两种情况,我们已经准备好了.top文件:top_water.top和top_protein.top。生成所有所需的拓扑后,我们可以在下一步按照标准Gromacs仿真设置程序进行操作。

C. 平衡模拟

下面的模拟设置步骤可以很容易地添加到脚本中,以方便地实现自动化过程。然而,在本教程中,我们将明确地介绍这些步骤,以提供设置的完整详细图片。
需要四组平衡模拟:

  • 1)水中配体状态a,
  • 2)水中配体状态b,
  • 3)与蛋白质结合的配体状态a,
  • 4)与蛋白质结合的配体状态b。

因此,可以方便地分别创建4个目录

mkdir stateA_water
mkdir stateB_water
mkdir stateA_protein
mkdir stateB_protein

溶剂化模拟盒只需要为水和蛋白质中的“stateA”准备。对于“stateB”,我们将重新使用相同的模拟设置,并通过.mdp参数简单地更改状态。首先,将杂化配体结构放在一个盒子里

gmx editconf -f merged.pdb -o stateA_water/box.pdb -d 2 -bt dodecahedron

对于与蛋白质结合的配体,我们需要找到配体在凝血酶活性位点的最佳姿势。有几种方法可以做到这一点:对接,MD模拟,对准实验确定的结构。在目前的情况下,初始配体坐标是基于晶体学凝血酶结构和结合抑制剂(pdb ID: 2ZDA)构建的。这样,混合结构已经处于合适的姿态。将配体和蛋白质加在一起,生成盒子

awk '/ATOM/ {print $0}' thrombin_pdb2gmx.pdb merged.pdb > stateA_protein/thrombin_ligand.pdb
gmx editconf -f stateA_protein/thrombin_ligand.pdb -o stateA_protein/box.pdb -d 2 -bt dodecahedron

溶剂化系统(我们明确定义了添加的水的数量,以便与将在进一步步骤中使用的预先计算的轨迹兼容)

gmx solvate -cs spc216.gro -cp stateA_water/box.pdb -o stateA_water/water.pdb -p top_water.top -maxsol 3729
gmx solvate -cs spc216.gro -cp stateA_protein/box.pdb -o stateA_protein/water.pdb -p top_protein.top -maxsol 23720

要添加离子,首先下载.mdp文件(它们也将在后面的设置步骤中使用)。注意,我们将使用由jung and Cheatham重新参数化的非标准离子:NA, CL。在这种情况下,要添加的离子的数字明确地提供了与进一步使用的预先计算的轨迹的兼容性。添加的离子中和模拟盒,达到150毫米盐浓度。

gmx grompp -f mdp/emA.mdp -c stateA_water/water.pdb -o stateA_water/water.tpr -p top_water.top -maxwarn 1
gmx grompp -f mdp/emA.mdp -c stateA_protein/water.pdb -o stateA_protein/water.tpr -p top_protein.top -maxwarn 2

echo 4 | gmx genion -s stateA_water/water.tpr -nn 10 -np 10 -o stateA_water/ions.pdb -nname CL -pname NA -p top_water.top
echo 15 | gmx genion -s stateA_protein/water.tpr -nn 64 -np 65 -o stateA_protein/ions.pdb -nname CL -pname NA -p top_protein.top

现在我们准备文件开始能量最小化

gmx grompp -f mdp/emA.mdp -c stateA_water/ions.pdb -o stateA_water/em.tpr -p top_water.top -maxwarn 1
gmx grompp -f mdp/emB.mdp -c stateA_water/ions.pdb -o stateB_water/em.tpr -p top_water.top -maxwarn 1
gmx grompp -f mdp/emA.mdp -c stateA_protein/ions.pdb -o stateA_protein/em.tpr -p top_protein.top -maxwarn 1
gmx grompp -f mdp/emB.mdp -c stateA_protein/ions.pdb -o stateB_protein/em.tpr -p top_protein.top -maxwarn 1

要执行能量最小化,请进入相应的目录并运行命令(假设计算机至少有4个核心,否则请调整-ntomp选项)

gmx mdrun -s em.tpr -c emout.gro -v -ntomp 4

最后,准备平衡运行

gmx grompp -f mdp/eqA.mdp -c stateA_water/emout.gro -o stateA_water/eq.tpr -p top_water.top -maxwarn 1
gmx grompp -f mdp/eqB.mdp -c stateB_water/emout.gro -o stateB_water/eq.tpr -p top_water.top -maxwarn 1
gmx grompp -f mdp/eqA.mdp -c stateA_protein/emout.gro -o stateA_protein/eq.tpr -p top_protein.top -maxwarn 1
gmx grompp -f mdp/eqB.mdp -c stateB_protein/emout.gro -o stateB_protein/eq.tpr -p top_protein.top -maxwarn 1

每个平衡模拟都设定为生成10 ns的轨迹。这样的模拟可能需要一些时间,因此我们已经提前执行了模拟,您可以下载生成的轨迹。要进一步学习本教程,请将轨迹放置在工作文件夹的相应目录中。
平衡自己运行则如下操作:

gmx mdrun -deffnm eq -v

D. 非平衡跃迁和分析

非平衡过渡将从平衡模拟中提取的结构开始。让我们从预先计算的轨迹中提取快照

echo 0 | gmx trjconv -s stateA_water/eq.tpr -f trajectories/stateA_water/traj_comp.xtc -o stateA_water/frame.gro -b 1 -pbc mol -ur compact -sep
echo 0 | gmx trjconv -s stateB_water/eq.tpr -f trajectories/stateB_water/traj_comp.xtc -o stateB_water/frame.gro -b 1 -pbc mol -ur compact -sep
echo 0 | gmx trjconv -s stateA_protein/eq.tpr -f trajectories/stateA_protein/traj_comp.xtc -o stateA_protein/frame.gro -b 1 -pbc mol -ur compact -sep
echo 0 | gmx trjconv -s stateB_protein/eq.tpr -f trajectories/stateB_protein/traj_comp.xtc -o stateB_protein/frame.gro -b 1 -pbc mol -ur compact -sep

然后,为每个起始结构生成一个.tpr文件,用于从stateA到stateB的炼金法转换,反之亦然。由于要遍历100个起始结构,因此可以方便地将以下命令放在一个脚本中,其中循环将在帧上运行(我们将以第一帧为例)

gmx grompp -f mdp/tiA.mdp -p top_water.top -c stateA_water/frame0.gro -o stateA_water/tpr0.tpr -maxwarn 1
gmx grompp -f mdp/tiB.mdp -p top_water.top -c stateB_water/frame0.gro -o stateB_water/tpr0.tpr -maxwarn 1
gmx grompp -f mdp/tiA.mdp -p top_protein.top -c stateA_protein/frame0.gro -o stateA_protein/tpr0.tpr -maxwarn 1
gmx grompp -f mdp/tiB.mdp -p top_protein.top -c stateB_protein/frame0.gro -o stateB_protein/tpr0.tpr -maxwarn 1

接下来,对每个生成的.tpr文件执行gmx mdrun -deffnm tpr0 -v命令。最有可能的情况是,您希望提交这些作业以在集群上并行运行。或者,您可以在一台快速机器上依次运行所有这些作业(可能使用GPU)。无论哪种方式,模拟都可能需要一些时间,因此,我们已经执行了所有的运行并收集了所需的输出。为了计算配体在水中的A态和B态之间的自由能差,创建一个分析文件夹(例如分析水),导航到它并运行脚本

analyze_dhdl.py -fA ../dhdlA_water/dhdl*xvg -fB ../dhdlB_water/dhdl*xvg -t 298

为了分析与蛋白质结合的配体的过渡,首先在主工作文件夹中创建一个各自的分析目录并导航到它。然后运行分析脚本

analyze_dhdl.py -fA ../dhdlA_protein/dhdl*xvg -fB ../dhdlB_protein/dhdl*xvg -t 298

所获得的results.dat文件提供了一些具有各自误差的自由能估计。其中一个常用的估计量是基于观测得到的工作分布的最大似然,被称为BAR(Benett Acceptance Ratio)。蛋白质中配体的BAR ΔG值与水中配体的BAR ΔG值的差值正是我们感兴趣的ΔΔG值。计算值为0.26 kJ/mol,而出版物中的ITC值为0.4 kJ/mol。为了更好地感觉与计算出的自由能相关的不确定性研究不同的估计器(CGI,BAR,JARZYNSKI),错误估计,收敛量度,视觉检查工作分布及其重叠。

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

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

相关文章

使用开源实时监控系统 HertzBeat 5分钟搞定 Mysql 数据库监控告警

使用开源实时监控系统 HertzBeat 对 Mysql 数据库监控告警实践,5分钟搞定! Mysql 数据库介绍 MySQL是一个开源关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的开源关系型数据库管理系统之…

VHDL语言基础-时序逻辑电路-锁存器

目录 锁存器的设计: RS锁存器: 真值表: 电路结构图: RS锁存器的仿真波形如下: D锁存器: D锁存器的仿真波形如下: 锁存器的设计: 为了与触发器相类比,我们先介绍锁…

奇舞周刊第 481 期 数据不够实时:试试长连接?

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■数据不够实时:试试长连接?在特定场景下,我们往往需要实时的去获取最新的数据,如获取消息推送或公告、股票大盘、聊天消息、实时的日志和…

面试(九)小米C++开发一面 21.11.02

1、局部变量与全局变量的区别?可以同名嘛? 首先是作用域: 局部变量只在变量声明的代码块范围内生效 全局变量在其声明后的所有位置都能访问到 在局部变量与全局变量同名的情况下,全局变量会被屏蔽掉,只会使用局部变量的内容 2、extern 当在a.c中想要使用b.c中的函数fu…

【Mac OS】JDK 多版本切换配置

前言 由于不同的项目可能需要使用的 JDK 版本不一样,所以在系统中配置多个 JDK 版本,并且能随时切换,是一个必要的配置。 查看已安装的 JDK 版本 /usr/libexec/java_home -V框框1是执行的命令 框框2是当前系统下所有的 JDK 版本 框框3是当…

1.7 Web学生管理系统

1.定义通讯协议基于前面介绍过的 FLask Web 网站 与 urlib 的访问网站的方法,设计一个综合应用实例。它是一个基于 Web 的学生记录管理程序。学生的记录包括 id(学号) 、name(姓名) 、grade(成绩),服务器的作用是建立与维护一个Sqllite 的学生数据库 stu…

单目相机、双目相机和RGB-D相机学习笔记(一些视频和博文网址)

目录1. 单目相机1.1 摄像头原理1.2 单目相机的标定2 双目相机2.1 双目相机定位原理2.2 双目相机的缺陷3 RGB-D相机3.1 深度相机结构光原理3.2 RGB-D相机的应用1. 单目相机 1.1 摄像头原理 视频网址:【全网最详细】摄像头原理分析(约25分钟课程&#xf…

RPC框架设计的安全性考量

RPC里面该如何提升单机资源的利用率,你要记住的关键点就一个,那就是“异步化”。调用方利用异步化机制实现并行调用多个服务,以缩短整个调用时间;而服务提供方则可以利用异步化把业务逻辑放到自定义线程池里面去执行,以…

springboot 注解

上一篇:初识springboot接收参数常用注解RequestBody 常用于POST表单提交参数接收RequestMapping("/test") public String test(RequestBody String data){return data; }PathVariable 获取路径上的参数:/test/{id} RequestMapping("/test…

开源流程引擎Camunda

开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用、SpringBooot应用中,也可以独立运行,其支持BPMN&a…

ThingsBoard-规则引擎介绍

1、什么是规则引擎? 规则引擎是一个易于使用的框架,用于构建基于事件的工作流。有3个主要组成部分: 消息- 任何传入事件。它可以是来自设备的传入数据、设备生命周期事件、REST API 事件、RPC 请求等。规则节点- 对传入消息执行的功能。有许多不同的节点类型可以过滤、转换…

微信 API 中调用客服消息接口提示错误返回限制

错误的信息如下:errcode45015, errmsgresponse out of time limit or subscription is canceled rid: 5f8fd8b7-0f8aa1a9-4b6215a5微信的文档看着这微信不清不楚的文档:微信公众平台在这个文档界面中,有句话:这句话,我…

【信息学CSP-J近16年历年真题64题】真题练习与解析 第13题之标题统计

标题统计 描述 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。 输入 输入文件只有一行,一个字符串 s。 输出 输出文件只有一行,包含一个整…

原型、原型链、__proto__与prototype的区别、继承

一.什么是原型与原型链 根据MDN官方解释: JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象[[Prototype]] ,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类…

Kafka第二章:生产者案例

系列文章目录 Kafka第一章:环境搭建 Kafka第二章:生产者案例 文章目录系列文章目录前言一、创建项目1.创建包2.添加依赖二、编写代码1.普通异步发送2.同步发送三.生产者发送消息的分区策略1.指定分区2.自定义分区总结前言 上次完成了Kafka的环境搭建&a…

RabbitMQ-Exchanges交换机

一、介绍 RabbitMQ消息传递模型的核心思想是:生产者生产的消息从不会直接发送到队列。实际上,通常生产者甚至不知道这些消息传递到了哪些队列中。相反,生产者只能将消息发送到交换机,交换机工作的内容非常简单,一方…

七、Java框架之MyBatisPlus

黑马课程 文章目录1. MyBatisPlus入门1.1 MyBatisPlus入门案例步骤1:创建spring boot工程步骤2:配置application.yml步骤3:创建数据库表(重点)步骤4:编写dao层步骤5:测试1.2 标准数据层开发标准…

CSDN每日一练:一维数组的最大子数组和

题目名称&#xff1a;一维数组的最大子数组和 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述 下面是一个一维数组的 “最大子数组的和” 的动态规划的解法 # include <iostream> # include <stdio.h> # include <string.h>int MaxSum(int* a…

多传感器融合定位十五-多传感器时空标定(综述)

多传感器融合定位十五-多传感器时空标定1. 多传感器标定简介1.1 标定内容及方法1.2 讲解思路2. 内参标定2.1 雷达内参标定2.2 IMU内参标定2.3 编码器内参标定2.4 相机内参标定3. 外参标定3.1 雷达和相机外参标定3.2 多雷达外参标定3.3 手眼标定3.4 融合中标定3.5 总结4. 时间标…

基于live555源码的rtsp服务器

下载live555源码 http://www.live555.com/liveMedia/public/ 在Linux系统的自定义目录下输入&#xff0c;下载源码&#xff1a; wget http://www.live555.com/liveMedia/public/live.2023.01.19.tar.gz解压源码&#xff1a; tar -xvf live.2023.01.19.tar.gz当前目录下运行&…