Gromacs软件进行蛋白-配体体系MD模拟

1、进行能量最小化

下载官方提供的参数文件:em.mdp ,或者直接复制这里:

; LINES STARTING WITH ';' ARE COMMENTS
title		    = Minimization	; Title of run; Parameters describing what to do, when to stop and what to save
integrator	    = steep		; Algorithm (steep = steepest descent minimization)
emtol		    = 1000.0  	; Stop minimization when the maximum force < 10.0 kJ/mol
emstep          = 0.01      ; Energy step size
nsteps		    = 50000	  	; Maximum number of (minimization) steps to perform; Parameters describing how to find the neighbors of each atom and how to calculate the interactions
nstlist		    = 1		        ; Frequency to update the neighbor list and long range forces
cutoff-scheme   = Verlet
ns_type		    = grid		    ; Method to determine neighbor list (simple, grid)
rlist		    = 1.2		    ; Cut-off for making neighbor list (short range forces)
coulombtype	    = PME		    ; Treatment of long range electrostatic interactions
rcoulomb	    = 1.2		    ; long range electrostatic cut-off
vdwtype         = cutoff
vdw-modifier    = force-switch
rvdw-switch     = 1.0
rvdw		    = 1.2		    ; long range Van der Waals cut-off
pbc             = xyz 		    ; Periodic Boundary Conditions
DispCorr        = no

 mdp文件里分3个区块,标题、模拟的步数怎么跑和原子之间相互作用力设置的有关参数。

例如模拟的步数怎么跑里的设置:能量下降的积分算法用最陡下降最小化。体系中最大能量达到1000停止最小化。每步下降能量大小是0.01以及最大的步数设置为50000。

gmx grompp -f em.mdp -c solv_ions.gro -p topol.top -o em.tpr

先编译执行文件tpr,然后调用mdrun执行能量最小化:

gmx mdrun -v -deffnm em
#-v 将详细内容输出到终端
#-deffnm em 指定输出和输入文件名都叫em

 查看输出的结果:

Steepest Descents converged to Fmax < 1000 in 143 steps
Potential Energy  = -4.9014547e+05
Maximum force     =  8.7411469e+02 on atom 27
Norm of force     =  5.6676244e+01

输出的结果上看,算法在第143步就实现体系中最大能量小于1000,然后结束最小化。这里的力是指原子在原位上受到的键作用力和非键作用力的总和。

这里的Maximum force=800 on atom 27说明体系中有最大能量是27号原子。

2、完成能量最小化后,建立一个需要限制的配体原子的信息的文件。

我的配体的gro文件是ligand.gro,在命令行输入:

gmx make_ndx -f ligand.gro -o index_ligand.ndx #进入交互界面> 0 & ! a H* #选择0的system中全部非H原子> q #退出

index_ligand.ndx文件内容入下,就是配体原子的原子数据索引:

[ System ] #整个系统的配体原子序号(索引)1    2    3    4    5    6    7    8    9   10   11   12   13   14   1516   17   18   19   20   21   22   23   24   25   26   27   28   29   3031   32   33
......
[ System_&_!H* ] #选出的要限制的非H配体原子序号(索引)1    2    3    4    5    6    7    8    9   10   11   12   14   15   1617   18   19   20   21   22   23   24

建立对选出的非H原子带有限制力信息的itp文件(拓扑文件)

gmx genrestr -f ligand.gro -n index_ligand.ndx -o posre_ligand.itp -fc 1000 1000 1000
#生产出itp拓扑文件,-fc指出限制力,对ndx里的选出的非H原子用在笛卡尔坐标中各个轴用1000的力栓住
#该命令会进入交互界面
#选出要限制的原子就是了

 在topol文件里加入导入限制力参数posre_l.itp文件的命令:

3、进行温度耦合

温度耦合就是对原先没有温度概念的系统附加上温度。对每种分子类型和它自己的恒温基团耦合是一个坏主意。Gromacs的恒温器不适合对小分子单独进行耦合

 因为gmx的温度耦合算法不稳定,少量原子组成的组别单独进行单独进行耦合,动能波动会很大,会导致体系的崩溃。例如教程里提到的,如果在nvt.mdp里设置温度耦合的组别是这样:

tc-grps = Protein JZ4 SOL CL

