计算化学公社

 找回密码 Forget password
 注册 Register
Views: 9722|回复 Reply: 5

[VMD] 并行计算溶剂可及表面积(SASA)的VMD脚本sasa-dmp.tcl

[复制链接 Copy URL]

224

帖子

5

威望

4466

eV
积分
4790

Level 6 (一方通行)

发表于 Post on 2020-2-14 18:47:55 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 ene 于 2020-3-2 12:13 编辑

        2020.03.02更新:sasa-dmp-v1.1.tcl,可在6楼下载。无特殊情况请使用最新版。
        楼主最近在研究中用到了溶剂可及表面积(SASA)来对分子特征进行一些表征,但同时也发现,利用自写的Tcl脚本结合VMD计算SASA时,只能做串行计算,体系稍微大一些或者轨迹稍微长一些时计算起来简直是龟速……因此楼主开始考虑能不能把Tcl脚本中的计算过程做并行化。因为普通的Tcl解释器只能利用一个cpu核心进行计算,所以如果需要解释器进行并行计算,必须借助Tcl扩展包进行实现,例如使用Thread库:https://wiki.tcl-lang.org/page/Tcl+and+threads。但是使用这个库有前提,也就是Tcl解释器在进行编译时必须打开多线程支持(在configure时加入--enable-threads选项)。不巧的是VMD内置的Tcl解释器并没有启动这一选项,导致VMD根本没法使用Thread库(没尝试直接源码编译VMD,或许通过改源码的方式可以实现启动多线程支持)。(楼主千辛万苦编译好Thread库,在VMD console里面输入package require Thread时却只得到一条报错:Tcl core wasn't compiled for threading。f**k VMD)
        无奈之下楼主又在VMD mail list中搜索了相关信息,结果发现了一封邮件里面提到可以在后台启动多个VMD进行来实现并行化计算:https://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/19665.html。这种方法很脏,看起来也比较难做线程间的通信,但是由于SASA计算的特点是每计算一个结构时,并不依赖上一个结构的结果,所以这种方法可能正合用。
        然后楼主就写出了sasa-dmp.tcl脚本,可以在这里下载。需要注意的是楼主没在windows下面测试过,linux系统下可用:
sasa-dmp.tar.xz (1.49 KB, 下载次数 Times of downloads: 62)

评分 Rate

参与人数
Participants 12
威望 +1 eV +47 收起 理由
Reason
pipia + 2 谢谢
woller + 2 精品内容
naoki + 5 你太可爱
ezez + 5 赞!
Novice + 5 好物!
zsu007 + 5 赞!
lijiayisjtu + 3 赞!
snljty + 5 也是蛋疼,好用就得
sobereva + 1
ggdh + 5 骚操作啊
linqiaosong + 5 紧凸大法好
冰释之川 + 5 紧凸大法好!

查看全部评分 View all ratings

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

423

帖子

0

威望

2491

eV
积分
2914

Level 5 (御坂)

小白

发表于 Post on 2020-2-14 20:45:24 | 显示全部楼层 Show all
很强,mark一下。顺便请教下楼主zeo++如何并行计算,以及sob的电子版ppt是怎么得到的
No problem is insoluble in all conceivable circumstances.

1188

帖子

5

威望

2758

eV
积分
4046

Level 6 (一方通行)

发表于 Post on 2020-2-14 21:01:20 | 显示全部楼层 Show all
naoki 发表于 2020-2-14 20:45
很强,mark一下。顺便请教下楼主zeo++如何并行计算,以及sob的电子版ppt是怎么得到的

卢老师以前好像发过这张图

224

帖子

5

威望

4466

eV
积分
4790

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-2-14 21:12:50 | 显示全部楼层 Show all
naoki 发表于 2020-2-14 20:45
很强,mark一下。顺便请教下楼主zeo++如何并行计算,以及sob的电子版ppt是怎么得到的

zeo++是啥啊,以及这张图是以前sob老师回复我帖子里面的内容
我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

312

帖子

1

威望

3106

eV
积分
3438

Level 5 (御坂)

发表于 Post on 2020-2-21 16:41:51 | 显示全部楼层 Show all
强!!!!

224

帖子

5

威望

4466

eV
积分
4790

Level 6 (一方通行)

 楼主 Author| 发表于 Post on 2020-3-2 12:09:44 | 显示全部楼层 Show all
本帖最后由 ene 于 2020-3-2 12:19 编辑

今日更新:sasa-dmp-v1.1.tcl
修复了轨迹总帧数不能被核心数整除时会丢掉几帧的bug,加入了usecatdcd选项,对于大轨迹,在可以使用CatDCD插件进行轨迹分割,从而避免了轨迹过大时内存不够的问题。新参数如下:
  1. set usecatdcd on     # 是否使用catdcd (on/off)
  2. set catdcdexe catdcd # catdcd 可执行文件名称。如果你的VMD版本大于1.9.3,这一项可以设置为:$env(VMDDIR)/plugins/LINUXAMD64/bin/catdcd5.2/catdcd。如不使用catdcd可以保持默认值
复制代码
从此版本开始,vmdexec参数被改为vmdexe,定义与原先相同。
sasa-dmp-v1.1.tcl (6.42 KB, 下载次数 Times of downloads: 60)
我需要一些假日,但我不希望每天都是假日。因为我没有承担痛苦,因为那不是真正的自由。

本版积分规则 Credits rule

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

GMT+8, 2023-2-2 22:57 , Processed in 0.315649 second(s), 25 queries .

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