计算化学公社
标题:
VMD实现动态选择蛋白附近的磷脂分子计算序参量的tcl代码实现问题
[打印本页]
作者Author:
柠檬好酸
时间:
2020-9-22 11:28
标题:
VMD实现动态选择蛋白附近的磷脂分子计算序参量的tcl代码实现问题
proc orderparam-c3 { result { seltext all } } {
upvar $result arr
#获得要计算的帧数
set n [molinfo top get numframes]
#以POPC为例。计算18个C原子
for { set i 2 } { $i <= 20 } { incr i } {
puts $i
set sum 0.0
set nh 0
#每个C原子的所有帧循环
for { set frame 0 } { $frame < $n } { incr frame } {
#选择距离蛋白5A 以内的磷脂
set dynamic_lipid [atomselect top "($seltext) and lipid and same resid as within 5 of protein"]
$dynamic_lipid frame $frame
$dynamic_lipid update
set cp [atomselect top "($dynamic_lipid) and name C3$i"]
if { [$cp num] == 0 } {
puts "skipping $i"
continue
}
#选择与C相连的HX、HY
set hx [atomselect top "($dynamic_lipid) and name H${i}X"]
set hy [atomselect top "($dynamic_lipid) and name H${i}Y"]
#set hz [atomselect top "($dynamic_lipid) and name H${i}Z"]
$cp frame $frame
$hx frame $frame
$hy frame $frame
$cp update
$hx update
$hy update
#有num个磷脂分子被选中
set nres [$cp num]
#获得C原子坐标
set cpx [$cp get x]
set cpy [$cp get y]
set cpz [$cp get z]
#C-H坐标差
set hxx [vecsub $cpx [$hx get x]]
set hxy [vecsub $cpy [$hx get y]]
set hxz [vecsub $cpz [$hx get z]]
#计算与Z轴的夹角余弦平方
foreach dx $hxx dy $hxy dz $hxz {
set norm2 [expr {$dx*$dx + $dy*$dy + $dz*$dz}]
set sum [expr {$sum + $dz*$dz/$norm2}]
}
incr nh $nres
#如果C上有HY
if { [$hy num] != 0 } {
set hyx [vecsub $cpx [$hy get x]]
set hyy [vecsub $cpy [$hy get y]]
set hyz [vecsub $cpz [$hy get z]]
foreach dx $hyx dy $hyy dz $hyz {
set norm2 [expr {$dx*$dx + $dy*$dy + $dz*$dz}]
set sum [expr {$sum + $dz*$dz/$norm2}]
}
incr nh $nres
}
}
#序参量计算
set arr($i) [expr {-1.5*$sum/$nh + 0.5}]
}
}
复制代码
想请教下Sob老师,动态选择5A以内磷脂分子这部分代码有没有问题,代码改编自
https://www.ks.uiuc.edu/Research ... 5364/orderparam.tcl
以及为什么mailing list 里的代码 并没有每一帧都使用 $sel update
作者Author:
sobereva
时间:
2020-9-22 18:18
有没有问题,把选择语句直接在representation里设置成选区,显示一下就知道了
update是使用动态选区比如x<5这样才需要,这会把选择的粒子的数目、序号更新为当前帧。如果是静态选区,update是多余的。
作者Author:
柠檬好酸
时间:
2020-9-23 08:38
sobereva 发表于 2020-9-22 18:18
有没有问题,把选择语句直接在representation里设置成选区,显示一下就知道了
update是使用动态选区比如 ...
感谢sob老师,原来update是这样的,学习了
作者Author:
消瘦二哥
时间:
2021-12-24 10:33
本帖最后由 消瘦二哥 于 2021-12-24 10:36 编辑
在
[size=1.4em]
使用Multiwfn做aNCI分析图形化考察动态过程中的蛋白-配体间的相互作用
一文中,
”现在选择File - Save coordinate,selected atoms填resname MOL or protein same resid as within 3.5 of resname MOL,保存的文件类型选xyz,然后点Save按钮,将这个局部区域保存为cluster.xyz”
请问Sob老师,为什么保存之后,仅仅应用到了第一帧的原子ID,后面的帧数没有自动应用到每一帧(备注:已经在vmd中选择了update到每一帧)。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3