11.3.2. 核心拓扑对象 MDAnalysis.core.topologyobjects

多维分析的拓扑图描述构建块

class MDAnalysis.core.topologyobjects.Angle(ix, universe, type=None, guessed=False, order=None)[源代码]

三个角之间的夹角 Atom 实例。原子2是角度的顶点

在 0.8 版本加入.

在 0.9.0 版本发生变更: 现在是的子类 TopologyObject ;现在使用 __slots__ 并将原子存储在 atoms 属性

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

angle(pbc=True)[源代码]

返回该角度的角度(以度为单位)。

原子0和2之间的夹角,峰值为1::

   2
  /
 /
1------0

备注

数值精度通常不超过4位小数(并且仅测试到3位小数)。

在 0.9.0 版本加入.

在 0.17.0 版本发生变更: 接近180的固定角度给出了NaN

在 0.19.0 版本发生变更: 新增PBC关键字,默认为True

value(pbc=True)

返回该角度的角度(以度为单位)。

原子0和2之间的夹角,峰值为1::

   2
  /
 /
1------0

备注

数值精度通常不超过4位小数(并且仅测试到3位小数)。

在 0.9.0 版本加入.

在 0.17.0 版本发生变更: 接近180的固定角度给出了NaN

在 0.19.0 版本发生变更: 新增PBC关键字,默认为True

class MDAnalysis.core.topologyobjects.Bond(ix, universe, type=None, guessed=False, order=None)[源代码]

两人之间的纽带 Atom 实例。

Bond 实例可以与 ==!= 操作员。如果原子序数相同且具有相同的键级,则一个键等于另一个键。忽略了两个原子序号的顺序,就像猜测了一个键一样。

还可以查询特定原子的存在::

>>> Atom in Bond

都会回来 TrueFalse

在 0.9.0 版本发生变更: 现在是的子类 TopologyObject 。已将类更改为使用 __slots__ 并将原子存储在 atoms 属性。

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

length(pbc=True)[源代码]

债券的长度。

在 0.11.0 版本发生变更: 新增PBC关键字

在 0.19.0 版本发生变更: 将pbc的默认值更改为True

partner(Atom)[源代码]
返回:

  • 另一个 Atom 在这里面

  • bond

value(pbc=True)

债券的长度。

在 0.11.0 版本发生变更: 新增PBC关键字

在 0.19.0 版本发生变更: 将pbc的默认值更改为True

class MDAnalysis.core.topologyobjects.CMap(ix, universe, type=None, guessed=False, order=None)[源代码]

5之间的耦合扭转校正映射项 Atom 实例。

在 1.0.0 版本加入.

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

class MDAnalysis.core.topologyobjects.Dihedral(ix, universe, type=None, guessed=False, order=None)[源代码]

四个之间的二面体(二面角) Atom 实例。

二面体定义为原子(1,2,3)和(2,3,4)形成的平面之间的夹角。

在 0.8 版本加入.

在 0.9.0 版本发生变更: 现在是的子类 TopologyObject ;现在使用 __slots__ 并将原子存储在 atoms 属性。

在 0.11.0 版本发生变更: 已重命名为Dihedral(Was Torsion)

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

dihedral(pbc=True)[源代码]

以度为单位计算二面角。

围绕连接原子1和2的轴的二面角(即原子(0,1,2)和(1,2,3)所跨越的平面之间的角度):

        3
        |
  1-----2
 /
0

备注

数值精度通常不超过4位小数(并且仅测试到3位小数)。

在 0.9.0 版本加入.

在 0.19.0 版本发生变更: 新增PBC关键字,默认为True

value(pbc=True)

以度为单位计算二面角。

围绕连接原子1和2的轴的二面角(即原子(0,1,2)和(1,2,3)所跨越的平面之间的角度):

        3
        |
  1-----2
 /
0

备注

数值精度通常不超过4位小数(并且仅测试到3位小数)。

在 0.9.0 版本加入.

在 0.19.0 版本发生变更: 新增PBC关键字,默认为True

class MDAnalysis.core.topologyobjects.ImproperDihedral(ix, universe, type=None, guessed=False, order=None)[源代码]

不正确的二面角(不正确的二面角) Atom 实例。

MDAnalysis将不适当的二面角视为原子(1,2,3)和(2,3,4)形成的平面之间的角度。

警告

在不适当的二面体中原子排序的定义可以改变。对照您的软件检查此处的定义。

在 0.9.0 版本加入.

在 0.11.0 版本发生变更: 已重命名为ImProperDihedral(不正确_扭矩)

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

