计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: ene
打印 Print 上一主题 Last thread 下一主题 Next thread

[VMD] 求解距离,角度,二面角随时间变化以及分布的VMD脚本

  [复制链接 Copy URL]

376

帖子

0

威望

2623

eV
积分
2999

Level 5 (御坂)

尊贵的地三鲜骑士

16#
发表于 Post on 2019-12-30 11:02:18 | 只看该作者 Only view this author

找到了 非常感谢!
由衷的感谢每一位给与过我帮助的人

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

17#
发表于 Post on 2020-1-1 10:58:22 | 只看该作者 Only view this author
看来楼主大侠不是gmx用户,不然可以用gmx distance angle gangle

224

帖子

5

威望

4548

eV
积分
4872

Level 6 (一方通行)

18#
 楼主 Author| 发表于 Post on 2020-1-1 11:14:33 | 只看该作者 Only view this author
tjuptz 发表于 2020-1-1 10:58
看来楼主大侠不是gmx用户,不然可以用gmx distance angle gangle

确实,我是忠实的NAMD用户
我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

19#
发表于 Post on 2020-1-4 15:15:00 | 只看该作者 Only view this author
大侠,请教个问题,我看您的脚本里都没有用VMD自带的measure bond angle dihedral命令而是通过定义矢量来运算的。
我自己写一个脚本的时候想用measure bond来计算两个selection里的原子距离,提示measure bond: must specify exactly two atoms in a list,请问您是遇到了相同问题才用矢量运算的吗?

224

帖子

5

威望

4548

eV
积分
4872

Level 6 (一方通行)

20#
 楼主 Author| 发表于 Post on 2020-1-4 15:46:14 | 只看该作者 Only view this author
tjuptz 发表于 2020-1-4 15:15
大侠,请教个问题,我看您的脚本里都没有用VMD自带的measure bond angle dihedral命令而是通过定义矢量来运 ...

是的。你去看VMD的手册,上面描述measure bond的时候是这样说的:Returns the distance of the two specified atoms。这条命令只能针对特定的两个原子,不可以是一个selection,对于angle和dihed也是一样的。所以我才写这套脚本。
我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

21#
发表于 Post on 2020-1-4 15:56:15 | 只看该作者 Only view this author
ene 发表于 2020-1-4 15:46
是的。你去看VMD的手册,上面描述measure bond的时候是这样说的:Returns the distance of the two speci ...

其实,我是想遍历两个selection里每对原子的间距,我开始的想法是获得两个selection的原子index的列表L1和L2,再遍历列表,用measure bond $i $j测距,结果出现上述提示。已经改用您的方法了

224

帖子

5

威望

4548

eV
积分
4872

Level 6 (一方通行)

22#
 楼主 Author| 发表于 Post on 2020-1-4 18:24:20 | 只看该作者 Only view this author
本帖最后由 ene 于 2020-1-4 19:34 编辑
tjuptz 发表于 2020-1-4 15:56
其实,我是想遍历两个selection里每对原子的间距,我开始的想法是获得两个selection的原子index的列表L1 ...

这样的结果是因为你没理解measure bond这条命令需要什么类型的参数。手册里面说:The atoms are specified in form of a list of atom indexes。也就是 measure bond后面需要一个含有两个原子序号的列表作为参数。你可以看下面我写的的示例代码:
  1. set a [atomselect top "protein and resid 1"]
  2. set b [atomselect top "protein and resid 2"]
  3. set l1 [$a get index]
  4. set l2 [$b get index]
  5. foreach ind $l1 {
  6.     foreach ind2 $l2 {
  7.         if {$ind != $ind2} {
  8.             set tmp [list $ind $ind2]
  9.             set result [measure bond $tmp]
  10.             puts "$ind $ind2 $result"
  11.         } else {
  12.             puts "$ind $ind2 0"
  13.         }
  14.     }
  15. }
复制代码
我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

23#
发表于 Post on 2020-1-4 21:03:03 | 只看该作者 Only view this author
ene 发表于 2020-1-4 18:24
这样的结果是因为你没理解measure bond这条命令需要什么类型的参数。手册里面说:The atoms are specifie ...

不好意思,上次表述错了,我其实是用的列表作为参数给的,代码如下
  1. foreach i $lc {
  2.         set pair {}
  3.         lappend $pair $i
  4.         foreach j $ln {
  5.                 lappend $pair $j
  6.                 set result [measure bond $pair]
  7.                 puts "$result"
  8.         }
  9. }
