【问题标题】:Can I do PCA (using MDAnalysis in python3.x) with PDB file only?我可以仅使用 PDB 文件进行 PCA(在 python3.x 中使用 MDAnalysis)吗?
【发布时间】:2019-11-26 14:52:17
【问题描述】:

我可能有比代码相关的更多技术问题。我尝试仅使用 PDB 文件执行 PCA(使用 MDAnalysis 包) - 此 pdb 文件包含 100 个对齐的结构(当然,它们是相同的 - 这意味着相同类型和数量的原子;它是在 PyMol 中完成的)。

我使用我之前为具有标准轨迹的 PCA 编写的代码,但它返回错误“无法从单个轨迹帧收集协方差信息。”

因此,我的假设是 PCA 不能仅使用 PDB 文件完成,或者可以,但我没有正确的 pdb 输入。我想知道是否有人曾经尝试过这样的事情或对 MDAnalysis 有很好的经验并且可以给我任何建议(我是计算化学的新手)。

我认为代码不是很需要,但我附上它:

import matplotlib.pyplot as plt
import MDAnalysis as mda
from MDAnalysis.analysis.pca import PCA
import numpy as np

u = mda.Universe("mypdb.pdb") 
ca = u.select_atoms('name CA')


pca = PCA(u, select='name CA').run()
n_pcs = np.where(pca.cumulated_variance > 0.95)[0][0]
reduced_data = pca.transform(ca, n_components=n_pcs)

plt.plot(pca.variance, "-o")

【问题讨论】:

  • 如果 PDB 文件包含“PDB 轨迹”(即具有多个 MODEL 条目的文件),那么这应该可以工作。查看 u.trajectory.n_frames 是否显示大于 1 的数字。有关更多背景信息,请参阅 PDB structure files in MDAnalysis
  • 顺便说一句,大多数 MDAnalysis 用户在邮件列表 groups.google.com/group/mdnalysis-discussion 上提出问题
  • 谢谢,我查看了邮件列表,但没有找到问题的答案。是的,我的文件是单帧,因为它不是由轨迹制成的。我从 100 个结构中制作了这个文件,这些结构是对齐的,这些结构最初是与 RCSB 分开的结构(但它总是具有相同数量的原子的相同蛋白质)。是否有可能将其制成多帧 PDB?
  • 您是否按照@orbeckst 的建议打印了u.trajectory.n_frames?很可能您的 .pdb 轨迹构造不正确。您是如何分隔 .pdb 中的帧的?分隔是否使用关键字MODEL?

标签: bioinformatics pca pymol cheminformatics mdanalysis


【解决方案1】:

要让您的 PDB 文件被 mdtraj 视为“多帧”PDB 文件(而不是单帧 PDB),您必须用“END”而不是“TER”分隔每个构象。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2017-11-22
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    相关资源
    最近更新 更多