gromacs学习及使用(2)

news2024/12/23 10:23:48

命令解释参考GROMACS基本教程
整个流程参考分子动力学模拟Gromacs一般使用步骤(空蛋白)
从gromacs 5.0版本开始,所有的工具都是“gmx”的子模块。可以通过下面的命令获得任何一个模块的帮助信息:

gmx help (module) 或者 gmx (module) -h
#!/bin/bash
module load gromacs/gromacs-2021.5-gcc-9.2.0-cuda11.1
for i in *.pdb;do
    pdbid=${i:0:7}
    echo $pdbid
    printf "8"|gmx pdb2gmx -f $i -o ${pdbid}_processed.gro -water spc -ignh
    gmx editconf -f ${pdbid}_processed.gro -o ${pdbid}_newbox.gro -bt dodecahedron -d 1.0
    gmx solvate -cp ${pdbid}_newbox.gro -cs spc216.gro -p topol.top -o ${pdbid}_solvate.gro
    gmx grompp -f em.mdp -c ${pdbid}_solvate.gro -p topol.top -o next.tpr -maxwarn 1
    printf "13" | gmx genion -s next.tpr -o ${pdbid}_solv_ions.gro -p topol.top -pname NA -nname CL -neutral
    gmx grompp -f em.mdp -c ${pdbid}_solv_ions.gro -p topol.top -o em.tpr
    gmx mdrun -v -deffnm em
    gmx editconf -f em.gro -o em.pdb

done

1.用pdb2gmx 处理 pdb 文件

gmx pdb2gmx -f $i -o ${pdbid}_processed.gro -water spc -ignh

(1)pdb2gmx此命令将pdb文件转换成gromacs文件并产生拓扑文件。
(2)-ignh因为本pdb文件是由 NMR产生的,含有氢原子,因此用-ignh选项忽略文件中的氢原子。
(2)注意-ignh选项, 它表明程序会首先移除初始文件中的氢原子, 然后再根据相应力场的说明进行重建。???
(3)-f读入pdb文件
(4)-ff可指定力场(G43a1是Gromos96力场,一个通用原子力场)(没用过)
(5)-o指定一个新产生的pdb文件(也可以是其它多种类型文件)的文件名
(6)-p指定新产生的拓扑文件名。拓扑文件包含了所有力场参数(基于一开始选择的力场),因此非常重要(也没用过)
(7)-water来指定水模型研究表明SPC/E 水模型在水盒子模拟中表现最好。用SPC/E 水模型研究长程静电相互作用较好。
(8)注:对于下面将要用到的任何命令,都可以使用“-h”查看该命令的使用方法,比如,对于命令pdb2gmx 可以使用: pdb2gmx –h

补充: pdb2gmx的目的是生成以下三个文件:
(1)分子的拓扑文件;(2)位置限定文件;(3)预处理的结构文件。
(4)拓扑文件(默认为topol.top)包含了模拟中定义一个分子的所有必须信息,包括非键相互作用(nonbonded,原子类型和电荷)和成键参数(bonded, 键、角、二面角)。后面生成相应文件后再详细查看。
(5)-ter:对N-端和C-端的电荷进行交互分配
(5)使用-ter选项后GROMACS会提示分子的末端变化, 合适的选择应该能够正确地表示体系。???
(6)-inter:对Glu、Asp、Lys、Arg和His的电荷进行交互分配;选择那(哪)些Cys参与二硫键
(7)xxx_processsed.gro是GROMACS格式的结构文件,包含了力场文件中包含的所有原子(蛋白中氨基酸的H原子已经补全)。
(8)topol.top文件是系统拓扑文件(接下来会详细介绍)。
(9)posre.itp包含了限制重原子位置的信息(后面会详细介绍)蛋白的位置限制文件posre.itp
(10)最后要注意一点:很多用户认为.gro文件是必须的。其实不然。GROMACS可以处理很多格式的文件,只不过.gro是默认的坐标文件格式。.gro文件非常紧凑,但精度不够高。如果你想用PDB等其他格式的文件,只需要指定.pdb后缀的输出文件名即可。pdb2gmx的目的是生成符合力场的拓扑文件;输出结构在很大程度上是此目的的副产品,目的是为了方便用户。具体格式几乎可以是任何你喜欢的格式(不同的格式可以在GROMACS手册中查看)。

