bioinformatics - 我可以仅使用 PDB 文件进行 PCA(在 python3.x 中使用 MDAnalysis)吗?
问题描述
我可能有比代码相关的更多技术问题。我尝试仅使用 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")
解决方案
为了让您的 PDB 文件被 mdtraj 视为“多帧”PDB 文件(而不是单帧 PDB),您必须用“END”而不是“TER”分隔每个构象。
推荐阅读
- javascript - 标记图像功能的 Thingsboard 自定义图像 URL
- discord.js - Discord.js 命令处理程序问题
- ios - Flutter Firebase_Auth 升级打破了 iOS 上的 OTP 电话授权(所有版本)
- python - Python 字典更新:内容被覆盖
- javascript - Flask:将数据从 AJAX 传递到 render_template() 调用,使用参数重定向/刷新页面
- c# - ADFS v4.0 和 /userinfo 端点给出 405
- c# - 为什么从 ServiceBase 继承的 C# 类会跳过其派生类构造函数?
- r - 如何计算 R 中协变量的受限平均生存时间?
- javascript - CSS Transform Scale 从包装器中截断内容
- highcharts - 堆积条形图:周与周