计算化学公社
标题:
VMD加载xtb优化或动力学轨迹时读入/保留pdb信息的方法
[打印本页]
作者Author:
tjuptz
时间:
2020-7-17 11:18
标题:
VMD加载xtb优化或动力学轨迹时读入/保留pdb信息的方法
本帖最后由 tjuptz 于 2021-1-20 22:30 编辑
xtb可以拿来做蛋白等生物体系,这种体系往往用pdb格式的坐标文件,但用xtb做优化或动力学后的轨迹文件都是xyz格式的,丢失了残基等信息。虽然优化之后还顺带输出了一个优化好的原格式结构文件,但就这个文件可能还有bug,比如把ligand每一个原子都价格TER给分开-_-!所以为了一些特殊目的,比如用VMD做一些分析啥的,方法如下:
1、就像gromacs的轨迹载入一样,先载入一个pdb,再删除第一帧(xtb轨迹应该是不包含输入构象,但用了--cma的话轨迹可能jump),然后把xtb轨迹文件加载到这个mol中
mol new original_input.pdb
mol addfile xtb.trj type xyz waitfor all
复制代码
2、基于上述可以把整个轨迹都转化成pdb格式,可能对其他可视化程序有用。通过$sel可以自定义输出组、还可以选择输出的帧、频率等。里面还定义了个分帧输出的功能,可自行更改起始帧、终止帧、每隔多少帧输出。
# convert xtb opt/md trjactory to pdb file
# load template pdb and trajectory into one molid
# if --cma used in xtb, delete frame 0 to avoid jump
mol new pro_IA.pdb
animate delete beg 0 end 0 skip 0 0
mol addfile xtb.trj type xyz first 0 last -1 step 1 waitfor all 0
set sel [atomselect 0 all]
set n [molinfo 0 get numframes]
animate write pdb trj.pdb beg 0 end [incr n -1] skip 1 waitfor all sel $sel 0
puts "All Done!"
# function to separate each frame into individual pdbfile
proc seppdb {} {
set sel [atomselect 0 all]
set n [molinfo 0 get numframes]
for { set i 0 } { $i < $n } { incr i 50 } {
$sel frame $i
$sel update
$sel writepdb trj_$i.pdb
}
}
复制代码
注:VMD1.9.3输出的pdb应该是没有MODEL字段;xtb6.3.3之后已经可以自己输出pdb格式的轨迹了,且含有MODEL字段。另外ligand被TER分割是因为是用了本来给蛋白用的ATOM标引而非HETATM。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3