计算化学公社

标题: 如何在pdb文件中划分片段 [打印本页]

作者
Author:
ggdh    时间: 2017-2-14 18:29
标题: 如何在pdb文件中划分片段
本帖最后由 ggdh 于 2017-2-14 19:31 编辑

(, 下载次数 Times of downloads: 34)
如图,我用MS 切割了CBP晶体的一个surface,然后建立了一个含有2个分子的超胞。
当我存为pdb的时候这两个分子没有被识别为两个片段,而是作为一个分子。
我的问题是,如何操作,才能把这两个分子在pdb文件中定义为两个残基。有没有自动识别片段并且划分的办法?
或者换一个说法:
如果说packmol能够把小分子pdb,装到一个盒子里面。
那有没有一个程序,能够把一个盒子里面的各种分子,(根据距离或者别的标准)分成不同的片段

作者
Author:
teller3531    时间: 2017-2-15 08:53
你没打开pdb文件看看,是不是一个分子还是两个分子
packmol建的模型能装多个分子,不会成一个整体,但是导入到MS中看起来是一个分子,导出的pdb文件中能看出来原子属于哪个分子。
作者
Author:
ggdh    时间: 2017-2-15 09:35
teller3531 发表于 2017-2-15 08:53
你没打开pdb文件看看,是不是一个分子还是两个分子
packmol建的模型能装多个分子,不会成一个整体,但是导 ...

pdb中有一列是残基序号,如果是packmol建模,每个分子会分配一个不同的残基序号。
如果是是ms中的一个超胞保存成的pdb,所有的分子都是同一个残基序号。这样就不能区分不同的分子。
因此,如果想以一个晶体结构作为初始结构跑动力学的话,建模就会存在无法分割片段的问题
作者
Author:
ggdh    时间: 2017-2-15 19:39
本帖最后由 ggdh 于 2017-2-15 20:07 编辑

还是vmd厉害,照着sob的gromacs讲义研究了半天,终于用vmd+tcl搞定了。

set resl [[atomselect top "all"] get residue]
set numres [lindex [lsort -integer -unique $resl] end]
for {set i 0} { $i <= $numres } { incr i } { [atomselect top "residue $i"] set resid [expr $i+1] }
[atomselect top "all"] writepdb result.pdb
后续问题:
vmd应该是根据原子连接来确定residue或者fragment的。这种连接是写在pdb或者是top文件里面。
如果是一个xyz文件vmd会根据默认的cutoff来连接键。
问题就是在某些特定的情况下需要修改原子连接(根据距离或者其它判据)来划分不同的fragment
这个功能在vmd中能否通过非手动的方式实现?





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