复制代码

224

帖子

5

威望

4548

eV
积分
4872

Level 6 (一方通行)

24#
 楼主 Author| 发表于 Post on 2020-1-4 22:11:52 | 只看该作者 Only view this author
本帖最后由 ene 于 2020-1-4 22:14 编辑
tjuptz 发表于 2020-1-4 21:03
不好意思,上次表述错了,我其实是用的列表作为参数给的,代码如下

……你犯了两个错误。首先,lappend的第一个参数不带$号。你如果要用你自己不熟悉的命令,建议先检索好怎么使用。
第二个,你不觉得你那循环写的有逻辑问题吗?你自己看你的第二个foreach,每循环一次,pair变量就会增加一个元素进去……
如果非得要用lappend,你得这么写:
  1. foreach i $lc {
  2.     foreach j $ln {
  3.         set pair {}
  4.         lappend pair $i
  5.         lappend pair $j
  6.         set result [measure bond $pair]
  7.         puts "$i $j : $result"
  8.     }
  9. }
复制代码


我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

25#
发表于 Post on 2020-1-4 22:35:20 | 只看该作者 Only view this author
ene 发表于 2020-1-4 22:11
……你犯了两个错误。首先,lappend的第一个参数不带$号。你如果要用你自己不熟悉的命令,建议先检索好怎 ...

谢谢老师耐心指点,确实用不熟悉的命令没研究透彻,以及这个逻辑确实有问题。学习了!

12

帖子

0

威望

91

eV
积分
103

Level 2 能力者

26#
发表于 Post on 2020-1-4 22:54:54 | 只看该作者 Only view this author
sobereva 发表于 2019-11-28 02:32
势能曲线做个扫描就得到了
如果是自由能面图,把概率和自由能转换一下就有,参考
浅谈PCA与g_covar+g_a ...

sob老师,请问,势能曲线扫描,是用什么扫的啊,跟高斯的扫描不是一回事把

5万

帖子

99

威望

5万

eV
积分
112346

管理员

公社社长

27#
发表于 Post on 2020-1-5 10:45:22 | 只看该作者 Only view this author
ccleng 发表于 2020-1-4 22:54
sob老师,请问,势能曲线扫描,是用什么扫的啊,跟高斯的扫描不是一回事把

如果你是指在gmx里进行扫描,有很多办法。诸如用gentor(http://bbs.keinsci.com/thread-2388-1-1.html)产生旋转二面角不同角度的结构成为多帧xyz轨迹,然后用VMD转成trr格式,再用gmx mdrun加上-rerun算一遍每一帧的能量即可

评分 Rate

参与人数
Participants 3
eV +13 收起 理由
Reason
naoki + 5 如此机智
snljty + 5 机智!
tjuptz + 3 赞!

查看全部评分 View all ratings

北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

12

帖子

0

威望

91

eV
积分
103

Level 2 能力者

28#
发表于 Post on 2020-1-5 19:39:38 | 只看该作者 Only view this author
sobereva 发表于 2020-1-5 10:45
如果你是指在gmx里进行扫描,有很多办法。诸如用gentor(http://bbs.keinsci.com/thread-2388-1-1.html) ...

谢谢sob老师回复,我用amber跑的,amber里面有这样类似的方法吗?如果没有,是不是可以转到gromacs这么做?或者高斯亦可?

5万

帖子

99

威望

5万

eV
积分
112346

管理员

公社社长

29#
发表于 Post on 2020-1-7 18:31:06 | 只看该作者 Only view this author
ccleng 发表于 2020-1-5 19:39
谢谢sob老师回复,我用amber跑的,amber里面有这样类似的方法吗?如果没有,是不是可以转到gromacs这么做 ...

Gaussian里没法直接使用你之前在amber里用的力场,非要用的话往往需要在补参数上折腾一番,很麻烦,还容易弄错

amber我忘了。弄到gmx里搞原理上是可以的
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

12

帖子

0

威望

91

eV
积分
103

Level 2 能力者

30#
发表于 Post on 2020-1-12 00:06:00 | 只看该作者 Only view this author
sobereva 发表于 2020-1-7 18:31
Gaussian里没法直接使用你之前在amber里用的力场,非要用的话往往需要在补参数上折腾一番,很麻烦,还容 ...

明白了,谢谢您!

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-22 19:27 , Processed in 0.373121 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list