计算化学公社

标题: 如何基于分子动力学轨迹文件画某些原子的运动轨迹? [打印本页]

作者
Author:
nusiew    时间: 2022-4-12 10:02
标题: 如何基于分子动力学轨迹文件画某些原子的运动轨迹?
本帖最后由 nusiew 于 2022-4-12 10:10 编辑

如图所示,如何基于分子动力学轨迹文件画某些原子的运动轨迹??有哪些软件可以画?
(, 下载次数 Times of downloads: 57)
https://doi.org/10.1029/2019GL082722

作者
Author:
sobereva    时间: 2022-4-12 12:54
显示粒子运动轨迹的VMD脚本
http://sobereva.com/65
作者
Author:
tangzi_via    时间: 2022-8-30 16:37
sobereva 发表于 2022-4-12 12:54
显示粒子运动轨迹的VMD脚本
http://sobereva.com/65

sob 老师您好!请问一下显示粒子运动轨迹的这个VMD脚本,能否把时间元素加上,使柱子是一个渐变的颜色。才开始学,希望得到您的帮助
作者
Author:
sobereva    时间: 2022-8-30 18:09
tangzi_via 发表于 2022-8-30 16:37
sob 老师您好!请问一下显示粒子运动轨迹的这个VMD脚本,能否把时间元素加上,使柱子是一个渐变的颜色。 ...

多帧叠加显示,并且coloring method用timestep

(, 下载次数 Times of downloads: 42)

作者
Author:
tangzi_via    时间: 2022-9-13 18:38
sobereva 发表于 2022-8-30 18:09
多帧叠加显示,并且coloring method用timestep

非常感谢sob老师的回复!
作者
Author:
landian666    时间: 2023-6-8 16:44
sobereva 发表于 2022-4-12 12:54
显示粒子运动轨迹的VMD脚本
http://sobereva.com/65

想请教sob老师,我根据这个方法做出了轨迹图,然后需要怎么修改脚本能够将生成的轨迹和原始分子一起导出一个pdb的构型文件那?以便用来估计粒子轨迹的可及运动半径,也方便后期作图。
作者
Author:
sobereva    时间: 2023-6-9 06:22
landian666 发表于 2023-6-8 16:44
想请教sob老师,我根据这个方法做出了轨迹图,然后需要怎么修改脚本能够将生成的轨迹和原始分子一起导出 ...

看不懂你的意思
如果你想用pdb格式记录轨迹,save coordinate的时候选上所有帧,格式选pdb就行了。但pdb格式记录轨迹尺寸很大,很不推荐
作者
Author:
landian666    时间: 2023-6-9 09:16
sobereva 发表于 2023-6-9 06:22
看不懂你的意思
如果你想用pdb格式记录轨迹,save coordinate的时候选上所有帧,格式选pdb就行了。但pdb ...

不好意思,没有表达清楚,我的意思是,在利用这个方法绘制出一个原子的轨迹后,如下图,有办法通过修改脚本或者别的方法,将图中红色轨迹以及原始的分子导出一个pdb文件吗?以便之后可以直接导入这个pdb观看整个三维状态。


作者
Author:
sobereva    时间: 2023-6-10 07:14
landian666 发表于 2023-6-9 09:16
不好意思,没有表达清楚,我的意思是,在利用这个方法绘制出一个原子的轨迹后,如下图,有办法通过修改脚 ...

修改脚本,把各帧里某个原子的坐标作为导出的xyz文件里的不同原子坐标,则载入xyz文件后直接能看到所有红色原子
作者
Author:
landian666    时间: 2023-6-11 11:33
sobereva 发表于 2023-6-10 07:14
修改脚本,把各帧里某个原子的坐标作为导出的xyz文件里的不同原子坐标,则载入xyz文件后直接能看到所有红 ...

尝试按照老师说的原则修改了一下,如下,一直没有成功,想请教老师具体还需要怎么修改,谢谢!
proc showtrj {fps1 fps2 space selection output} {
    set selnow [atomselect top $selection frame $fps1]
    set selnext [atomselect top $selection frame $fps1]
    set num [$selnow num]
   
    set outfile [open $output w]
   
    for {set fps $fps1} {$fps < $fps2} {incr fps $space} {
        $selnow frame $fps
        $selnext frame [expr $fps + $space]
        $selnow update
        $selnext update
        
        puts $outfile "MODEL        $fps"
        for {set i 0} {$i < $num} {incr i 1} {
            set x [lindex [$selnext get x] $i]
            set y [lindex [$selnext get y] $i]
            set z [lindex [$selnext get z] $i]
            set atomname [lindex [$selnext get name] $i]
            set resid [lindex [$selnext get resid] $i]
            set segname [lindex [$selnext get segname] $i]
            draw line [lindex [$selnow get {x y z}] $i] [lindex [$selnext get {x y z}] $i]
            draw sphere [lindex [$selnext get {x y z}] $i] radius 0.12
            puts $outfile "ATOM  $i  $atomname  $segname  $resid  $x  $y  $z  1.00  0.00"
        }
        puts $outfile "ENDMDL"
        
        puts "Frame $fps done"
    }
   
    close $outfile
}





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3