标题: source tcl脚本时出现bug [打印本页] 作者Author: lucl13 时间: 2020-2-23 18:21 标题: source tcl脚本时出现bug 我的tcl脚本如下:
------------------
set outfile [open receptor.txt w]
set sel [atomselect 1 "all"]
for {set i 0} {$i < 20} {incr i} {
$sel frame $i
$sel update
set center [measure center $sel]
puts $center
set xc [lindex $center 0]
set yc [lindex $center 1]
set zc [lindex $center 2]
set near [atomselect 0 "same residue as ((x-$xc)^2+(y-$yc)^2+(z-$zc)^2)<7^2"]
set nres [lsort -unique [$near get resid]]
puts $outfile $nres
}
close $outfile
-----------------
当我把该脚本在tk控制台中source执行时,”set center [measure center $sel]“这一行中的”sel“没有办法更新相应的帧数,使用的sel仍然时第0帧,尽管我已经在上面写了更新帧数的代码。但是,我将代码复制到tk控制台执行时却能够得到正确的结果。这是为什么呢?是一个bug还是我的脚本有问题。
------
mol new $receptor.pdb
for {set i 0} {$i < 16} {incr i} {
set ligand [lindex $ligands $i]
after 50 mol new $receptor-$ligand.pdb
}
for {set j 0} {$j < 16} {incr j} {
set ligand [lindex $ligands $j]
set outfile [open $receptor-$ligand.txt w]
set ligand_i [expr $j+1]
set sel [atomselect $ligand_i "all"]
for {set i 0} {$i < 20} {incr i} {
$sel frame $i
$sel update
set center [measure center $sel]
set xc [lindex $center 0]
set yc [lindex $center 1]
set zc [lindex $center 2]
set near [atomselect 0 "same residue as ((x-$xc)^2+(y-$yc)^2+(z-$zc)^2)<7^2"]
set nres [lsort -unique [$near get resid]]
puts $outfile $nres
}
close $outfile
}