当前位置: 首页 > news >正文

新手自学:如何用gromacs对简单分子复合物进行伞形采样

1、建立体系:

1、将蛋白的pdb文件转化为gmx:

gmx pdb2gmx -f 2BEG_model1_capped.pdb -ignh -ter -o complex.gro

这个网页可以实现将多肽序列转化为pdb:

ProBuilder On-line

这个教程的蛋白2BFG包含两条链(chain A和B)

在生成的topol文件中,增加如下的内容,效果就是chain B将被添加限制力而不能移动:

#ifdef POSRES_B
#include "posre_Protein_chain_B.itp"
#endif

这里chain A做为拉动链,而chain B作为固定链,用上面的参数进行位置限制。 

这里的ifdef是一个函数定义,如果在mdp文件中,有相关的字段(define=-DPOSRES_B),模拟就是读取这个itp拓扑文件里的数据。

1.1、将小分子-小分子复合物建立gro和top文件。

(这是教程外的,我个人的实践)多肽类小分子可以通过gmx自身完成gro和top文件的生成,文件如下:一个posre、topol和gro文件。

若是pdb中有多个分子,还会额外生成一个itp文件,并在topol中用incluede命令进行链接导入。这里pdb中只有一个小分子短肽,故其拓扑数据直接记录在topol文件(框1)中。

对于非蛋白,非核酸的分子,可以用sob老师的软件sobtop完成 gro和top生成。

这里,用sob老师生成的小分子itp数据如下图,我分为框内和框外(剩余)部分。这个文件不能直接用# include “xx.itp"的方式直接写入到topol文件中

 在topol文件中,其逻辑是先导入atomtype、bond等信息,证据就是其在开始的注释后,是先导入了gmx的share文件夹里top的forcefield.itp文件(下图框)。打开这个forcefield.itp文件,可以看到调用的itp文件,会先读取atomtype区块。

因此,若直接将小分子的itp以# include “xx.itp"命令写入,会再读一遍atomtype(由sobtop生成的),就会出错。

 我们可以把小分子(例如CH3F)的atomtype区块剪切出来,独立作为一个itp文件,例如命名为CH3Fatomtype.itp,放在当前工作路径下,在topol读取moleculetype区块之前,写入#include ”CH3Fatomtype.itp",就不会出错。

1.2、给体系填加盒子:

进行拉动模拟(pull simulation)不像其他模拟,

拉力距离必须始终小于箱向量长度的一半,箱向量沿着箱向量进行拉力。原因是:GROMACS 计算距离,同时考虑周期性。这样,如果你有一个10纳米的盒子,你拉过一个大于5.0纳米的距离,周期性的距离变成了拉的参考距离,这个距离实际上小于5.0纳米!

这个教程里,打算在一个12nm长的箱子里对分子进行5nm的拉动模拟。盒子设置命令如下:

gmx editconf -f complex.gro -o newbox.gro -center 3.280 2.181 2.4775 -box 6.560 4.362 12

center选项将复合物放在3.28*2.18*2.48这个坐标,box选项设置盒子的三维是6.56*4.36*12.0(教程里的情况)。

实际情况还是根据体系的大小进行考虑,盒子太大对计算也是一种负荷。

在VMD里导入这个建立的newbox.gro文件可视化盒子的情况,打开tk consle窗口输入如下命令:

pbc box #这里是pbc 表示周期性元胞边界the periodic unit cell boundaries

1.2.1、借用VMD软件进行更便捷的操作: 

其实,以上的gmx editconf命令实际效果只是在gro文件下增加了如下的周期性边界信息(下图框内),这个命令不会对topol文件造成修改(命令完成后,这个文件的修改日期没有改变)。 

利用VMD的效果也是相同的,我在gro文件中对盒子的大小进行调整(对于小分子,教程里设置的盒子太大了),调整后的效果如下图所示。另外,盒子改变后,会出现复合物可能跑到盒子外去的情况,可以用VMD的快捷键8(移动分子)和R(旋转)进行调整复合物的位置:

 1.3、添加水分子:

gmx solvate -cp newbox.gro -cs spc216.gro -o solv.gro -p topol.top

以上的命令会根据盒子的大小填充水分子,效果用VMD打开如下:

 1.4、建立ions.mdp文件,添加离子:

ions.mdp文件如下:

; ions.mdp - used as input into grompp to generate ions.tpr
; 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 < 1000.0 kJ/mol/nm
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    ; Buffered neighbor searching
ns_type         = grid      ; Method to determine neighbor list (simple, grid)
rlist           = 1.4       ; Cut-off for making neighbor list (short range forces)
coulombtype     = cutoff    ; Treatment of long range electrostatic interactions
rcoulomb        = 1.4       ; Short-range electrostatic cut-off
rvdw            = 1.4       ; Short-range Van der Waals cut-off
pbc             = xyz       ; Periodic Boundary Conditions

 利用grompp生成这个mdp文件的二进制文件tpr:

gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr

添加NaCl:

gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname NA -nname CL -neutral -conc 0.1

在跳出的选项中选择SOL对应的序号,就会将水分子换为离子。背后的逻辑就是:离子不是直接加上去的,而是会随机夺取体系中水分子的位置。

可以查看添加离子前后在topol里水分子的数量和离子的数量。

1.5、之后是常规的能量最小化,NPT平衡:

教程的minim.mdp文件和上面的ions.mdp是一样的,生成tpr然后用mdrun跑一遍能量最小化:

gmx grompp -f minim.mdp -c solv_ions.gro -p topol.top -o em.tpr
gmx mdrun -v -deffnm em

教程里的npt模拟的npt.mdp文件:

title       = NPT Equilibration 
define      = -DPOSRES          ; position restrain the protein
; Run parameters
integrator  = md                ; leap-frog integrator
nsteps      = 50000             ; 2 * 50000 = 100 ps
dt          = 0.002             ; 2 fs
; Output control
nstxout     = 1000              ; save coordinates every 2 ps
nstvout     = 1000              ; save velocities every 2 ps
nstenergy   = 1000              ; save energies every 2 ps
nstlog      = 1000              ; update log file every 2 ps
; Bond parameters
continuation         = no        ; Initial simulation 
constraint_algorithm = lincs     ; holonomic constraints 
constraints          = all-bonds ; all bonds (even heavy atom-H bonds) constrained
lincs_iter           = 1         ; accuracy of LINCS
lincs_order          = 4         ; also related to accuracy
; Neighborsearching
ns_type     = grid              ; search neighboring grid cels
nstlist     = 5                 ; 10 fs
rlist       = 1.4               ; short-range neighborlist cutoff (in nm)
rcoulomb    = 1.4               ; short-range electrostatic cutoff (in nm)
rvdw        = 1.4               ; short-range van der Waals cutoff (in nm)
; Electrostatics
coulombtype     = PME           ; Particle Mesh Ewald for long-range electrostatics
pme_order       = 4             ; cubic interpolation
fourierspacing  = 0.16          ; grid spacing for FFT
; Temperature coupling is on
tcoupl      = Berendsen             ; Weak coupling for initial equilibration 
tc-grps     = Protein   Non-Protein ; two coupling groups - more accurate
tau_t       = 0.1       0.1         ; time constant, in ps
ref_t       = 310       310         ; reference temperature, one for each group, in K
; Pressure coupling is on
pcoupl              = Berendsen     ; Pressure coupling on in NPT, also weak coupling
pcoupltype          = isotropic     ; uniform scaling of x-y-z box vectors
tau_p               = 2.0      

相关文章:

新手自学:如何用gromacs对简单分子复合物进行伞形采样

1、建立体系: 1、将蛋白的pdb文件转化为gmx: gmx pdb2gmx -f 2BEG_model1_capped.pdb -ignh -ter -o complex.gro 这个网页可以实现将多肽序列转化为pdb: ProBuilder On-line 这个教程的蛋白2BFG包含两条链(chain A和B) 在生成的topol文件中,增加如下的内容,效果就…...

力扣第一题 哈希解法 O(n)时间复杂度

题目&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那俩个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返…...

elementui: el-dialog的header设置样式不生效

问&#xff1a; el-dialog的header设置样式不生效 回答&#xff1a; 场景&#xff1a; <el-dialogv-model"dialogVisible"width"800px":before-close"beforeClose"append-to-body:close-on-click-modal"false"title"增加文…...

libpcap 的使用

1.libpcap的模式 有线环境: 使用混杂模式promisous&#xff0c;完成监听无线环境: 使用监听模式monitor&#xff0c;完成监听 2.交叉编译libpcap 设置好交叉编译工具链后下载libpcap源码使用configure进行构建&#xff1a;–disable-shared 构建静态库&#xff0c;–host 、…...

ArcGISPro AA表O_Name字段 内容 复制到BB表BB字段里

import arcpy# 设置工作空间和要处理的表路径 resource_shape_table r"AA表.shp" # 源表路径 resource_assets_table r"BB表.shp" # 目标表路径# 使用 SearchCursor 读取源表中的 O_Name 字段 with arcpy.da.SearchCursor(resource_shape_table, [O_Na…...

2.5 使用注解进行单元测试详解

Mockito 使用注解进行单元测试详解 Mockito 提供了一系列注解来简化测试代码的编写&#xff0c;减少手动创建和管理 Mock 对象的样板代码。结合 JUnit 5&#xff0c;可以更高效地构建清晰、易维护的单元测试。 1. 核心注解概览 注解作用Mock创建并注入一个 Mock 对象&#xf…...

当没有OpenGL时,Skia如何绘制?

