我有一个 229 个残基蛋白质,我需要从残基 1-12 的质心(单独)测量到每个其他原子,从残基 13 开始,我也需要每个帧。到目前为止我有这个
set pro [atomselect top "resid 1 and not water and not ion"]
set atom [atomselect top "index 207"]
set nf [molinfo top get numframes]
set outfile [open test207.dat w]
for {set i 0} {$i < $nf} {incr i} {
puts "frame $i of $nf"
$pro frame $i
$atom frame $i
set com1 [measure center $pro weight mass]
set com2 [measure center $atom weight mass]
set distance [veclength [vecsub $com1 $com2]]
puts $outfile "$i $distance"
}
这在一定程度上可以测量残基 13 的第一个原子与所有帧的残基 1 的 com 之间的距离,但我不确定如何放置第二个循环,该循环将为每个原子循环,而不是运行脚本数千次(每次更改原子数)导致数千个文件。
有没有办法在同一个脚本中循环每个原子和每个帧?