我有一些使用 MDAnalysis 的工作代码,它将质量时间序列的残差中心保存在一个数组中,但我想知道是否有更 Pythonic 或整体高效/快速的方式(理解、数组操作......)来做到这一点。
import MDAnalysis as mda
mdau = mda.Universe(pdb, xtc)
arr = np.empty(( len(mdau.select_atoms("protein").residues), len(mdau.trajectory), 3 ))
# 288 protein residues, 1250 frames and 3 xyz-coordinates per center of mass; this array shape is important
for ts in mdau.trajectory:
for num, res in enumerate(mdau.select_atoms("protein").residues):
arr[num, ts.frame] = res.atoms.center_of_mass()
我正在使用的 .pdb 和 .xtc 文件可以在以下链接中下载: https ://submission.gpcrmd.org/dynadb/files/Dynamics/11579_dyn_169.pdb https://submission.gpcrmd.org/dynadb/files/动态/11576_trj_169.xtc