Skia 是可以在没有 OpenGL 的情况下进行图形绘制的&#xff0c;但是具体能否成功绘制图形&#xff0c;取决于 Skia 是如何配置的&#xff0c;以及平台上是否提供了其他的底层图形 API。 Skia 的底层依赖 Skia 的目标是提供一种跨平台的 2D 图形绘制接口。为了加速图形渲染&…...

SaaS+AI应用架构:业务场景、智能体、大模型、知识库、传统工具系统

SaaSAI应用架构&#xff1a;业务场景、智能体、大模型、知识库、传统工具系统 大家好&#xff0c;我是汤师爷~ 在SaaS与AI应用的演进过程中&#xff0c;合理的架构设计至关重要。本节将详细介绍其五个核心层次&#xff1a; 业务场景层&#xff1a;发现和确定业务场景智能体层…...

Go 语言中如何高效地处理集合

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram&#xff0c;自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 &#xff1f; 5 IDEA必装的插件&…...

布隆过滤器到底是什么东西?它有什么用

布隆过滤器&#xff1a;用概率换空间的奇妙数据结构 引言&#xff1a;当空间成为奢侈品 在互联网每天产生2.5万亿字节数据的时代&#xff0c;Google每秒处理超过9万次搜索请求&#xff0c;Redis缓存系统支撑着百万级QPS的访问。面对如此海量的数据处理需求&#xff0c;传统的…...

【数据结构初阶第十节】队列(详解+附源码)

好久不见。。。别不开心了&#xff0c;听听喜欢的歌吧 必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。云边有个稻草人-CSDN博客 目录 一、概念和结构 二、队列的实现 Queue.h Queue.c test.c Relaxing Time&#xff01; ————————————《有没…...

沪深300股指期权能对股指期货进行完全套保吗?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 沪深300股指期权能对股指期货进行完全套保吗&#xff1f; 沪深300股指期权是以沪深300指数为标的物的期权&#xff0c;而沪深300股指期货则是以该指数作为标的的期货合约。 理…...

JAVA学习第三天

继承关系变量访问的特点 01.方法中找 02.子类变量定义中找 03.父类中找 this和super关键字的使用区别&#xff1a; super父类构造函数的使用&#xff1a; 使用子类构造函数时&#xff0c;都会初始化父类的数据&#xff0c;自动调用父类的无参构造函数 super内存图——007 继…...

win11电脑其他WiFi可以连,只有一个WiFi连不上

这个问题卡了一小会&#xff0c;查了一些资料 后面发现 点击“诊断网络问题” 显示没有响应 第一步 重启wlan网络适配器 解决&#xff01;&#xff01;&#xff01; 重新连接那个有问题的wifi&#xff0c;丝滑连接&#xff01;...

leetcode_1760 袋子里最少数目的球

1. 题意 给定一个数组&#xff0c;和一个最多次操作次数。每次操作可以将数组中的一个数 x x x分成两个数 t x − t t\quad x-t tx−t。问 m a x O p e r a t i o n C n t maxOperationCnt maxOperationCnt次操作后&#xff0c;数组中最大的数最小的值是多少。 2. 题解 这个…...

Python 面向对象的三大特征

前言&#xff1a;本篇讲解面向对象的三大特征&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff0c;还有比较细致的&#xff08;类属性类方法&#xff0c;静态方法&#xff09;&#xff0c;分步骤讲解&#xff0c;比较适合理清楚三大特征的思路 面向对象的…...

Linux下的进程切换与调度

目录 1.进程的优先级 优先级是什么 Linux下优先级的具体做法 优先级的调整为什么要受限 2.Linux下的进程切换 3.Linux下进程的调度 1.进程的优先级 我们在使用计算机的时候&#xff0c;通常会启动多个程序&#xff0c;这些程序最后都会变成进程&#xff0c;但是我们的硬…...

面向对象程序设计-实验六

7-1 函数重载&#xff08;数据类型不同&#xff09; 代码清单&#xff1a; #include<iostream> using namespace std; class axxx { public: void px(int n,int a[]) { for(int i0;i<n;i) { for(int j0;j<n-i-1;j) { int t; if(a[j]>a[j1]) { ta[j]; a[j…...

MongoDB 7 分片副本集升级方案详解(上)

#作者&#xff1a;任少近 文章目录 前言&#xff1a;Mongodb版本升级升级步骤环境1.1环境准备1.2standalone升级1.3分片、副本集升级 前言&#xff1a;Mongodb版本升级 在开始升级之前&#xff0c;请参阅 MongoDB下个版本中的兼容性变更文档&#xff0c;以确保您的应用程序和…...

【工业安全】-CVE-2022-35555- Tenda W6路由器 命令注入漏洞

文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1&#xff1a;代码分析  4.2&#xff1a;流量分析 5.poc代码&#xff1a; 1.漏洞描述 漏洞编号&#xff1a;CVE-2022-35555 漏洞名称&#xff1a;Tenda W6 命令注入 威胁等级&#xff1a;高危 漏洞详情&#xff1…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)

+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...