5.10. ITP拓扑解析器

阅读GROMACS ITPTOP 文件来构建系统。该拓扑将包含原子ID、SEGID、残基ID、残基名称、原子名称、原子类型、电荷、电荷群、质量(如果找不到则猜测)、摩尔类型和摩尔数。还从文件中读取了键、角度、二面体和突破器。

如果在传递ITP文件时没有 [ molecules ] 指令,通过 infer_system=True (默认选项)将创建一个宇宙,每个宇宙定义一个分子 moleculetype 。如果一个 [ molecules ] 部分已存在, infer_system 被忽略。

如果文件包含在 #include 指令,它们也将被阅读。如果它们不在工作目录中,ITPParser将在 include_dir 目录。默认情况下,它设置为 include_dir="/usr/local/gromacs/share/gromacs/top/" 。变量可以使用 #define 指令,或通过传入 keyword arguments

示例

::

从MDAnalysis.tests.datafile导入MDAnalysis作为MDA。数据文件导入ITP_tip5p

#覆盖HW2原子的电荷(文件中定义为HW2_Charge)u=mda.宇宙(ITP_tip5p,HW2_Charge=2,INFER_SYSTEM=True)

备注

琥珀还使用扩展名为.TOP的拓扑文件。要使用ITPParser读取GROMACS顶层文件,请传递 topology_format='ITP'

import MDAnalysis as mda
u = mda.Universe('topol.top', topology_format='ITP')

5.10.1. 预处理器变量

ITP文件通常使用取决于是否给出关键字标志的行来定义。例如,此修改后的TIP5P水文件:

[ moleculetype ]
; molname       nrexcl
SOL             2

#ifndef HW1_CHARGE
    #define HW1_CHARGE 0.241
#endif

#define HW2_CHARGE 0.241

[ atoms ]
; id    at type res nr  residu name     at name         cg nr   charge
1       opls_118     1       SOL              OW             1       0
2       opls_119     1       SOL             HW1             1       HW1_CHARGE
3       opls_119     1       SOL             HW2             1       HW2_CHARGE
4       opls_120     1       SOL             LP1             1      -0.241
5       opls_120     1       SOL             LP2             1      -0.241
#ifdef EXTRA_ATOMS  ; added for keyword tests
6       opls_120     1       SOL             LP3             1      -0.241
7       opls_120     1       SOL             LP4             1       0.241
#endif

通过传递关键字参数来定义这些预处理器变量。您传入的任何参数 超覆 文件中定义的任何变量。例如,下面的宇宙中HW1和HW2原子的电荷为3:

import MDAnalysis as mda
from MDAnalysis.tests.datafiles import ITP_tip5p

u = mda.Universe(ITP_tip5p, EXTRA_ATOMS=True, HW1_CHARGE=3, HW2_CHARGE=3)

这些关键字变量是 case-sensitive 。请注意,如果将关键字设置为 FalseNone ,它们将被视为未在#ifdef条件中定义。

例如,下面的宇宙将只有5个原子。**

u = mda.Universe(ITP_tip5p, EXTRA_ATOMS=False)

5.10.2. 班级

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

从GROMACS读取拓扑信息 ITPTOP 文件。

创建具有以下属性的拓扑:-ids-名称-类型-质量-电荷-Chargegroups-Resids-resname-segids-moltype-molums-ond-angles-dihedrals-Impropers

在 2.2.0 版本发生变更: 不再为具有稳定约束的水分子添加角度

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(include_dir='/usr/local/gromacs/share/gromacs/top/', infer_system=True, **kwargs)[源代码]

将ITP文件解析为拓扑

参数:
  • include_dir (str, optional) -- 一个目录,用于在其中查找原始文件中包含的其他文件(如果未首先在当前目录中找到这些文件)。默认设置:“/usr/local/gromacs/share/gromacs/top/”

  • infer_system (bool, optional (default True)) -- 如果一个 [ molecules ] 指令在拓扑文件中找不到,请使用下列之一创建一个拓扑 [ moleculetype ] 已定义。如果一个 [ molecules ] 指令,则忽略此关键字。

返回类型:

MDAnalysis 拓扑学 对象

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

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