2.建立盒子

gmx editconf -f ${pdbid}_processed.gro -o ${pdbid}_newbox.gro -bt dodecahedron -d 1.0

(1)-d决定了盒子的尺寸,即盒子边缘距离分子边缘 1.0nm (1.0Å)。理论上在绝大多数系统中,-d 都不能小于0.85nm。
(2)注:editconf 也可以用来进行gromacs文件(.gro)和pdb 文件(.pdb)的相互转化。
例如:gmx editconf –f file.gro –o file.pdb 则将file.gro 转换为 file.pdb
(3)现在就可以用产生的文件进行真空模拟了。真空模拟就是先能量最小化,然后进行动态模拟。
没用过下面图片中的命令
(4)-c会将蛋白质放在盒子的中心,而且蛋白质离盒子边缘至少1.0 nm(-d 1.0)。盒子的类型定义为立方型(-bt cubic)。距离盒子边缘的距离是一个非常重用的参数。由于需要使用周期性边界条件,我们必须满足最低镜像约定(minimum image convention)。也就是说,蛋白质不能与它的周期性镜像相遇,否则此时计算得到的力是不正确的。定义溶质-盒子的距离为1.0 nm就意味着蛋白质的两个周期性镜像之间至少有2.0 nm。这个距离可以满足模拟中几乎所有的截断方法(cutoff scheme)。
(5)看看editconf的输出, 注意体积的变化. 另外, 也看看protein-PBC.gro文件的最后一行(提示: 可使用命令tail -n 1 protein-PBC.gro). 在GROMACS格式(.gro)中, 最后一行指定单位晶胞的形状, 并总是使用三斜矩阵的表示方法, 其中前面的三个数字指定对角元素(xx, yy, zz), 后面的六个数字指定非对角元素(xy, xz, yx, yz, zx, zy).

gmx solvate -cp ${pdbid}_newbox.gro -cs spc216.gro -p topol.top -o ${pdbid}_solvate.gro

(1)通过solvate模块填充水分子(之间的版本是genbox)
(2)“我强烈建议使用十二面体(rhombic dodecahedron),因为它的体积大概是立方盒子的71%。因此,在溶剂蛋白质时可以减少大量水分子。”
(3)使用spc216.gro,这是一个通用的平衡过的3粒子溶剂模型
(4)spc216.gro可以适用于SPC、SPC/E或者TIP3P水模型,因为他们都是3粒子溶剂模型
(5)solvate模块可以追踪添加了多少水分子,然后写入到拓扑文件中以反映做出的改变。注意,如果使用的是其他非水溶剂,solvate不能自动更改拓扑文件!它与更新水分子的兼容性在代码中是固定写死的。
在这里插入图片描述
4.设置能量最小化
em.mdp文件:Gromacs用*.mdp 文件指定所有计算的参数。

title–标题随便取(最长64个字,简单点好)
cpp–指定预处理器的位置define–传递给预处理器的一些定义。
–DFLEXIBLE告诉grompp将spc水模型而非刚性SPC包含进拓扑文件,
以便用最陡下降法进一步最小化能量。constraints–设置模型约束
integrator– steep,告诉gompp使用最速下降法进行能量最小化。
cg则代表使用共轭梯度法。dt–能量最小化用不用。只在动力学模拟中用(如md)。
nsteps–在能量最小化中,指定最大运行步数。
nstlist–更新邻居列表的频率。
nstlist = 10表示每10步更新一次。
rlist–短程邻居列表的阈值。
coulombtype–告诉gromacs如何计算静电。
PME为particle mesh ewald法(参见Gromacs用户手册)
rcoulomb–指定库仑力阈值vdwtype–告诉Gromacs如何计算范德华作用(cut-off, Shift等)
rvdw–指定LJ或Buckingham势能距离阈值 EM Stuff
emtol–最大的力如果小于此值则能量最小化收敛(结束)(单位kJ mol–1 nm–1)
emstep–初始步长(nm)