SOL是水,Protein是蛋白,这两的原子数目量多(超过1000),单独进行温度耦合是不会有动能波动大的问题的。但是离子Cl-和配体JZ4,体系里CL只有6个,JZ4是22个(教程中的数据),原子数目完全不是体系中蛋白和水分子在一个量级。不能单独进行温度耦合。

JZ4是配体,和蛋白挨得很近,可以将其视为一个整体进行温度耦合,离子则是苟在水分子群里,可以和所有水分子组成一个整体进行耦合。典型的tc-grps设置是:

tc-grps=Protein Non-Protein  #典型的设置

现在就是要把配体和蛋白整合为Protein,水和离子整合为Non-Protein。

首先,采用make_ndx模块将蛋白质和配体的index抽出,做为一个区块[Protein_JZ4],这个名字是默认的,输出到文件index.ndx里。这个区块的名字要记住,可以在输出的index.ndx里看到。

gmx make_ndx -f em.gro -o index.ndx
.......  #下面是选项0 System              : 33506 atoms1 Protein             :  2614 atoms
......13 JZ4                 :    22 atoms
......21 Water_and_ions      : 30870 atoms> 1 | 13 #这里选中蛋白和配体, 这里已经存在water_and_ions,就不需要再抽出index。
> q

在我的index.ndx文件里存在water_and_ions:

同时也存在蛋白和配体的组和(我的配体是分子名叫MOL,不是JZ4):

下载官方的nvt.mdp文件,或者使用下面的:

注意mdp里的这个设置,要根据自己体系的分子名进行调整:

tc-grps=Protein_JZ4 Water_and_ions  #这是这个体系的设置,修改在nvt.mdp里

nvt.mdp文件: 

title                   = Protein-ligand complex NVT equilibration 
define                  = -DPOSRES  ; position restrain the protein and ligand
; Run parameters
integrator              = md        ; leap-frog integrator
nsteps                  = 50000     ; 2 * 50000 = 100 ps
dt                      = 0.002     ; 2 fs
; Output control
nstenergy               = 500   ; save energies every 1.0 ps
nstlog                  = 500   ; update log file every 1.0 ps
nstxout-compressed      = 500   ; save coordinates every 1.0 ps
; Bond parameters
continuation            = no        ; first dynamics run
constraint_algorithm    = lincs     ; holonomic constraints 
constraints             = h-bonds   ; bonds to H are constrained 
lincs_iter              = 1         ; accuracy of LINCS
lincs_order             = 4         ; also related to accuracy
; Neighbor searching and vdW
cutoff-scheme           = Verlet
ns_type                 = grid      ; search neighboring grid cells
nstlist                 = 20        ; largely irrelevant with Verlet
rlist                   = 1.2
vdwtype                 = cutoff
vdw-modifier            = force-switch
rvdw-switch             = 1.0
rvdw                    = 1.2       ; short-range van der Waals cutoff (in nm)
; Electrostatics
coulombtype             = PME       ; Particle Mesh Ewald for long-range electrostatics
rcoulomb                = 1.2       ; short-range electrostatic cutoff (in nm)
pme_order               = 4         ; cubic interpolation
fourierspacing          = 0.16      ; grid spacing for FFT
; Temperature coupling
tcoupl                  = V-rescale                     ; modified Berendsen thermostat
tc-grps                 = Protein_JZ4 Water_and_ions    ; two coupling groups - more accurate
tau_t                   = 0.1   0.1                     ; time constant, in ps
ref_t                   = 300   300                     ; reference temperature, one for each group, in K
; Pressure coupling
pcoupl                  = no        ; no pressure coupling in NVT
; Periodic boundary conditions
pbc                     = xyz       ; 3-D PBC
; Dispersion correction is not used for proteins with the C36 additive FF
DispCorr                = no 
; Velocity generation
gen_vel                 = yes       ; assign velocities from Maxwell distribution
gen_temp                = 300       ; temperature for Maxwell distribution
gen_seed                = -1        ; generate a random seed

 运行nvt模拟:

#生成执行文件tpr:
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -n index.ndx -o nvt.tpr#-n参数指定index文件,里面是
gmx mdrun -deffnm nvt

4、进行压力耦合

下载官方的参数文件npt.mdp,注意修改里面的tc-grps参数,然后运行模拟:

gmx grompp -f npt.mdp -c nvt.gro -t nvt.cpt -r nvt.gro -p topol.top -n index.ndx -o npt.tpr
gmx mdrun -deffnm npt

5、成品模拟:

经过温度耦合和压力耦合后,体系达到预期的室温和常压条件(旧制条件),即是温度在25°C,298.15K,压强在1.01bar,101.325kPa条件。

下载官方提供的md.mpt文件,可以进行成品模拟:

注意在这个md.mpt文件里是没有限制力参数的,没有下面这段参数:

define = -DPOSRES  ; position restrain the protein and ligand

 这个参数是出现在nvt和npt模拟中,表示使用拓扑文件中的这个函数,对配体进行位置约束:

; Ligand position restraints
#ifdef POSRES   #函数名是POSRES,mdp里就是DPOSRES,前面多个D
#include "posre_jz4.itp"
#endif

另外,教程里的拓扑topol里还有水分子的位置限制参数,如下:

#ifdef POSRES_WATER
; Position restraint for each water oxygen
[ position_restraints ]
;  i funct       fcx        fcy        fcz1    1       1000       1000       1000
#endif

但是mdp文件并没有define=-DPOSRES_WATER的参数。 

运行没有约束的成品10ns模拟:

gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -n index.ndx -o md_0_10.tpr
gmx mdrun -deffnm md_0_10

 参考:

Protein-Ligand Complex (mdtutorials.com)

关于.mdp文件中的DPOSRES的问题 - 分子模拟 (Molecular Modeling) - 计算化学公社 (keinsci.com)

GROMACS中文手册:第三章 算法|Jerkwin

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

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

相关文章

golang 基础知识细节回顾

之前学习golang的速度过于快&#xff0c;部分内容有点囫囵吞枣的感觉&#xff0c;写gorm过程中有很多违反我常识的地方&#xff0c;我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大&#xff0c;之前编辑springboot的error c…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言&#xff08;Gin&#xff09;开发Web程序&#xff0c;前端太弱了&#xff0c;得好好补补课&#xff0c;完了再来更新。 1、环境准备 新建项目&#xff0c;生成 go.mod 文件&#xff1a; 出现报错&#xff1a;go: modules disabled by G…

《原则》生活和工作 - 三余书屋 3ysw.net

原则&#xff1a;生活和工作 您好&#xff0c;今天我们解读的书是《原则&#xff1a;生活和工作》。这本书和我们之前解读过的《原则&#xff1a;应对变化中的世界秩序》是同一个作者写的。那本书的主题非常宏大&#xff0c;它讨论的是世界运行的原则。而今天我们聊的《原则&a…

05 - 步骤 JSON output

简介 JSON Output 步骤用于将 Kettle 中的行流数据写出到 JSON 格式的文件或流中。它允许用户将 Kettle 中处理过的数据以 JSON 格式进行输出&#xff0c;适用于各种数据处理和交换场景。 什么是行流数据&#xff1f; preview data 中的每一个字段都是一个行流数据 使用 场…

Java | Leetcode Java题解之第62题不同路径

题目&#xff1a; 题解&#xff1a; class Solution {public int uniquePaths(int m, int n) {long ans 1;for (int x n, y 1; y < m; x, y) {ans ans * x / y;}return (int) ans;} }

C# Winform父窗体打开新的子窗体前,关闭其他子窗体

随着Winform项目越来越多&#xff0c;界面上显示的窗体越来越多&#xff0c;窗体管理变得更加繁琐。有时候我们要打开新窗体&#xff0c;然后关闭多余的其他窗体&#xff0c;这个时候如果一个一个去关闭就会变得很麻烦&#xff0c;而且可能还会出现遗漏的情况。这篇文章介绍了三…

《R语言与农业数据统计分析及建模》学习——logistic回归和poisson回归

普通线性回归通常用来描述变量y与x之间的线性关系&#xff1a; 普通线性模型的假设是&#xff1a;响应变量y是连续型变量而且&#xff0c;服从正态分布分布。但在很多现实情况y并不是正态分布&#xff0c;如&#xff1a;二值问题/多分类问题&#xff0c;计次问题等&#xff0c;…

MySQL数据库练习(7)

