Gromacs模拟一:配体-双链蛋白质复合物体系准备

news2024/11/26 12:44:20

1、蛋白质的准备:

在RCSB网站下载想要的蛋白晶体(教程里是3htb),用notepad等编辑器或是分子可视化软件除去里面的非蛋白分子或离子。

这里采用的是一个经过分子对接后的蛋白质pdb和配体小分子的pdb。

教程里提到的配体是2-丙基苯酚(JZ4),是一个非肽类分子,同时存在于3htb蛋白里。可以用notepad给他抽出为一个单独的pdb。如果是一个短肽类分子,可以利用gromacs自带的蛋白力场为其生成力场参数(应该可以)。

将蛋白质pdb进行处理,生成top文件和gro坐标文件,命令运行后弹出的力场选项中选择第1个CHARMM36力场:

gmx pdb2gmx -f 3HTB_clean.pdb -o 3HTB_processed.gro -ter

之后,选择TIP3P模型作为水分子,选择NH3+和COO-作为蛋白链的末端原子。

2、将配体分子转为需要的mol2格式:

我还是用discovery studio进行加H(添加力场)和输出为mol2文件。

下载相关的charmm36力场charmm36-jul2022.ff.tgz和一个python脚本cenff_charmm2gmx.py,根据实际环境。下载链接http://mackerell.umaryland.edu/charmm_ff.shtml#gromacs

 将下载的tgz文件解压到存放蛋白和配体pdb文件的工作目录下,成为一个子目录。

3、为配体mol2文件生成拓扑文件:

在CGenFF 服务器注册账号,然后使用这个网站完成拓扑数据的生成,但是我注册不了(填好注册信息,点击注册,卡,信息清空..)

下载Sob老师提供的Sobtop程序可以gromacs适合的拓扑文件,同时这个程序非常方便,下载后打开里面的exe文件就能运行(大佬不愧是大佬)。

下载界面的下方有11个例子参考,我根据例子2完成对小分子拓扑文件的生成。

4、建立复合物的gro文件:

用protein.gro拷贝成一个新文件,修改名为complex.gro。将ligand.gro里的原子坐标放到complex里,再在盒子数据上方空一行:

这里推荐使用notepad3进行编辑,win10自带的笔记本确实不行,不能看清楚数据之间的空格情况,容易报错。

这里不用留空行,留了会报错。
主要的问题应该还是空格没有处理好。

 蛋白有4892个原子,配体是33个原子,所以在complex.gro的第2行(表示原子数)修改为4825

配体里的原子数从1又重新排序了,这个应该不伤大雅。

5、建立复合物的拓扑文件:

同目录下有个topol,是一个包含蛋白质拓扑信息的文件(在使用pdb2gmx时生成)。这个蛋白是一个双链蛋白,因为活性口袋在两个蛋白双螺旋之间。同目录下还有两个分开的独立链的top文件。

在topol里,用#include语句导入蛋白的top信息,如果蛋白是单链的话,数据会直接导入到topol中。根据前面导入力场,导入蛋白链拓扑的命令的格式,插入导入配体拓扑的命令:

6、规避报错,关于[atomtypes]:

利用Sob老师生成的小分子itp文件中,有[atomtypes]这个部分,如果不处理,会报错。确实在官方manual里的top文件模板中,不会出现[atomtypes]这一项。

在manual里,top文件的格式如下,是没有[atomtypes]这个部分的。

;
; Example topology file
;
[ defaults ]
; nbfunc        comb-rule       gen-pairs       fudgeLJ fudgeQQ
  1             1               no              1.0     1.0

; The force field files to be included
#include "rt41c5.itp"

[ moleculetype ]
; name  nrexcl
Urea         3

[ atoms ]
;   nr    type   resnr  residu    atom    cgnr  charge
     1       C       1    UREA      C1       1   0.683
     2       O       1    UREA      O2       1  -0.683
     3      NT       1    UREA      N3       2  -0.622


