首页 > 其他分享 >SPONGE进阶教程:MetaDynamics的简单用例

SPONGE进阶教程:MetaDynamics的简单用例

时间:2024-08-22 16:20:17浏览次数:12  
标签:MetaDynamics 进阶 SPONGE 坐标 配体 atom txt CV 蛋白

前序课程1
前序课程2

场景简述
蛋白与配体对接后,采用通常的分子动力学模拟,通常会采样得到势阱附近的大量结构(如下图左L-P),即蛋白-配体结合构象的平均系综。如果想要探究蛋白-配体解离过程,需要克服一个解离能垒,去到L-P*,甚至更远的L+P解离状态。这时候静候模拟体系自然地运动过去是不现实的(对于实验结合强度为μmol级的药物(pIC50~6.0),对应势阱深度约为10kcal/mol,其平衡态和稳定态的热力学概率比约为400:1,更何况解离路径上会存在蛋白位阻和溶剂排斥,实际成功游离的概率很低,统计热力学上不具有代表性)。

对于稀有事件的采样,有许多增强采样算法,本案例简单引入常用的MetaDynamics算法(以下简称为MetaD),演示在SPONGE软件中如何在较短观测时间内,模拟蛋白-配体解离过程。
MetaD是一种基于集合变量(Collective Variables,以下简称CVs)的增强采样方法,上图的横轴反应坐标即是一个广义的抽象的CV概念,CV的左侧L-P对应蛋白-配体结合态(状态A),CV的右侧L+P对应蛋白-配体解离态(状态B),CV应该满足连续可导。对于描述蛋白-配体结合-解离过程,CV可以有许多不同的定义,常见的包括配体质心与蛋白质心的距离,配体与蛋白结合位点原子的距离,配体的溶剂化面积等等。

本案例定义了一个非常粗糙的CV作为演示,定义配体质心MC到蛋白中心附近的174号GLY残基Cα(atomid=2643)的距离为d。

开启MetaD功能首先需要在mdin_metad.txt文件中添加“cv_in_file = cv.txt”指令,指向CV配置文件cv.txt。


    The first line is the name of the md tast

#本文本文件通过命令行中加入"-mdin 本文本文件名"读入,如果该文件名为"mdin.txt"且在当前命令行的工作路径中,可不在命令行中显式输入

#本文本文件内的所有参数指令均可通过加"-"前缀在命令行里输入,例如 -cutoff 8.0 -skin 2.0



#分子模拟最基本相关设置

mode = NPT #可选Rerun, Minimization, NVE, NVT, NPT



dt = 1e-3 #模拟步长,单位ps

step_limit = 100000 #模拟总步数,通常需要长一点的模拟,本教程用了偏小的值

write_information_interval = 100 #保存中间信息的间隔

write_restart_file_interval = 100000  #保存重启坐标和速度的间隔



target_temperature = 300.0 #模拟的目标平衡温度,单位为开

thermostat = middle_langevin #热浴方法

barostat =  andersen_barostat #压浴设置

target_pressure = 1.0 #模拟的目标平衡压强,单位为bar


restrain #此处重新开启restrain是为了固定蛋白的大致坐标和基本朝向,这样配体的绝对坐标分布可以与蛋白的坐标绘制在同一个图像上,而不需要进行平移旋转变换。
{
    atom_id = restrain_ca.txt 
    weight = 0.1
}

    #输入

        #文件目录

        default_in_file_prefix = 1ae5/1ae5



        #坐标和速度

        coordinate_in_file = Pmin_coordinate.txt #使用NPT得到的坐标作为输入坐标

        velocity_in_file = Pmin_velocity.txt
	
cv_in_file = cv.txt #定义CV文件


    #输出

        mdout = mdout.txt   #记录能量轨迹的文件

        mdinfo = mdinfo.txt #记录参数相关的文件

        box = mdbox.txt       #记录盒子轨迹的文件

        crd = mdcrd.dat        #记录坐标轨迹的文件

        rst = restart              #记录重启坐标和速度的文件



#其他参数

end_pause = 1 #程序运行结束后是否需要输入任意键退出

device = 0 #使用的GPU设备

dont_check_input = 1 #忽略多余参数

让我们看看cv.txt定义了些什么:

com_of_ligand #定义配体质心,atom列为配体原子的atom_id
{
vatom_type = center_of_mass
atom = 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387
}
cx #取出质心的x方向坐标,cy,cz分别是y方向、z方向的分量,方便后续绘图示意
{
CV_type = position_x
atom = com_of_ligand
}
cy
{
CV_type = position_y
atom = com_of_ligand
}
cz
{
CV_type = position_z
atom = com_of_ligand
}
dis # 定义配体质心与蛋白内部174号GLY残基Cα(atomid=2643)的距离为dis
{
CV_type = distance
atom = com_of_ligand 2643
}
print #在mdout.txt及屏幕输出添加感兴趣的字段
{
CV = cx cy cz dis
}
meta #开启MetaD
{
Ndim = 1 #CV维度为1维
CV = dis #采样的CV为两点相对距离dis
CV_minimal = 0 #采样CV的下限
CV_maximum = 50 #采样CV的上限,体系边长约为50A,由于周期性边界条件,内部最远距离应该是体对角线的一半sqrt(3)/2*50=43.3A, 上限高于此值已经足够。
CV_period = 0 #周期性CV需要定义,本案例CV没有周期性
CV_grid = 100 #CV等分为100个格点进行统计
welltemp_factor = 50 #MetaD的biasfactor,单位为kcal/mol
height = 0.6 #MetaD的biasheight,单位为kcal/mol
CV_sigma = 1.0 #CV的高斯峰宽
}