5.用grompp程序进行文件处理

gmx grompp -f em.mdp -c ${pdbid}_solvate.gro -p topol.top -o next.tpr -maxwarn 1

(1)-f标签指定输入参数文件(.mdp)
(2)-c输入结构文件(pdb文件,
.pdb)
(3)-p输入拓扑文件
(4)-o输出mdrun的输入文件(*.tpr)
(5)topol.top拓扑文件内容:参考GROMACS教程1:Lysozyme

nr:原子序号type:残基序号
residue:残基名称(注意PDB文件中残基名称是“LYS”;.rtp文件中的“LYSH”表明残基被质子化)
atom:原子名称
cgnr:电荷分组序号(charge group定义了整数电荷的单元,对加速计算有利)
charge:原子电荷(“qtot”是分子上电荷的总和)
mass:原子质量typeB、chargeB、massB:用于计算自由能微扰
; Include forcefield parameters
#include "charmm27.ff/forcefield.itp"

[ moleculetype ]
; Name            nrexcl
Protein_chain_A     3

[ atoms ]
;   nr       type  resnr residue  atom   cgnr     charge       mass  typeB    chargeB      massB
; residue   1 GLY rtp GLY  q +1.0
     1        NH3      1    GLY      N      1       -0.3     14.007
     2         HC      1    GLY     H1      2       0.33      1.008
     3         HC      1    GLY     H2      3       0.33      1.008
     4         HC      1    GLY     H3      4       0.33      1.008
     5        CT2      1    GLY     CA      5       0.13     12.011
     6         HB      1    GLY    HA1      6       0.09      1.008
     7         HB      1    GLY    HA2      7       0.09      1.008
     8          C      1    GLY      C      8       0.51     12.011
     9          O      1    GLY      O      9      -0.51     15.999   ; qtot 

(6)grompp的作用是运行坐标文件和拓扑文件,生成原子级别的输入文件(.tpr)。.tpr文件包含了体系中所有原子的参数。
(7)为了通过grompp生成.tpr文件,这里需要一个额外的.mdp输入文件(molecular dynamics parameter,检查mdp);grompp会收集.mdp文件中的坐标和拓扑信息来生成.tpr文件。

6.使用genion和tpr文件添加离子

gmx genion -s next.tpr -o ${pdbid}_solv_ions.gro -p topol.top -pname NA -nname CL -neutral

(1)对生成的tpr文件加入补偿离子以中和系统中的净电荷。
(2)-nname指定阴离子名称(在Gromos G43a1力场中,用CL-表示氯离子。参见ions.itp查看wrt力场中离子详细信息)
(3)-nn是指定加入的阴离子数目
(4)-g输出genion的log文件
(5)运行这个命令时,提示提供一个连续的溶剂组,应该是组12(SOL)。输入12,回车。程序会告知你有两个溶剂分子被氯离子代替
(6)添加离子的工具是genion模块。该模块会通读拓扑文件并以用户指定的离子代替水分子。
(7)输入文件即所谓的运行文件(run input file),文件后缀为.tpr;这个文件是通过grompp模块生成的,在后面运行第一次模拟的时候还会用到这个模块。
(8)在genion命令中,需要提供结构/状态文件(-s)作为输入文件,生成输出文件.gro (-o),处理拓扑文件(-p)反映替换掉的水分子和添加的离子,定义正负离子的名字(-pname和-nname),然后告诉genion添加中和体系电荷的正/负离子以及离子个数
(9)可以通过指定-neutral和-conc让genion添加固定浓度的离子而不是单单中和体系。可以参考genion的主页查看相关信息。-conc 0.15 浓度为0.15 M
(10)在之前的GROMACS版本中通过-pname和-nname指定的离子是力场规定的,但在4.5版本中则进行了标准化。规定的离子名称通常是大写的元素符号,并在[ molecules ]中命名然后写到拓扑文件中。根据不同的力场,残基名或者原子名可能带有+/-号,也可能不带。在genion命令中不要用原子或者残基名,否则在接下来的步骤中会遇到很多错误。