schooldb库——utf8字符集——utf8_general_ci排序规则 31. DDL CREATE TABLE home_menus (menuId int(11) NOT NULL COMMENT 自增ID,parentId int(11) NOT NULL DEFAULT 0 COMMENT 父ID,menuName varchar(100) NOT NULL COMMENT 菜单名称,menuUrl varchar(100) NOT NULL COM…

【竞技宝jjb.lol】LOL:MSI首日赛事前瞻

北京时间2024年5月1日,英雄联盟2024MSI季中赛将在今天正式开打,今天将进行两场入围赛的比赛,分别为FLY对阵PSG以及T1对阵EST。入围赛的战队实力差距较大,但如今各大赛区的实力越来越小,即使是外卡赛区的队伍也有爆冷的可能,下面小编就为大家带来MSI首日赛事前瞻。 FLY VS PSG …

LEETCODE 946. 验证栈序列

class Solution:def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:stack[]n0for item in pushed:stack.append(item)while(stack and stack[-1]popped[n]):stack.pop()n1return not stack

开箱子咸鱼之王H5游戏源码_内购修复优化_附带APK完美运营无bug最终版__GM总运营后台_附带安卓版本

内容目录 一、详细介绍二、效果展示2.效果图展示 三、学习资料下载 一、详细介绍 1.包括原生打包APK&#xff0c;资源全部APK本地化&#xff0c;基本上不跑服务器宽带 2.优化后端&#xff0c;基本上不再一直跑内存&#xff0c;不炸服响应快&#xff01; 3.优化前端&#xff0c…

菜鸡学习netty源码(一)——BootStrap

1.概述 对于初学者而然,写一个netty本地进行测试的Server端和Client端,我们最先接触到的类就是ServerBootstrap和Bootstrap。这两个类都有一个公共的父类就是AbstractBootstrap. 那既然 ServerBootstrap和Bootstrap都有一个公共的分类,那就证明它们两个肯定有很多公共的职…

贪心算法 Greedy Algorithm

1) 贪心例子 称之为贪心算法或贪婪算法&#xff0c;核心思想是 将寻找最优解的问题分为若干个步骤 每一步骤都采用贪心原则&#xff0c;选取当前最优解 因为没有考虑所有可能&#xff0c;局部最优的堆叠不一定让最终解最优 v2已经不会更新v3因为v3更新过了 贪心算法是一种在…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用

在数字化和智能化的浪潮中&#xff0c;GIS&#xff08;地理信息系统&#xff09;和GPT&#xff08;生成式预训练模型&#xff09;的结合正日益成为推动科研、城市规划、环境监测等领域发展的关键技术。GIS以其强大的空间数据处理、先进的空间分析工具、灵活的地图制作与可视化能…

240 基于matlab的飞行轨迹仿真程序

基于matlab的飞行轨迹仿真程序&#xff0c;多种不同的飞行轨迹&#xff0c;输出经度、纬度、高度三维轨迹&#xff0c;三个方向的飞行速度。程序已调通&#xff0c;可直接运行。 240 飞行轨迹仿真 三维轨迹 飞行速度 - 小红书 (xiaohongshu.com)

论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器

论文精读-基于FPGA的卷积神经网络和视觉Transformer通用加速器 优势&#xff1a; 1.针对CNN和Transformer提出了通用的计算映射&#xff08;共用计算单元&#xff0c;通过不同的映射指令&#xff0c;指导数据通路和并行计算&#xff09; 2.非线性与归一化加速单元&#xff0…

【開山安全笔记】WAF略知一二

在工作或面试中&#xff0c;网安从业者经常遇到关于各类安全设备的问题。然而&#xff0c;初学者对于安全设备的工作原理&#xff0c;功能和作用大都没有很深入的了解。基于此背景&#xff0c;開山安全笔记将发表关于安全设备的系列文章。 本篇主要论述防火墙的概念、原理和作…

Java项目:88 springboot104学生网上请假系统设计与实现

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本学生网上请假系统管理员&#xff0c;教师&#xff0c;学生。 管理员功能有个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;班级信息…

virtualbox kafka nat + host-only集群 + windows 外网 多网卡

virtualbox kafka nat + host-only集群 + windows 映射访问 kafka集群搭建背景kafka集群搭建 背景 使用virtualbox搭建kafka集群,涉及到不同网络策略的取舍 首先 桥接 网络虽说 啥都可以,但是涉及到过多ip的时候,而且还不能保证使用的ip不被占用,所以个人选择kafka虚拟机…

手撕spring框架(3)

手撕spring框架&#xff08;3&#xff09; 相关系列 手撕spring框架&#xff08;1&#xff09; 手撕spring框架&#xff08;2&#xff09; InitializingBean 接口详解 什么是 InitializingBean 接口&#xff1f; InitializingBean 接口是 Spring 框架中的一个接口&#xff0c…