python - 将残留物 ID 添加到由水坐标的时间序列数据组成的 numpy 数组中
问题描述
我得到了这个用于生成水分子时间序列数据的脚本,我想在生成的矩阵中再添加一个标题行,其中包含水分子的残基 ID。有人可以帮忙修改这个脚本吗?谢谢!
import numpy as np
import MDAnalysis as mda
u = mda.Universe(PSF, DCD)
water_oxygens = u.select_atoms("name OW")
# pre-allocate the array for the data
data = np.zeros((u.trajectory.n_frames, water_oxygens.n_atoms + 1))
for i, ts in enumerate(u.trajectory):
data[i, 0] = ts.time # store current time
data[i, 1:] = water_oxygens.positions[:, 2] # extract all z-coordinates
解决方案
这是一个调整后的代码示例。您可能需要安装软件包MDAnalysisTests
才能运行它:
import numpy as np
import MDAnalysis as mda
from MDAnalysisTests.datafiles import waterPSF, waterDCD
u = mda.Universe(waterPSF, waterDCD)
water_oxygens = u.select_atoms("name OH2")
# pre-allocate the array for the data
# one extra row for the header water residue IDs
data = np.zeros((u.trajectory.n_frames + 1, water_oxygens.n_atoms + 1))
# initialise the water residue IDs
data[0, 0] = np.NaN # the time column
data[0, 1:] = water_oxygens.atoms.resids
for i, ts in enumerate(u.trajectory, start=1):
data[i, 0] = ts.time # store current time
data[i, 1:] = water_oxygens.positions[:, 2] # extract all z-coordinates
推荐阅读
- jenkins - 尝试连接到 Jenkins Selenium Grid 插件时出现 HttpHostConnectException
- opencv - 提取深色轮廓
- php - 在没有foreach的多维数组php中按值删除
- flutter - Cloud Firestore:排列文档
- python - 在 Python 中使用 Paramiko 执行 SFTP 命令
- sparql - 三元组的 QName (MarkLogic)
- java - 如何按属性对对象列表进行分组,然后使用 (Key, Value) 对迭代结果?
- android - 外部一次性是否在rxjava中自动配置内部一次性?
- angular - Angular 5 从 Angular-cli.json 加载 CDN 脚本标签
- reactjs - 如何使用包含子表的 ReactTable 制作表