[ bonds ]
;  ai    aj funct           c0           c1
    3     4     1 1.000000e-01 3.744680e+05
    3     5     1 1.000000e-01 3.744680e+05
    6     7     1 1.000000e-01 3.744680e+05


[ pairs ]
;  ai    aj funct           c0           c1
    2     4     1 0.000000e+00 0.000000e+00
    2     5     1 0.000000e+00 0.000000e+00
    2     7     1 0.000000e+00 0.000000e+00


[ angles ]
;  ai    aj    ak funct           c0           c1
    1     3     4     1 1.200000e+02 2.928800e+02
    1     3     5     1 1.200000e+02 2.928800e+02
    4     3     5     1 1.200000e+02 3.347200e+02

[ dihedrals ]
;  ai    aj    ak    al funct           c0           c1           c2
    2     1     3     4     1 1.800000e+02 3.347200e+01 2.000000e+00
    6     1     3     4     1 1.800000e+02 3.347200e+01 2.000000e+00
    2     1     3     5     1 1.800000e+02 3.347200e+01 2.000000e+00


[ dihedrals ]
;  ai    aj    ak    al funct           c0           c1
    3     4     5     1     2 0.000000e+00 1.673600e+02


; Include SPC water topology
#include "spc.itp"

[ system ]
Urea in Water

[ molecules ]
Urea    1
SOL     1000

我的做法是将这些原子添加到力场文件中。

 如图,根据topol里提供的信息,找到gromacs提供的所用力场的文件地址:

