计算化学公社

标题: 如何提取团簇中每个分子的坐标? [打印本页]

作者
Author:
ABetaCarw    时间: 2021-3-10 15:45
标题: 如何提取团簇中每个分子的坐标?
我使用Forcite跑出来一个100个A分子组装成的球,现在需要提取出球中每个分子的坐标用来做进一步的分析。这个球可以导出XYZ坐标或者其他任意MS支持的格式。
请问可以使用何种方法达成这个目的。如果使用 perl 脚本,求前辈指点编程思路。


作者
Author:
naoki    时间: 2021-3-11 09:28
是不是可以M$输出放到vmd中挖出球,保存成pdb再导入M$
http://sobereva.com/406
作者
Author:
ABetaCarw    时间: 2021-3-11 09:44
naoki 发表于 2021-3-11 09:28
是不是可以M$输出放到vmd中挖出球,保存成pdb再导入M$
http://sobereva.com/406

感谢回复。球可以直接挖,选中某种分子内才有的原子然后使用MS中的select fragment就能把球全选然后导出。我现在遇到的问题是 如何提取出球内每个分子的坐标。我是想研究 球内每个分子的构象问题。
作者
Author:
winnerwill    时间: 2021-3-11 11:54
ABetaCarw 发表于 2021-3-11 09:44
感谢回复。球可以直接挖,选中某种分子内才有的原子然后使用MS中的select fragment就能把球全选然后导出 ...

将球的坐标载入VMD后:

set all [atomselect top "all"]
set n [llength [lsort -unique -integer [$all get fragment]]]
for { set i 0 } { $i < $n } { incr i } {
  set sel [atomselect top "fragment $i"]
  $sel writexyz mol_$i.xyz
}





作者
Author:
funok    时间: 2021-3-13 12:55
本帖最后由 funok 于 2021-3-13 13:57 编辑

my $doc=$Documents{"test.xsd"};
my $atoms=$doc->UnitCell->Atoms;
my $atom=undef;
foreach my $atom(@$atoms){
printf "%s %f %f %f\n", $atom->ElementSymbol,    $atom->X,    $atom->Y,    $atom->Z;
}

或者,把信息写到学习表中。





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3