接下来运行带MetaD的模拟:

awk '{if($1=="CX"){print NR-2}}' 1ae5/1ae5_atom_type_name.txt > restrain_ca.txt
#将蛋白的Cα原子id生成一个列表,用于restrain
sed -i '/2643/d' restrain_ca.txt
#因为2643号原子会受到MetaD的bias效果,不加restrain更干净些
./SPONGE -mdin mdin_metad.txt

模拟结束之后,对结果进行统计:

awk '{if(NR>1){print $19,$20,$21,$14}}' mdout.txt >xyz_bias.txt
#汇总坐标信息和概率分布到文件xyz_bias.txt中,进行fes统计。

fes统计可以使用插件cyfes,跳转博客链接,有详细的cyfes原理、安装和使用说明。

标签:MetaDynamics,进阶,SPONGE,坐标,配体,atom,txt,CV,蛋白
From: https://www.cnblogs.com/bgalang/p/18362324

相关文章

  • 【C语言进阶】数据如何安家?C语言内存中的存储艺术深度解析
    ......
  • 书生·浦语大模型 进阶岛 InternVL 多模态模型部署
    基础任务使用QLoRA进行微调模型,复现微调效果,并能成功讲出梗图。尝试使用LoRA,或调整xtuner的config,如LoRArank,学习率。看模型Loss会如何变化,并记录调整后效果。1.使用QLoRA进行微调模型2.微调后结果合并cdXTunerpython3xtuner/configs/internvl/v1_5/convert_to_of......
  • Element-ui table进阶使用
    最近项目有多个报表开发的需求,我采用的是凤翎前端组件框架(基于element-ui开发),大伙可以直接参考element-ui组件库文档,把标签中的fks替换为el即可。下面我会按顺序一一展开细说这些需求:1、有多级表头,合并单元格如下图所示,降雨量是顶级表头,下面是二三级表头,最后才是表身部分。多......
  • 线段树进阶
    线段树进阶目录线段树进阶线段树+贪心/线段树+排序例题:1.洛谷P1607FairShuttleG2.洛谷P1937BarnAllocationG3.洛谷P1972HH的项链线段树+双指针例题:1.洛谷P1712区间线段树+多个标记维护例题:1.洛谷P2572序列操作线段树+二分例题:1.洛谷P4344脑洞治疗仪2.洛谷P2824排......
  • 扫雷基础与进阶(全面解析)
    前言:对于基础版扫雷,你需要掌握的知识有:循环与分支、函数基础、二维数组以及随机数函数(不懂可以看看我这篇文章《随机数函数和猜数字游戏》,需要了解rand,srand,time这三个函数);对于进阶版扫雷,你还得了解函数递归调用的思想。注意:如果想不看解析只看代码,可以直接阅读“省略......
  • Python爬虫进阶技巧
    在掌握了基本的网页数据提取与解析技能后,我们将进一步探讨Python爬虫的进阶技巧,以应对更加复杂的网络环境和数据抓取需求。动态网页爬取动态网页是指那些通过JavaScript动态生成内容的网页。这类网页的内容在初次加载时并不包含在HTML源代码中,因此无法直接使用传统的爬虫方法......
  • S32的进阶之路->1,S32DS环境安装与Debuge测试
    1,S32DS安装包下载    浏览器搜索“恩智浦”进入NXP官网,或者直接点击下面的NXP官网链接NXP官网https://www.nxp.com.cn/    进入设计中心,点击软件下面的汽车软件,随后进入到汽车电子软件和工具界面,再点击S32DSIDE进行下载,这里我们需要登录NXP的账号,没有的......
  • 提高你的程序开发技能——进阶指南
    作为一名程序开发者,不断提升自己的技能和知识水平是非常重要的。随着技术的不断发展,程序员们需要时刻保持学习和进步的态度,才能紧跟行业的步伐。本文将为大家分享一些提高程序开发技能的方法和建议。##1.深入理解编程语言和框架要成为优秀的程序员,首先需要对自己所使用的编程......
  • 书生大模型实战营3期 - 进阶岛 - 3 - LMDeploy 量化部署进阶实践
    文章目录闯关任务完成结果闯关任务任务描述:LMDeploy量化部署实践闯关任务任务文档:LMDeploy量化部署进阶实践完成结果使用结合W4A16量化与kvcache量化的internlm2_5-7b-chat模型封装本地API并与大模型进行一次对话,作业截图需包括显存占用情况与大模型回复,参考4......
  • 2024年新版Python零基础从入门到进阶学习路线!
    Python基础初始Python基础语法流程控制-选择结构流程控制-循环结构字符串和正则函数入门函数高级数据结构-列表和元组数据结构-字典和集合IO和文件操作文件操作进阶面向对象入门面向对象三大特性面向对象应用异常处理常用内置模块序列化模块网络请求模块MySQL入门MySQL命......