5.21. Gromacs可移植运行输入TPR格式解析器

这个 TPRParser 模块允许读取 Gromacs 可移植运行输入文件(a TPR file )。由于TPR文件的文件格式变化很快,目前并不支持所有版本。表中列出了已知的工作版本和大致的Gromacs版本号 TPR format versions

TPR格式版本和世代阅读量 MDAnalysis.topology.TPRParser.parse()

TPX格式

TPX生成

Gromacs版本

朗读

??

??

3.3、3.3.1

不是

58

17

4.0、4.0.2、4.0.3、4.0.4、4.0.5、4.0.6、4.0.7

73

23

4.5.0、4.5.1、4.5.2、4.5.3、4.5.4、4.5.5

83

24

4.6、4.6.1

100

26

5.0、5.0.1、5.0.2、5.0.3、5.0.4、5.0.5

103

26

5.1

110

26

2016

112

26

2018

116

26

2019

119

27

2020[*]_

122

28

2021

127

28

2022

129

28

2023

有关进一步的讨论和说明,请参阅 Issue 2 。请 发行一期新刊Issue Tracker 当应该支持新的或不同的TPR文件格式版本时。

Gromacs中可用的绑定交互在表5.5中描述 Gromacs manual 。以下方法用于构建拓扑(请参见 Issue 463 ):

  • 键:规则键(类型1)、G96键(类型2)、Morse键(类型3)、立方键(类型4)、连接(类型5)、调和势(类型6)、Fene键(类型7)、约束势(类型10)、具有排除/连接的列表势(类型8)、无排除/连接的列表势(类型9)、具有排除/连接的约束(类型1)、无排除/连接的约束(类型2)、确定约束

  • 角度:正则角(类型1),G96角(类型2),交叉键角(类型3),交叉键角(类型4),Urey-Bradley角(类型5),四次角(类型6),限制弯曲势(类型10),列表角(类型8)

  • 二面体:真二面体(类型1和类型9)、Rykert-Bellemans二面体(类型3)、傅立叶二面体(类型5)、限制二面体(类型10)、组合弯扭位势(类型11)、列表二面体(类型8)

  • 不正确的二面体(类型2),周期性的不正确的二面体(类型4)

5.21.1. 班级

class MDAnalysis.topology.TPRParser.TPRParser(filename)[源代码]

从中读取拓扑信息 Gromacs TPR file.

close()

关闭轨迹文件。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

parse(tpr_resid_from_one=True, **kwargs)[源代码]

将Gromacs TPR文件解析为MDAnalysis内部拓扑结构。

参数:

tpr_resid_from_one (bool (optional)) -- 切换是否从1或0索引TPR文件中的残留物。默认情况下,TPR文件的索引从0开始,即使Gro和ITP文件从1开始也是如此。

返回:

structure

返回类型:

dict

在 1.1.0 版本发生变更: 添加了 tpr_resid_from_one 关键字,用于控制是否从0或1开始对驻留进行索引。默认 False

在 2.0.0 版本发生变更: 更改为 tpr_resid_from_one=True 默认情况下。

units = {'length': None, 'time': None, 'velocity': None}

带有以下单位的词典 time长度 (及 速度 ..用于支持它的格式)

5.21.2. 发展笔记

TPR读取器是基本TPR解析器的纯Python实现。目前正在解析拓扑的以下部分:

  • 原子:编号、名称、类型、更名、REID、SEGID、MASS、电荷、元素 [残留物、管段、半径、双因数、重数、摩尔型]

  • 债券

  • 夹角

  • 二面体

  • 不动产

此TPR解析器是根据以下文件编写的

  • gromacs_dir/src/kernel/gmxdump.c

  • {gromacs_dir}/src/gmxlib/tpxio.c (最重要的一条)

  • gromacs_dir/src/gmxlib/gmxfio_rw.c

  • gromacs_dir/src/gmxlib/gmxfio_xdr.c

  • gromacs_dir/include/gmxfiofio.h

或较新版本的Gromacs中的等价物。

该函数 read_tpxheader() 是基于 TPRReaderDevelopment 笔记。名称以开头的函数 read_do_ 正在努力变得类似于 gmxdump.ctpxio.c ,那些拥有 extract_ 都是新的。

不支持Gromacs 4.0.x之前的版本。

在 2.0.0 版本发生变更: 这个 elements 现在,如果至少有一个原子具有有效的元素符号,则会显示拓扑属性。在这种情况下,无法识别元素的原子将其元素属性设置为空字符串。如果没有识别出任何元素,则 elements 属性未在拓扑中设置。