(PS:这里图截错了,实际应该是#include "amber99sb-ildn.ff/forcefield.itp"

 打开forcefield.itp文件,会发现其还是用include命令调用了两个itp文件。 将这三个itp文件拷贝到我的工作目录(存放了protein.gro、ligand.gro、topol什么的文件夹)下的子文件夹ff里:

在ffnonbonded.itp文件里有原子类型信息(用笔记本打开查看),可以将配体itp里的atomtype的数据拷贝过去,最后保存。

之后,修改topol里调用forcefield.itp的命令,将其路径改为调用修改后的forcefield.itp文件存放的位置ff文件夹:

 到这里,提示拓扑文件里有[atomtypes]的fatal报错就会消失。

7、定义盒子大小和添加溶剂分子:

定义盒子: 

gmx editconf -f complex.gro -o newbox.gro -bt dodecahedron -d 1.0
#要查看每个参数是什么意识,可以用gmx editconf -h

添加溶剂水: 

gmx solvate -cp newbox.gro -cs spc216.gro -p topol.top -o solv.gro
#没有tip3p.gro
#用spc216的gro代替,不过拓扑信息还是用tip3p的水

我觉得不一定要用tip3p.gro,不会报错就不错了 。

8、规避报错,分子数量的报错:

这里添加了水到复合物的gro文件里,但是topol文件里的[melocules]还是没有更新的状态,所以有下面的报错:

这里提示了坐标文件中原子数和拓扑文件中的原子数不同。Fatal error: number of coordinates in coordinate file (solv.gro, 29510) does not match topology...-CSDN博客

这篇博客中老师的方法给了我提醒。要在topol文件的molecules里添加水的分子数,这里多出75549个原子,就是25183个水分子(除以3)。

这里为什么是SOL, 其实,这个记录在每个分子的itp文件的[moleculetypes]部分里。如下图,在[dir]\gmx\share\gromacs\top\amber99sb-ildn.ff文件夹下的tip3p.itp文件里的[moleculetype]:

所以,这个水的分子名是SOL。 

9、添加离子:

写一个mdp文件,重命名为ions.mdp,真不懂为什么加离子就要用到这种文件。

#生成一个tpr文件:
gmx grompp -f ions.mdp -c solv.gro -p topol.top -o ions.tpr
#添加离子,生成一个新的gro文件:
gmx genion -s ions.tpr -o solv_ions.gro -p topol.top -pname NA -nname CL -neutral

# 运行最后一个添加离子的命令后,会出现如下的选项:
Reading file ions.tpr, VERSION 2022.2 (single precision)
......
Group     8 (      SideChain) has  3352 elements
Group     9 (    SideChain-H) has  1174 elements
Group    10 (    Prot-Masses) has  4892 elements
Group    11 (    non-Protein) has 75582 elements
Group    12 (          Other) has    33 elements
Group    13 (            MOL) has    33 elements
Group    14 (          Water) has 75549 elements
Group    15 (            SOL) has 75549 elements
Group    16 (      non-Water) has  4925 elements
Select a group:
#这里输入15

输入15,因为我的topol里的溶剂分子类型写的就是SOL,查看topol文件,添加的离子文件已经更新到文件里:

采用VMD或是Pymol检查配体和蛋白之间是否存在挨太近等不合理的状况:

 参考教程:

Protein-Ligand Complex

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

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

相关文章

“地干天知”干旱监测与预警技术研讨及系统产品发布

3月28日,由国家气候中心气象灾害风险管理室、北京慧天卓特科技有限公司主办的“地干天知”干旱监测与预警技术研讨及系统产品发布活动在北京市海淀区中关村壹号隆重举办。活动旨在面向公众讲解干旱监测与预警技术原理,展示监测范围和预警能力。来自国家气…

Redis实战篇-利用逻辑过期解决缓存击穿问题

实战篇Redis 3.0 、利用逻辑过期解决缓存击穿问题 需求:修改根据id查询商铺的业务,基于逻辑过期方式来解决缓存击穿问题 思路分析:当用户开始查询redis时,判断是否命中,如果没有命中则直接返回空数据,不…

基于boost准标准库的搜索引擎项目

零 项目背景/原理/技术栈 1.介绍boost准标准库 2.项目实现效果 3.搜索引擎宏观架构图 这是一个基于Web的搜索服务架构 该架构优点: 客户端-服务器模型:采用了经典的客户端-服务器模型,用户通过客户端与服务器交互,有助于集中管理和分散计算…

DBeaver,一款实用的开源数据库管理软件

说起开源软件,其实大部分的体验和服务都是没有商业软件好的,毕竟养团队不是靠鼓励和奉献,咱们选择开源软件的主要原因还是免费,免费,免费。 由于公司限制安装商业软件,咱只能挑开源的替代,其中…

HarmonyOS 应用开发之Stage模型启动FA模型PageAbility

本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。 UIAbility启动PageAbility UIAbility启动PageAbility和UIAbility启动UIAbility的方式完全相同。 说明: 需注意FA模型中abilityName由bundleName AbilityName组成,具体见示例。 i…

设计模式之解释器模式的魅力:让代码读懂你的语言

目录 一、什么是解释器模式 二、解释器模式的应用场景 三、解释器模式的优缺点 3.1. 优点 3.2. 缺点 四、解释器模式示例 4.1. 问题描述 4.2. 问题分析 4.3. 代码实现 4.4. 优化方向 五、总结 一、什么是解释器模式 解释器模式(Interpreter pattern&…

AI图像超分解决方案,还原更加清晰、逼真的画面

图像质量对于企业的业务运营和用户体验至关重要,许多场景下的图像分辨率不足,常常导致模糊效果不佳,难以满足企业的视觉需求。针对这一难题,美摄科技凭借其领先的AI技术,推出了创新的图像超分解决方案,为企…

【编程笔记】学会使用 Git

目录 一、介绍 Git二、安装 Git三、 常用 linux 目录四、Git 的必要配置(1) 查看和删除之前的配置(2) 配置 Git 五、Git 基本理论六、Git 项目搭建七、Git 文件操作八、分支Git 笔记 ❀❀❀(1) 常规使用(2) 分支 一、介绍 Git 📖 VCS:Version Control S…

代码随想录-二叉树(路径)

目录 257. 二叉树的所有路径 题目描述: 输入输出描述: 思路和想法: 404. 左叶子之和 题目描述: 输入输出描述: 思路和想法: 513.找树左下角的值 题目描述: 输入输出描述:…

用JSch实现远程传输文件并打包成jar

本文将简单介绍一下 JSch 这个Java的第三方库的一个简单用法,并以此为实例,讲解 IntelliJ 中打包成 jar 包的2种方式。 实现目标 我们的目标是,做出一个jar包,它能够实现类似于 scp 命令的远程传输文件的功能。用法如下&#xf…

乡村数字化转型:科技赋能打造智慧农村新生态

随着信息技术的迅猛发展,数字化转型已成为推动社会进步的重要引擎。在乡村振兴的大背景下,乡村数字化转型不仅是提升乡村治理能力和治理水平现代化的关键,更是推动农业现代化、农村繁荣和农民增收的重要途径。本文旨在探讨乡村数字化转型的内…

MyBatis 初识简单操作

前言 上一期我们讲完Spring的配置文件以及日志的设置,这一期我们就来谈谈mybatis操作数据库的一些操作,使用这个框架可以极大地简化JDBC的冗长代码,大大增强了生产力,只需我们提供简单的sql语句以及对应的注解就可以操作数据库 我们说web应用程序主要分为三层 Controller Serv…

使用 golang 以及 Gin 框架,将上传的图片在不保存至本地的情况下添加水印,并上传至阿里云 OSS

正如标题所述,使用golang对上传图片添加水印,以及将图片上传到阿里云OSS,网上一搜索,便有你想要的结果了,可是,他们却先将上传图片添加水印后保存在本地,而后再将添加了水印的图片上传到阿里云O…

SRS OBS利用RTMP协议实现音视频推拉流

参考:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started 1)docker直接运行SRS服务: docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5运行起来后可以http://localho…

学习笔记——C语言基本概念指针(上)——(7)

今天学习了指针,指针吧理解有点小难,慢慢分析就懂。 在开始学指针之前先回顾一下C语言的数据类型如下图所示: 按照分类分别为: 1->基础数据类型:char ;short; int; long; float&…

Platypus 一种集中式的央行数字货币方案

集中式的CBDC,混合使用账户模型和UTXO模型。 角色分类 中央银行:发行货币,交易验证,公开交易日志,防止双花。 不是完全受信任的,假定为会遵守监管要求,但可能会破坏交易隐私,即获…

瑞吉外卖实战学习--5、新增员工功能

新增员工功能 效果图1、开发流程2、页面发送ajax请求,将新增员工的信息以json的形式提交给服务器2.1、在填写信息的时候会发现身份校验比较麻烦,可以在validate中将全局的校验方式去掉,方便填写2.3、看到接口未employee2.4、前端代码分析3、服务器接收到提交的数据并调用ser…

无论PC还是Mac,都能畅快地使用移动硬盘 Mac使用NTFS移动硬盘不能读写

如果你拥有一台Mac设备,总会遇到尴尬的那一刻——你在Mac上用得好好的移动硬盘怎么都不能被PC识别到。又或者你朋友在PC上用得好好的移动硬盘,连上你的Mac后,Mac里的文件死活就是拷贝不进移动硬盘里。这种坑,相信大多数使用Mac的小…

Linux 基于chrony进行时钟同步方案验证

Linux 基于chrony进行时钟同步方案验证 1. 背景介绍2. 验证过程2.1 追踪配置2.2 追平记录2.2 追平时间换算 3. 疑问和思考3.1 如何统计追踪1s需要花费多长时间? 4. 参考文档 chrony是一个Linux系统中用于时钟同步的工具。它使用NTP(网络时间协议&#xf…

【Java常用的API】JDK8相关时间类

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …