0

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

我使用我之前制作的带有标准轨迹的 PCA 代码,但它返回错误“ No covariance information can be collect from asingle track frame ”。

因此,我的假设是 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")
4

1 回答 1

0

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

于 2020-05-07T09:22:44.630 回答