|
本帖最后由 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。
|
评分 Rate
-
查看全部评分 View all ratings
|