各位老师好,本人新手,在使用VMD进行可视化分析时,想要求x>0 and x<50 and y>0 and y<50 and z>130 and z<150区域的逐帧原子数,学习一段时间VMD脚本语言后,自行编写了一段脚本,尝试进行输出我所需要的区域的原子数,结果最后输出为全部总数原子,请问各位老师我写的脚本存在什么问题,谢谢老师。在无选定的区域上的原子数是由0逐渐到四千多个分子,而不是体系总分子数10290。
mol new {md.trr} type {trr} waitfor all
for {set i 0} {$i <= 201} {incr i} {
set sel [atomselect top "x > 0 and x < 50 and y > 0 and y < 50 and z > 130 and z < 150"]
animate goto $i
set num_atoms [molinfo top get numatoms]
puts "Frame $i: $num_atoms atoms"
}
作者Author: 丁越 时间: 2024-7-8 09:26
animate goto $i
改为:
$sel frame $i
$sel update
把set sel [atomselect top "x > 0 and x < 50 and y > 0 and y < 50 and z > 130 and z < 150"]挪到for循环外面去作者Author: cgy 时间: 2024-7-8 10:18
set sel [atomselect top "water and x > 0 and x < 50 and y > 0 and y < 50 and z > 130 and z < 150"]
for {set i 0} {$i <= 201} {incr i} {
$sel frame $i
$sel update
puts "Frame $i: [expr [$sel num]]"
}
您好,经过您的指导,和http://bbs.keinsci.com/forum.php ... A%D0%C4%BE%E0%C0%EB这一篇的输出结果的语句参考,已经解决问题,最终输出了该区域的逐帧分子数,再次感谢您!