martini-实例-脂质双分子层
Martini粗粒化模型一开始就是为脂质开发的.(http://jerkwin.github.io/2016/11/03/Martini%E5%AE%9E%E4%BE%8B%E6%95%99%E7%A8%8BLip/
Martini方法的主要思想是, 根据简单的分子构建模块构建可扩展的粗粒化模型, 使用少量的参数和标准的相互作用势达到实用性与可移植性的最大化. Martini大致把全原子(重原子)按照4:1的比例转化为粗粒化珠子, 在2.0版本中, 定义了18种珠子类型来表征其化学特性. 粗粒化珠子具有固定的大小, 相互之间通过相互作用映射进行作用, 映射具有10种不同的作用强度. 由于Martini的模块化, 人们对大量不同的脂质类型进行了参数化, 详情可见官网上的脂质部分。
接下来我们讲建立磷脂双分子层的Martini粗粒化模型, 并研究其性质. 首先, 我们将尝试自发组装形成DSPC双分子层并查看表征磷脂层的各种不同的性质, 比如每个脂分子的面积, 双分子层的厚度, 序参量和扩散. 然后, 我们将改变脂质头基和尾端的特性, 并了解它们如何影响上述性质. 最后, 我们会继续前进, 建立更复杂的多组分双分子层.
- 双层膜的自组装
我们将由模拟盒子中随机分布的脂质分子和水开始, 得到自组装的二硬脂酰-磷脂酰胆碱双分子层(DSPC). 进入spontaneous-assembly子目录. 首先, 根据单个DSPC分子的构型, 构建128个DSPC分子随机分布的构型:
gmx 4.0:genbox -ci dspc_single.gro -nmol 128 -box 7.5 7.5 7.5 -try 500 -o 128_noW.gro
gmx 5.0: gmx insert-molecules -ci DPPC-em.gro -box 7.5 7.5 7.5 -nmol 128 -radius 0.21 -try 500 -o 128_noW.gro
解释:-ci:(insert.gro) (Input)输入分子的结构文件 -nmol:额外插入的分子数量 -box:盒子的尺寸(nm)
-try:Try inserting -nmol times -try times 在500次以内将128个分子插入 -o:指定输出文件名称 -radius:指定范德华截断距离,初始为0.105
noW代表no water
将128_noW.gro打开 如下

接着对体系进行能量最小化,这里注意,教程里提供的文件没有dppc.itp,同时会多包含一个martini2.0的粒子定义,而我们要用的是2.1的,因此正确的做法是注释掉2.1的粒子定义那一行,然后加上一行#include "dppc.itp"。(在这里被卡住好久。。。。)
grompp -f minimization.mdp -c 128_noW.gro -p dspc.top -maxwarn 10 -o dspc-min-init.tpr
mdrun -deffnm dspc-min-init -v -c 128_minimised.gro
此处不涉及4.0与5.0的区别 注意mdrun中的-v为:Be loud and noisy,在这里可以使用,但是在最终MD中一般不要使用。
NOTE:
Replacing old mdp entry 'nstxtcout' by 'nstxout-compressed'
Replacing old mdp entry 'xtc_precision' by 'compressed-x-precision'
每个脂质分子添加6个粗粒度水分子(共24个全原子水)
gmx 4.0: genbox -cp 128_minimised.gro -cs water.gro -o waterbox.gro -maxsol 768 -vdwd 0.21
gmx 5.0:gmx solvate -cp 128_minimised.gro -cs water.gro -o waterbox.gro -maxsol 768 -radius 0.21
-cp:(protein.gro) (Input, Optional) 输入结构文件 -cs:(spc216.gro) (Input, Library) 输入水结构文件 -o:输出文件
-maxsol:如果水分子适合该盒子,最多填入的水分子数 -radius:默认的范德华(截断)距离
然后再次进行能量最小化(保证dspc.top里面的水珠子与增加到体系里面的相匹配):这里会出现一个Fatal error,waterbox.gro 2304 atoms not match dppc.top 1536 atoms
这是因为刚刚加入的水分子,在dppc.top中是被注释掉的
[ molecules ]
DPPC 128
;W 768
删掉那个分号后,1536+768刚好等于2304,程序就可以正常运行了。(又是一个大坑。。。)
grompp -f minimization.mdp -c waterbox.gro -p dspc.top -maxwarn 10 -o dspc-min-solvent.tpr
mdrun -deffnm dspc-min-solvent -v -c minimised.gro
这样一来,就确保了dspc.top里面的水珠子与增加到体系里面的相匹配
现在,可以准备做自组装MD模拟了,时间为0.03ps*1000000=30ns,跑起来还是很快的,我用的是nohup,后台运行而不是-v:
gmx grompp -f martini_md.mdp -c minimized.gro -p dppc.top -o dppc-md.tpr
gmx mdrun -deffnm dppc-md -v
这样我们就得到了自组装的双层脂质膜:如下图,前两张是waterbox.gro的,也就是脂质加水之后;后两张是MD模拟之后的,也就是自组装结束的图。




martini-实例-脂质双分子层的更多相关文章
- golang martini 源码阅读笔记之martini核心
继上一篇关于inject注入的笔记,理解了martini的关键核心之一:依赖注入.注入回调函数,由运行时进行主动调用执行.这一篇主要是注解martini的骨架martini.go的实现,下面先从一个简 ...
- 『Golang』Martini框架入门
本文介绍golang中的优秀web开发框架martini! 序 Martini框架是使用Go语言作为开发语言的一个强力的快速构建模块化web应用与服务的开发框架.Martini是一个专门用来处理Web ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- go语言从零学起(四) -- 基于martini和gorilla实现的websocket聊天实例
如果只是想了解chat的实现方式,在gorilla和revel框架里面都有完整的chat实例可以提供参考.本篇讲解的是,如何基于martini实现websocket的聊天. 配置步骤: 1 已经安装了 ...
- golang martini 源码阅读笔记之inject
martini是go语言写的一个超级轻量的web开源框架,具体源码可在github搜索找到.13年那会开始接触go语言时有稍微看过这个框架,由于之后没有继续使用go就慢慢忽略了,最近由于手头项目可能会 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
随机推荐
- Python+Appium自动化测试(12)-通过坐标定位元素
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝 ...
- linux配置定时任务cron/定时服务与自启动
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
- nginx优化:worker_processes/worker_connections/worker_rlimit_nofile
一,优化nginx的worker进程数 1,worker_processes应设置为多少? worker_processes 4; 如何设置这个值: worker_processes默认值是1,一般要 ...
- Python中while循环初识
基本结构 while 条件: 循环体 基本原理: 1.先判断条件是否为True 2.如果是True进入循环体 3.执行到循环体的底部 4.继续判断条件,条件为True,再次进入 ...
- Helium文档10-WebUI自动化-Text识别网页上的任何文本或标签
前言 Text关键字的作用是识别网页上的文字,在一般UI查找中使用率非常高,但是需要注意,如果网页上有相同的文字,那么只能识别到第一个 入参介绍 以下是Text的源码 有5个如参:后面4个参数是上下左 ...
- vue知识点15
1.回调地狱的三种方案:函数 promise async await 2. 子组件与子组件之间的传递: 可以借用公共父元素.子组件A this.$emit(" ...
- MVC联想查询绑定下拉框
前言 在做搜索时,输入些内容时需要弹出下拉框给用户进行选择,极大的方便了用户,会给用户带来不一样的体验 Controller public ActionResult SSAC(string UserN ...
- Java 等待/通知机制
等待/通知的目的是确保等待线程从wait()方法返回时能够感知到通知线程对变量所做出的的修改: 等待方遵循如下原则: 1.获取对象的锁 2.如果条件不满足,那么调用对象的wait()方法,被通知后任要 ...
- IDEA提示类注释的wrong tag警告的解决办法
当创建一个类的时候,给类写上注释时,出现类似于"Wrong tag 'date' less... (Ctrl+F1)"这种警告,解决方式是: alt + enter -> a ...
- typora的快捷键文档
一:菜单栏 文件:alt+F 编辑:alt+E 段落:alt+P 格式:alt+O 视图:alt+V 主题:alt+T 帮助:alt+H 二:文件 新建:Ctrl+N 新建窗口:Ctrl+Shift+ ...