7.在进行动力学模拟之前,我们必须保证体系没有空间上的冲突或者不合理的构象。体系结构松弛是通过所谓的能量最小化(EM)实现的。
8.EM的过程与添加离子类似。我们再次利用grompp把体系结构、拓扑文件以及模拟参数集合到.tpr文件中,但是这次不是把.tpr文件传递给genion,而是通过mdrun运行能量最小化。
9.在运行genbox和genion时确保你已经更新了topol.top文件,否则会出现一大堆错误信息("number of coordinates in coordinate file does not match topology,“等)。
10.-v是给没有耐心等待的人设计的:它会让mdrun的输出变得冗长,每一步都会把过程输出到屏幕上。-deffnm用来定义输入和输出文件的名字。所以,如果你没有命名grompp输出文件"em.tpr”,你必须使用mdrun -s精确指定文件名。在本例中,我们会得到如下文件:
em.log:EM过程的ASCII码log文件
em.edr:二进制的能量文件
em.trr:二进制的全精度坐标文件
em.gro:能力最小化之后的结构
11.第一个是势能(potential energy,EM进程最后会输出)。Epot应该是负的,而且对于一个水中的简单的蛋白质体系来说处于105-106范围???,具体数值依赖于体系大小和水分子数目。第二个重要特征是最大作用力Fmax,收敛值是在minim.mdp中设置的——“emtol=1000.0”,意思是目标Fmax的值要低于1000KJ/(mol nm)。有时Fmax>emtol时Epot也可能处于合理范围,但是此时体系并没有完全稳定。此时应该评估为什么会出现这个现象,试着改变最小化参数(integrator、emstep等)。

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

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

相关文章

人主机辅与机主人辅

人主机辅和机主人辅的时机和地点一般取决于具体的应用场景和技术发展,具体而言: 人主机辅: 在较为复杂和需要专业知识的工作中,人类主持机器辅助的需求较为常见。例如,在医疗领域中,人类专家可能会利用机器…

【2023CANN训练营第二季】——Ascend C算子调用及实验演示

自定义算子调用方式 完成自定义算子的开发部署后,可以通过单算子调用的方式来验证单算子的功能。单算子调用有API执行和模型执行两种方式: 单算子API执行:基于C语言的API执行算子,无需提供单算子描述文件进行离线模型的转换&…

docker buildx跨架构构建笔记(x86_64构建下构建aarch64镜像)

docker buildx跨架构构建(x86_64构建aarch64镜像) 文章目录 docker buildx跨架构构建(x86_64构建aarch64镜像)简介第一步 先交叉编译一个aarch64的HelloWorld程序。准备一个用于跨架构的Dockerfile文件使用docker buildx命令构建aarch64架构的镜像。查看镜像具体详细信息&#…

LeetCode Hot100 438.找到字符串中所有字母异位词

题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 代码: class Solution …

【shell】shell脚本编程作业

1 编写bash脚本,要求用户输入源目录和目标目录(绝对路径),然后列出源目录下所有的文件,并将这些文件拷贝到目标目录,并在文件名后面加上时间戳。(提交源代码和运行截图) if [ -d $1 ] || [ -d…

类和对象——(3)再识对象

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 你说那里有你的梦想,…

国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)

笔者手里有一批国产linu系统,目前开始用在日常的工作生产环境中,我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux,统信UOS等,基本都是基于debian再开发的linux。 问题描述: 因为…

centos7下执行yum命令报错

前言 在Linux系统中,安装nginx时候,需要先安装环境。 Nginx是使用C语言开发,安装nginx需要先从官网上将源码下载,然后编译,编译需要gcc环境,但是在安装gcc环境的时候,执行命令报错。 yum install –y gcc-…

【稳定检索|投稿优惠】2024年生物神经工程与健康大数据国际会议(ICBNHBD 2024)

2024年生物神经工程与健康大数据国际会议(ICBNHBD 2024) 2024 International Conference on Biological Neuroengineering and Health Big Data(ICBNHBD) 一、【会议简介】 2024年生物神经工程与健康大数据国际会议(ICBNHBD 2024),这场科学盛宴,会议在中…

训练自己的个性化Stable diffusion模型,LORA

一、背景 需要训练自己的LORA模型 二、分析 1、有sd-webui有训练插件功能 2、有单独的LORA训练开源web界面 两个开源训练界面 1、秋叶写的SD-Trainer https://github.com/Akegarasu/lora-scripts/ 没成功,主要也是cudnn和nvidia-smi中的CUDA版本不一致退出 2…

操作系统背景知识

一、程序分类 程序按其运行环境分为: 裸机程序:直接运行在对应硬件上的程序 应用程序:只能运行在对应操作系统上的程序 二、计算机系统的层次结构 计算机系统两种层次结构: 2.1 无操作系统的简单的两层结构 2.2 有操作系统的…

SpringBoot中的部分注解

1.SpringBoot/spring SpringBootApplication: 包含Configuration、EnableAutoConfiguration、ComponentScan通常用在主类上; Repository: 用于标注数据访问组件,即DAO组件; Service: 用于标注业务层组件; RestController: 用…

使用ApexSQLLog工具恢复数据库

目录 前言 一、ApexSQLLog是什么? 二、使用步骤 1.连接你要恢复的数据库 2.选择你要恢复的时间点的数据 3.恢复指定操作的数据 4.恢复指定的表 5.输出结果方式 6.输出结果方式 7.生成还原的sql语句 总结 前言 我们在操作数据库的时候可能误操作把数据修…

Ps:用好钢笔工具

使用钢笔工具时,应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时,按住 Ctrl 键点击画布空白处,或者,直接按 Esc 键,即可…

qt-C++笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString

qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString code review! 文章目录 qt-C笔记之点击按钮弹出文件资源管理器选择文件后把文件路径赋值给一个QString1.运行2.main.cpp3.qt_FileDialog.pro4.QFileDialog类详解 1.运行 2.main.cpp 代码 #inclu…

达索系统SOLIDWORKS 2024工程图新功能

工程图概述 设计模型不仅能比绘制直线更快;SOLIDWORKS 从模型中生成工程图,模型的参数和几何关系在工程图中被保留,这样工程图可反映模型的设计意图;模型或工程图中的更改反映在其相关文件中,这样更改起来更容易&…

基于AT89C51单片机的电子闹钟设计

1.设计任务 利用AT89C51单片机为核心控制元件,设计一个电子闹钟,设计的系统实用性强、操作简单,实现了智能化、数字化。 (1)按开始键自动进入时间显示,开始为0,按K1键进入更改时间&#xff0c…

AMEYA360:思瑞浦TPS32 MCU两大全新产品系列介绍

TPS32混合信号微控制器依托思瑞浦出色的数模混合信号处理技术能力,围绕垂直应用开发产品,优化产品设计,助力客户实现终端产品的差异化。思瑞浦提供完整的开发生态系统支持,包含简单易用的配套嵌入式软件包、硬件和软件开发工具&am…

时序预测 | Python实现TCN时间卷积神经网络价格预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 时间卷积网络,TCN。 利用CNN技术处理时间序列数据。 卷基础层有三种,第一种是一维CNN,用于输…

某60区块链安全之薅羊毛攻击实战一学习记录

区块链安全 文章目录 区块链安全薅羊毛攻击实战一实验目的实验环境实验工具实验原理实验内容薅羊毛攻击实战一 实验步骤EXP利用 薅羊毛攻击实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约薅羊毛攻击漏洞 找到合约漏洞进行分析并形成利用 实验环境 Ubun…