4.2.4. Simple atomic distance analysis --- MDAnalysis.analysis.atomicdistances
- 作者:
许洪陈晨
- 年:
2023
- 版权所有:
GNU公共许可证v3
这个模块提供了一个类来有效地计算两组原子之间的距离,这些原子在轨迹上具有相等的原子数量。具体地,对于两个原子基团 ag1
和 ag2
,它将返回距离
\[|ag1[i] - ag2[i]|\]
为了所有人 \(i\) 从… \(0\) 至 n_atoms \(- 1\) ,在哪里 n_atoms 是每个原子群中的原子数。默认情况下,此计算是使用周期性边界条件进行的,但可以很容易地将其关闭。这些距离在NumPy数组中按时间步长分组。
For more general functions on computing distances between atoms or
groups of atoms, please see MDAnalysis.analysis.distances
.
4.2.4.1. 基本用法
此示例使用MDAnalysis测试套件中的文件 (GRO
和 XTC
)。要开始,请执行::
>>> import MDAnalysis as mda
>>> from MDAnalysis.tests.datafiles import GRO, XTC
>>> import MDAnalysis.analysis.atomicdistances as ad
我们将在周期边界条件下计算原子群101-105和原子群4001-4005之间的距离。要选择这些原子:
>>> u = mda.Universe(GRO, XTC)
>>> ag1 = u.atoms[100:105]
>>> ag2 = u.atoms[4000:4005]
我们可以使用任何选择的变量来运行计算,例如 my_dists
并使用以下工具访问我们的结果 my_dists.results
:
>>> my_dists = ad.AtomicDistances(ag1, ag2).run()
>>> my_dists.results
array([[37.80813681, 33.2594864 , 34.93676414, 34.51183299, 34.96340209],
[27.11746625, 31.19878079, 31.69439435, 32.63446126, 33.10451345],
[23.27210749, 30.38714688, 32.48269361, 31.91444505, 31.84583838],
[18.40607922, 39.21993135, 39.33468192, 41.0133789 , 39.46885946],
[26.26006981, 37.9966713 , 39.14991106, 38.13423586, 38.95451427],
[26.83845081, 34.66255735, 35.59335027, 34.8926705 , 34.27175056],
[37.51994763, 38.12161091, 37.56481743, 36.8488121 , 35.75278065],
[37.27275501, 37.7831456 , 35.74359073, 34.54893794, 34.76495816],
[38.76272761, 41.31816555, 38.81588421, 39.82491432, 38.890219 ],
[39.20012515, 40.00563374, 40.83857688, 38.77886735, 41.45775864]])
要在没有周期边界条件的情况下进行计算,可以输入关键字参数 pbc=False
之后 ag2
。在这种情况下,结果不同:
>>> my_dists_nopbc = ad.AtomicDistances(ag1, ag2, pbc=False).run()
>>> my_dists_nopbc.results
array([[37.80813681, 33.2594864 , 34.93676414, 34.51183299, 34.96340209],
[27.11746625, 31.19878079, 31.69439435, 32.63446126, 33.10451345],
[23.27210749, 30.38714688, 32.482695 , 31.91444505, 31.84583838],
[18.40607922, 39.21992825, 39.33468192, 41.0133757 , 39.46885946],
[26.26006981, 37.99666906, 39.14990985, 38.13423708, 38.95451311],
[26.83845081, 34.66255625, 35.59335027, 34.8926705 , 34.27174827],
[51.86981409, 48.10347964, 48.39570072, 49.14423513, 50.44804292],
[37.27275501, 37.7831456 , 35.74359073, 34.54893794, 34.76495816],
[56.39657447, 41.31816555, 38.81588421, 39.82491432, 38.890219 ],
[39.20012515, 40.00563374, 40.83857688, 38.77886735, 41.45775864]])
- class MDAnalysis.analysis.atomicdistances.AtomicDistances(ag1, ag2, pbc=True, **kwargs)[源代码]
类计算轨迹上两个原子组之间的原子距离。
- 参数:
- results
距离 \(|ag1[i] - ag2[i]|\) 为了所有人 \(i\) 从… \(0\) 至 n_atoms \(- 1\) 对于轨迹上的每一帧。
- 类型:
- n_frames
分析中包含的帧的数量。
- 类型:
集成
- n_atoms
Number of atoms in each atom group.
- 类型:
集成
在 2.5.0 版本加入.