使用 MDAnalysis 从 MD 轨迹文件中提取一条链
Extracting one chain from MD trajectory file using MDAnalysis
我想使用 MDAnalysis 从我的分子动力学轨迹(xtc 文件)中提取一条链。我希望它非常简单,但是发生了错误,我不确定为什么会得到它。
这是代码:
import MDAnalysis as mda
u = mda.Universe('trajectory1.xtc')
protein = u.select_atoms('segid A')
protein.write('trajectory1-A.xtc')
它 returns 错误:
AttributeError: AtomGroup 没有属性 segids
在 MDAnalysis 页面上,"segid" 与“.select_atoms”一起使用。是我有轨迹文件而不是经典PDB文件的问题吗?
据说在Universe
造物中(我感觉像上帝)你必须提供拓扑结构和轨迹。据我所知,xtc 文件只包含轨迹(数字的三元组,原子的坐标),但不包含拓扑。没有拓扑结构,既没有残基也没有段。
检查您是否有一些细分:
u.atoms.segments
list(u.atoms.segments)
可能会 return 一个空集。
在这种情况下,您应该为 Universe
创建一个包含您感兴趣的网段的合适拓扑。
类似于:
import MDAnalysis as mda
u = mda.Universe('mytopology.pdb', 'trajectory1.xtc')
protein = u.select_atoms('segid A')
现在,您可以traverse/process您认为合适的任何方式的轨迹。
所以,我修改了代码,因为我发现使用轨迹文件需要稍微修改代码,否则它只会提取轨迹的一帧,但有了这个它会提取整个轨迹一链:
import MDAnalysis as mda
u = mda.Universe('mytopology.pdb', 'trajectory1.xtc')
protein = u.select_atoms('segid A')
with mda.Writer("traj1-Achain.xtc", protein.n_atoms) as W:
for ts in u.trajectory:
W.write(protein)
感谢帮助!
我想使用 MDAnalysis 从我的分子动力学轨迹(xtc 文件)中提取一条链。我希望它非常简单,但是发生了错误,我不确定为什么会得到它。 这是代码:
import MDAnalysis as mda
u = mda.Universe('trajectory1.xtc')
protein = u.select_atoms('segid A')
protein.write('trajectory1-A.xtc')
它 returns 错误: AttributeError: AtomGroup 没有属性 segids
在 MDAnalysis 页面上,"segid" 与“.select_atoms”一起使用。是我有轨迹文件而不是经典PDB文件的问题吗?
据说在Universe
造物中(我感觉像上帝)你必须提供拓扑结构和轨迹。据我所知,xtc 文件只包含轨迹(数字的三元组,原子的坐标),但不包含拓扑。没有拓扑结构,既没有残基也没有段。
检查您是否有一些细分:
u.atoms.segments
list(u.atoms.segments)
可能会 return 一个空集。
在这种情况下,您应该为 Universe
创建一个包含您感兴趣的网段的合适拓扑。
类似于:
import MDAnalysis as mda
u = mda.Universe('mytopology.pdb', 'trajectory1.xtc')
protein = u.select_atoms('segid A')
现在,您可以traverse/process您认为合适的任何方式的轨迹。
所以,我修改了代码,因为我发现使用轨迹文件需要稍微修改代码,否则它只会提取轨迹的一帧,但有了这个它会提取整个轨迹一链:
import MDAnalysis as mda
u = mda.Universe('mytopology.pdb', 'trajectory1.xtc')
protein = u.select_atoms('segid A')
with mda.Writer("traj1-Achain.xtc", protein.n_atoms) as W:
for ts in u.trajectory:
W.write(protein)
感谢帮助!