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-实例-脂质双分子层的更多相关文章

  1. golang martini 源码阅读笔记之martini核心

    继上一篇关于inject注入的笔记,理解了martini的关键核心之一:依赖注入.注入回调函数,由运行时进行主动调用执行.这一篇主要是注解martini的骨架martini.go的实现,下面先从一个简 ...

  2. 『Golang』Martini框架入门

    本文介绍golang中的优秀web开发框架martini! 序 Martini框架是使用Go语言作为开发语言的一个强力的快速构建模块化web应用与服务的开发框架.Martini是一个专门用来处理Web ...

  3. 最近学习工作流 推荐一个activiti 的教程文档

    全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...

  4. go语言从零学起(四) -- 基于martini和gorilla实现的websocket聊天实例

    如果只是想了解chat的实现方式,在gorilla和revel框架里面都有完整的chat实例可以提供参考.本篇讲解的是,如何基于martini实现websocket的聊天. 配置步骤: 1 已经安装了 ...

  5. golang martini 源码阅读笔记之inject

    martini是go语言写的一个超级轻量的web开源框架,具体源码可在github搜索找到.13年那会开始接触go语言时有稍微看过这个框架,由于之后没有继续使用go就慢慢忽略了,最近由于手头项目可能会 ...

  6. js-静态、原型、实例属性

    本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...

  7. ZIP压缩算法详细分析及解压实例解释

    最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...

  8. EntityFramework Core 1.1是如何创建DbContext实例的呢?

    前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...

  9. redis集成到Springmvc中及使用实例

    redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...

随机推荐

  1. 推荐一款IDEA神器!一键查看Java字节码以及其他类信息

    由于后面要分享的一篇文章中用到了这篇文章要推荐的一个插件,所以这里分享一下.非常实用!你会爱上它的! 开始推荐 IDEA 字节码查看神器之前,先来回顾一下 Java 字节码是啥. 何为 Java 字节 ...

  2. 多测师讲解selenium--常用关键字归纳-_高级讲师肖sir

    常见的定位方式: 1.通过id定位 id=kw 2.通过name定位 name=wd 3.通过xpath相对路径定位:xpath=//*[@id="kw"] 4.通过两个属性值定位 ...

  3. day25 Pyhton学习 约束和异常处理

    一.类的约束 约束是对类的约束 有两种方法: 1.提取一个父类,在父类中给出一个方法,并且在方法中不给出任何代码,直接抛异常 class Base: def login(self): raise Ex ...

  4. 【二分】CF Round #587 (Div. 3)E2 Numerical Sequence (hard version)

    题目大意 有一个无限长的数字序列,其组成为1 1 2 1 2 3 1.......1 2 ... n...,即重复的1~1,1~2....1~n,给你一个\(k\),求第\(k(k<=10^{1 ...

  5. go视频提取音频

    package main import ( "bytes" "fmt" "log" "os" "os/exec ...

  6. xshell多窗口同时执行输入命令

  7. centos8平台安装zookeeper3.6集群

    一,规划三台zk服务器构成集群 ip:172.18.1.1 机器名:zk1 对应myid: 1 ip:172.18.1.2 机器名:zk2 对应myid: 2 ip:172.18.1.3 机器名:zk ...

  8. UML类图还不懂?来看看这版乡村爱情类图,一把学会!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.码场心得

  9. Prometheus入门教程(三):Grafana 图表配置快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/sA0nYevO8yz6QLRz03qJSw 前面我们使用 Prometheus + Grafana ...

  10. VirtualXposed结合justTrustMe 模块傻瓜式破解app没法抓包问题

    一.首先就是按照这两个apk 声明仅供学习 justTrustMe 链接:https://pan.baidu.com/s/1av3oaez4y4n6a9C1I0VsAg 提取码:mjqg Virtua ...