将Material Studio的xtd轨迹文件导出为xyz轨迹文件的方法(2)
时间:2019-05-13 09:56 来源:互联网 作者:Kim 点击:次
$atom->Z); 使用时先将这些内容复制到一个文本文件里,后缀名改为.pl。然后在MS里将这个.pl加入到项目中。要转换哪个目录下的xtd文件就把这pl文件挪到哪个目录中,并且把my $doc = $Documents{"./benzene.xtd"}; 当中的文件名改成要转换的文件名。之后,保持此脚本文件窗口处于激活状态,选tools-scripting-debug(或者直接按F5,或者按工具栏的蓝色三角按钮)就开始对xtd文件进行转换,转换结束后在当前目录下会输出trj.txt文件。将其后缀改为.xyz之后就能被VMD等程序直接读取了。 debug模式对于大体系、帧数较多的轨迹转换起来颇慢,可以用tools-scripting-Run on server模式来运行,这样转换速度明显快得多,trj.txt将会生成到新的目录,当前目录下的其它文件也会被强行复制过去一份。 此脚本默认转换所有帧。如果想转换指定帧数范围,就把my $framebegin=1;和my $frameend=10;改成自定的起止帧号就行了,需要先将my $frameend=10;前面的注释去掉。 如果是周期性体系,那么在MS当中看起来轨迹是什么样转换过去就是什么样。比如,如果在display style-lattice中在某个方向上多显示一个周期,那么转换出的轨迹在相应方向上也会多出一倍原子。Default、In-Cell、Original的显示模式下转换出的原子坐标也会相应地可能有所不同。 上面的这个名为xtd2xyz脚本只能转换全原子模拟的轨迹,如Forcite的xtd轨迹,却不能转换粗粒化模拟的轨迹,如Mesocite的以bead描述粒子的xtd轨迹。我将之修改成下面的xtdbead2xyz脚本,专门用来转换粗粒化模拟的轨迹(但不能转换全原子的),用法同前。
use strict; #open the multiframe trajectory structure file or die if (!$doc) {die "no document";} my $trajectory = $doc->Trajectory; if ($trajectory->NumFrames>1) { print "Found ".$trajectory->NumFrames." frames in the trajectory\n"; # loops over the frames |
- 上一篇:华师最具影响力的校园网站
- 下一篇:年轻妈妈即时消费报告:小镇妈妈强势崛起