Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

Pi-Pi堆积距离和堆积角度的计算

已有 9149 次阅读 2018-8-30 10:59 |系统分类:科研笔记

 

  • 2018-08-29 21:51:38

Pi-Pi堆积的概念和意义

Pi-Pi堆积的表征量

表征Pi-Pi堆积的物理量一般使用两个, 距离和角度. 距离为某一组原子质心或中心到另一组原子所在平面的距离, 角度为两组原子所在平面之间的夹角. 计算这两个量就需要知道如何计算一组原子所在平面的方程. 对于完全刚性的平面组原子, 三个非共线原子就可以确定其所在的平面方程(平面的三点式方程). 对于近似刚性的原子组, 则需要通过多元线性拟合来确定平面方程.

有了平面方程 ax+by+cz+d=0,n⃗ =(a,b,c)ax+by+cz+d=0,n→=(a,b,c), 可计算空间一点 r⃗ (x,y,z)r→(x,y,z) 到平面的距离

d=r⃗ n⃗ +d|n⃗ |d=r→⋅n→+d|n→|

也可计算此点到平面的垂足

v⃗ =r⃗ n⃗ r⃗ +d|n⃗ |2n⃗ v→=r→−n→⋅r→+d|n→|2n→

Pi-Pi堆积量的计算

gmx analyze可以进行多元线性拟合得到平面方程. 通过脚本调用即可, 虽然麻烦但不困难, 就不再示例了.

这里我们用vmd加上tcl数学库来进行计算. vmd并没有自带这个库, 须自行安装. 我们只需要其中的线性代数库linalg.tcl, 其中包含了多元线性拟合的奇异值分解算法leastSquaresSVD, 使用倒也方便. 这里多说一句, vmd加上tcl的数学库后基本可以进行各式分析了, 虽然速度未必佳.

既然是决定用vmd进行分析了, 那顺便也学习一下vmd的绘图方法吧. 将计算结果实时显示出来, 也更容易确定计算结果是否正确.

代码

群文件/脚本分享/pistack.zip

使用方法

得到了轨迹以后, 先对轨迹进行处理: 分子完整化, , 然后就可以计算Pi-Pi堆积量了.

  1. 运行MD模拟, 获得轨迹

  2. 对轨迹进行处理: 先gmx trjconv -pbc whole完整化分子, 再gmx trjconv -center -fit rot+trans对分子进行居中叠合

  3. vmd载入轨迹: vmd conf.gro traj.xtc

  4. 修改pistack.tcl中的两个原子组

  5. vmd命令窗口执行source pistack.tcl

  6. 分析得到的输出文件pistack.xvg, 也可以播放轨迹, 查看每一帧计算结果

示例

两个苯分子的模拟

输出文件pistack.xvg中每行数据会依次列出

  • 轨迹帧的编号

  • 每帧中每组原子的中心: Xcnt(1) Ycnt(1) Zcnt(1)Xcnt(2) Ycnt(2) Zcnt(2)

  • 每组原子所在平面方程的系数: a(1) b(1) c(1)a(2) b(2) c(2)

  • 两平面的夹角: A(n1,n2)

  • 第一组原子中心到第二组原子所在平面的距离: D(c1,p2)

  • 第二组原子中心到第一组原子所在平面的距离: D(c2,p1).

存在问题

  1. 轨迹过大时速度不佳

  2. 考虑到周期性边界条件, 所得距离和角度可能存在不连续性

  3. vmd每帧绘制时draw material Transparent似乎不起作用? 必须存在错误语句才可以?

  4. tcl是totally command language, 也是toy command language, 太(Tai)差(Cha)了(Le)

◆本文地址: https://jerkwin.github.io/2018/08/29/Pi-Pi堆积距离和堆积角度的计算/, 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆



https://blog.sciencenet.cn/blog-548663-1131843.html

上一篇:科技绘图的调色板
下一篇:模拟命令行操作的svg动画
收藏 IP: 72.221.39.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-26 19:30

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部