计算化学公社

 找回密码 Forget password
 注册 Register
Views: 6465|回复 Reply: 0

[xtb] VMD加载xtb优化或动力学轨迹时读入/保留pdb信息的方法

[复制链接 Copy URL]

489

帖子

1

威望

3226

eV
积分
3735

Level 5 (御坂)

发表于 Post on 2020-7-17 11:18:29 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 tjuptz 于 2021-1-20 22:30 编辑

        xtb可以拿来做蛋白等生物体系,这种体系往往用pdb格式的坐标文件,但用xtb做优化或动力学后的轨迹文件都是xyz格式的,丢失了残基等信息。虽然优化之后还顺带输出了一个优化好的原格式结构文件,但就这个文件可能还有bug,比如把ligand每一个原子都价格TER给分开-_-!所以为了一些特殊目的,比如用VMD做一些分析啥的,方法如下:
1、就像gromacs的轨迹载入一样,先载入一个pdb,再删除第一帧(xtb轨迹应该是不包含输入构象,但用了--cma的话轨迹可能jump),然后把xtb轨迹文件加载到这个mol中
  1. mol new original_input.pdb
  2. mol addfile xtb.trj type xyz waitfor all
复制代码


2、基于上述可以把整个轨迹都转化成pdb格式,可能对其他可视化程序有用。通过$sel可以自定义输出组、还可以选择输出的帧、频率等。里面还定义了个分帧输出的功能,可自行更改起始帧、终止帧、每隔多少帧输出。
  1. # convert xtb opt/md trjactory to pdb file

  2. # load template pdb and trajectory into one molid
  3. # if --cma used in xtb, delete frame 0 to avoid jump
  4. mol new pro_IA.pdb
  5. animate delete  beg 0 end 0 skip 0 0
  6. mol addfile xtb.trj type xyz first 0 last -1 step 1 waitfor all 0

  7. set sel [atomselect 0 all]
  8. set n [molinfo 0 get numframes]
  9. animate write pdb trj.pdb beg 0 end [incr n -1] skip 1 waitfor all sel $sel 0

  10. puts "All Done!"

  11. # function to separate each frame into individual pdbfile
  12. proc seppdb {} {
  13. set sel [atomselect 0 all]
  14. set n [molinfo 0 get numframes]
  15. for { set i 0 } { $i < $n } { incr i 50 } {
  16.     $sel frame $i
  17.     $sel update
  18.     $sel writepdb trj_$i.pdb
  19. }
  20. }
复制代码

注:VMD1.9.3输出的pdb应该是没有MODEL字段;xtb6.3.3之后已经可以自己输出pdb格式的轨迹了,且含有MODEL字段。另外ligand被TER分割是因为是用了本来给蛋白用的ATOM标引而非HETATM。




评分 Rate

参与人数
Participants 3
eV +11 收起 理由
Reason
丁越 + 5 赞!
土拔鼠 + 3 谢谢
sobereva + 3

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-7 04:09 , Processed in 0.185718 second(s), 22 queries .

快速回复 返回顶部 返回列表 Return to list