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
都会回来
True
或False
。在 0.9.0 版本发生变更: 现在是的子类
TopologyObject
。已将类更改为使用__slots__
并将原子存储在atoms
属性。创建拓扑对象
- 参数:
ix (numpy array) -- 原子的指数
universe (MDAnalysis.Universe) --
type (optional) -- 债券的类型
guessed (optional) -- 如果债券是被猜中的
- 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) -- 如果债券是被猜中的
- 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
。
- 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中的第四个原子
- 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)
根据类型从此拓扑组中检索选择。
- to_indices()[源代码]
返回具有描述键的原子索引的数据结构。
此格式应与语义网._拓扑图中条目的原始内容相同。请注意,由于键在初始化时被排序,因此在每个条目中定义原子的顺序可能会颠倒。
- 返回:
指数 ( 元组 )--元组的元组,根据原子数定义此TopologyGroup的内容。(美国原子内基于0的索引)
。。添加的版本::0.9.0
。。版本已更改::0.10.0 --从“DUMP_CONTENTS”重命名为“TO_INDEX”
- property topDict
返回此拓扑组的TopologyDict。
在获取特定类型的焊接时,它用于SELECT_BINDS方法。
这是一个缓存属性,因此将在第一次访问它时生成。
- property universe
我们所属的宇宙
- 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) -- 如果债券是被猜中的
- value(pbc=True)
原子之间的距离。