improper()[源代码]

以度为单位的不正确的二面角。

备注

数值精度通常不超过4位小数(并且仅测试到3位小数)。

class MDAnalysis.core.topologyobjects.TopologyDict(topologygroup)[源代码]

一种定制的词典,用于对一组原子中的键、角和二面体进行排序。

用法::

topologydict = TopologyDict(members)

TopologyDicts也是从 TopologyGroup.topDict 属性。

这个 TopologyDict 从原子中收集所有选定的拓扑类型,并根据其中的原子类型对它们进行分类。一个 TopologyGroup 可以通过使用适当的键进行查询来包含所有给定的债券类型。这把钥匙是 TopologyDict 是键表示的原子类型的元组,可以使用 keys() 方法。

例如,从包含纯乙醇的系统中:

>>> td = u.bonds.topDict
>>> td.keys()
[('C', 'C'),
 ('C', 'H'),
 ('O', 'H'),
 ('C', 'O')]
>>> td['C', 'O']
< TopologyGroup containing 912 bonds >

备注

键的关键字取自原子的类型属性。

获得和设置键的类型是巧妙的,所以C-C-H角度被认为与H-C-C角度相同。

在创建和组合不同的词典时,会自动删除重复条目。这意味着原子1和2之间的键在一个词典中只会出现一次,尽管原子1和2都有这个键。 bond 属性。

TopologyDict 可以使用加法合并实例,并且在此过程中不会创建任何重复的绑定。

参数:

members -- 一份名单 TopologyObject 实例

在 0.8 版本加入.

在 0.9.0 版本发生变更: 更改了初始化,以使用 TopologyObject 实例而不是原子列表;现在从内部使用 TopologyGroup 而不是从访问 AtomGroup

keys()[源代码]

返回可用债券的不同类型的列表

class MDAnalysis.core.topologyobjects.TopologyGroup(bondidx, universe, btype=None, type=None, guessed=None, order=None)[源代码]

用来装一组债券的容器。

特定类型的所有债券都可以从 TopologyGroup 通过使用类型元组进行查询:

tg2 = tg.select_bonds([key])

哪里 key 将所需的键描述为所涉及的 Atom 类型,由.type Atom属性定义)。属性可以显示可用键的列表 types() 方法。

或者,给定的所有键 AtomGroup 可以使用以下命令提取 atomgroup_intersection() ::

tg2 = tg.atomgroup_intersection(ag)

这允许关键字 严格 强制所有绑定的所有成员都在传递给它的原子组内。

最后,TopologyGroup的切片方式类似于ATOM Groups::

tg2 = tg[5:10]

这个 bonds()angles()dihedrals() 方法为中的Cython距离计算函数提供了一条“快捷方式” MDAnalysis.lib.distances

拓扑组可以与相同键合类型的拓扑组组合(即可以组合包含拓扑组的两个角度)。

在 0.8 版本加入.

在 0.9.0 版本发生变更: 彻底检修:(1)增加内部 TopologyDict 可通过 topDict 属性。(2) selectBonds() 允许 topDict 要使用类型元组进行查询。(3)增加 atomgroup_intersection() 为了允许给定的债券 AtomGroup 等着被取回。

在 0.10.0 版本发生变更: 已添加 from_indices() 构造函数,允许从索引创建类。现在可以创建空组。已重命名 dump_contents()to_indices()

在 0.11.0 版本发生变更: 已添加 values 方法以返回该组中每个对象的大小。

在 0.19.0 版本发生变更: Empty TopologyGroup现在通过INDEX属性和TO_INDEX()返回格式正确的空数组

angles(result=None, pbc=False)[源代码]

计算原子1和2之间的键和原子2和3之间的键之间形成的角度(以弧度为单位

参数:
  • result (array_like) -- 允许使用预定义的结果数组,请注意,这将被覆盖

  • pbc (bool) -- 在计算角度时应用周期性边界条件 [False] 当原子之间的连接矢量可能需要最小的图像约定时,这一点很重要

返回:

  • 角度 ( ndarray )

  • 。。版本已更改::0.9.0 --添加 pbc 选项(默认 False )

property atom1

该组中每个TopologyObject中的第一个原子

property atom2

该组中每个TopologyObject中的第二个原子

property atom3

该组中每个TopologyObject中的第三个原子

property atom4

该组中每个TopologyObject中的第四个原子

atomgroup_intersection(ag, **kwargs)[源代码]

从这个拓扑组中检索传递的原子组中的所有绑定。

参数:
  • ag (AtomGroup) -- 这个 :class:~MDAnalysis.core.groups.AtomGroup 与…交叉与…相交

  • strict (bool) -- 仅检索完全包含在原子组中的绑定。 [False]

在 0.9.0 版本加入.

bonds(pbc=False, result=None)[源代码]

计算此拓扑组中所有焊接之间的距离

关键词:
pbc

在计算距离时应用周期边界条件 [错误]

结果

允许使用预定义的结果数组,请注意,这将被覆盖

使用cython实现

dihedrals(result=None, pbc=False)[源代码]

计算此拓扑组的二面角(弧度)。

定义为原子1、2和3形成的平面与原子2、3和4形成的平面之间的夹角。

参数:
  • result (array_like) -- 允许使用预定义的结果数组,请注意,这将被覆盖

  • pbc (bool) -- 在计算角度时应用周期性边界条件 [False] 当原子之间的连接矢量可能需要最小的图像约定时,这一点很重要

返回:

  • 角度 ( ndarray )

  • 。。版本已更改::0.9.0 --添加 pbc 选项(默认 False )

dump_contents()

返回具有描述键的原子索引的数据结构。

此格式应与语义网._拓扑图中条目的原始内容相同。请注意,由于键在初始化时被排序,因此在每个条目中定义原子的顺序可能会颠倒。

返回:

  • 指数 ( 元组 )--元组的元组,根据原子数定义此TopologyGroup的内容。(美国原子内基于0的索引)

  • 。。添加的版本::0.9.0

  • 。。版本已更改::0.10.0 --从“DUMP_CONTENTS”重命名为“TO_INDEX”

property indices

所有债券指数

参见

to_indices

仅返回的函数 indices

selectBonds(selection)

根据类型从此拓扑组中检索选择。

select_bonds(selection)[源代码]

根据类型从此拓扑组中检索选择。

to_indices()[源代码]

返回具有描述键的原子索引的数据结构。

此格式应与语义网._拓扑图中条目的原始内容相同。请注意,由于键在初始化时被排序,因此在每个条目中定义原子的顺序可能会颠倒。

返回:

  • 指数 ( 元组 )--元组的元组,根据原子数定义此TopologyGroup的内容。(美国原子内基于0的索引)

  • 。。添加的版本::0.9.0

  • 。。版本已更改::0.10.0 --从“DUMP_CONTENTS”重命名为“TO_INDEX”

property topDict

返回此拓扑组的TopologyDict。

在获取特定类型的焊接时,它用于SELECT_BINDS方法。

这是一个缓存属性,因此将在第一次访问它时生成。

types()[源代码]

返回此TopologyGroup中的绑定类型列表

property universe

我们所属的宇宙

values(**kwargs)[源代码]

返回该组中每个对象的大小

关键词:
pbc

在计算距离时应用周期边界条件 [False]

结果

允许使用预定义的结果数组,请注意,这将被覆盖

在 0.11.0 版本加入.

class MDAnalysis.core.topologyobjects.TopologyObject(ix, universe, type=None, guessed=False, order=None)[源代码]

所有拓扑项的基类。

定义MDAnalysis中的焊点/角度/等的行为。

在 0.9.0 版本加入.

在 0.10.0 版本发生变更: All TopologyObject现在跟踪它们是否是通过 is_guessed 托管属性。

在 0.11.0 版本加入: 添加了 value 方法返回对象的大小

在 2.6.0 版本发生变更: 更新了Atom ID表示顺序,以与原子组索引的顺序匹配

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

property atoms

这个键中的原子

property indices

描述此对象的索引元组

在 0.10.0 版本加入.

property type

元组形式的债券类型

备注

在比较类型时,重要的是也要考虑类型的反面,即:

a.type == b.type or a.type == b.type[::-1]
class MDAnalysis.core.topologyobjects.UreyBradley(ix, universe, type=None, guessed=False, order=None)[源代码]

两者之间的Urey-Bradley角 Atom 实例。二 UreyBradley 实例可以与 ==!= 操作员。如果涉及相同的原子序数,则UreyBradley角等于另一个。

在 1.0.0 版本加入.

创建拓扑对象

参数:
  • ix (numpy array) -- 原子的指数

  • universe (MDAnalysis.Universe) --

  • type (optional) -- 债券的类型

  • guessed (optional) -- 如果债券是被猜中的

distance(pbc=True)[源代码]

原子之间的距离。

partner(Atom)[源代码]
返回:

  • 另一个 Atom 在这里面

  • 互动

value(pbc=True)

原子之间的距离。