11.3.1. 核心拓扑对象 MDAnalysis.core.topology

在 0.16.0 版本加入.

Topology 是保存所有拓扑信息的核心对象。

TODO:添加深入讨论。

备注

对于开发人员:在MDAnalys0.16.0中引入了这个新的拓扑系统,并将其作为问题进行讨论 #363 ;本期载有关于新系统的关键信息和讨论。发行编号 363 也被用作讨论中提及新拓扑系统的速记。

11.3.1.1. 班级

class MDAnalysis.core.topology.Topology(n_atoms=1, n_res=1, n_seg=1, attrs=None, atom_resindex=None, residue_segindex=None)[源代码]

内存中基于阵列的拓扑数据库。

MDanalysis的拓扑模型以原子为特征,每个原子必须是一个残基的成员。反过来,每个残基必须是一个片段的成员。维护这种层级结构的细节,以及原子到残基、残基到片段的映射,以及反之亦然,都是由这个对象在内部处理的。

参数:
  • n_atoms (int) -- 拓扑中的原子数。每个级别的值必须大于1

  • n_residues (int) -- 拓扑中的残数。每个级别的值必须大于1

  • n_segments (int) -- 拓扑中的线段数。每个级别的值必须大于1

  • attrs (TopologyAttr objects) -- 要包括的拓扑组件

  • atom_resindex (array) -- 给出系统中每个原子的重新索引的一维阵列

  • residue_segindex (array) -- 给出系统中每个残数的分段索引的一维数组

add_Residue(segment, **new_attrs)[源代码]
返回类型:

residx of the new Residue

抛出:

NoDataError -- 如果不是所有数据都提供了。在进行任何更改之前会引发此错误

在 2.1.0 版本发生变更: 将_ADD_NEW用于TopologyAttr RESIZE

add_Segment(**new_attrs)[源代码]

向拓扑中添加新线段

参数:

new_attrs (dict) -- 新细分市场的新属性,例如{‘segid’:‘B’}

抛出:

NoDataError -- 如果未指定属性,则返回。

返回:

ix --新细分市场的IDX

返回类型:

int

在 2.1.0 版本发生变更: 添加了用于调整拓扑属性大小的_ADD_NEW

add_TopologyAttr(topologyattr)[源代码]

将新的TopologyAttr添加到Topology。

参数:

topologyattr (TopologyAttr) --

copy()[源代码]

返回此拓扑的深度副本

del_TopologyAttr(topologyattr)[源代码]

从拓扑中删除TopologyAttr。

如果它不存在,则不会发生任何事情。

参数:

topologyattr (TopologyAttr) --

在 2.0.0 版本加入.

property guessed_attributes

此拓扑中的猜测属性列表

property read_attributes

从拓扑中读取的属性列表

class MDAnalysis.core.topology.TransTable(n_atoms, n_residues, n_segments, atom_resindex=None, residue_segindex=None)[源代码]

具有跨级别转换索引的方法的成员资格表。

有三个级别:原子、残留物和片段。每个原子 must 属于一个残留物,每个残留物 must 属于某个细分市场。

向上转换时,例如查找残基属于哪个段,将返回单个Numpy数组。向下转换时,有两个选项可用;串联结果(后缀 _1) or a list for each parent object (suffix _ 2d)。

参数:
  • n_atoms (int) -- 拓扑学中的原子数

  • n_residues (int) -- 拓扑中的留数

  • n_segments (int) -- 拓扑中的分段数

  • atom_resindex (1-D array) -- 为拓扑中的每个原子重新编制索引;此数组中唯一值的数量必须为<= n_residues ,数组的长度必须为 n_atoms ;设置为None默认为将所有原子放置在残数0中

  • residue_segindex (1-D array) -- 拓扑中每个残差的段索引;此数组中唯一值的数量必须为<= n_segments ,数组的长度必须为 n_residues ;设置为None默认为将所有残差放在段0中

n_atoms

拓扑学中的原子数

类型:

集成

n_residues

拓扑中的留数

类型:

集成

n_segments

拓扑中的分段数

类型:

集成

size

元组 (n_atoms, n_residues, n_segments) 描述TransTable的形状

类型:

元组

.. versionchanged:: 2.3.0

懒惰的建筑RA和SR。

atoms2residues(aix)[源代码]

得到每个原子的残基指数。

参数:

aix (array) -- 原子指数

返回:

rix --每个原子的残基指数

返回类型:

array

atoms2segments(aix)[源代码]

获取每个原子的分段索引。

参数:

aix (array) -- 原子指数

返回:

rix --每个原子的分段索引

返回类型:

array

copy()[源代码]

退回一份这份可转换文件的深度副本

move_atom(aix, rix)[源代码]

将AIX移到RIX中

move_residue(rix, six)[源代码]

将连线移至六杆内

residues2atoms_1d(rix)[源代码]

得到由给定残基指数共同表示的原子指数。

参数:

rix (array) -- 残留物指数

返回:

aix --残基中存在的原子指数,统称为

返回类型:

array

residues2atoms_2d(rix)[源代码]

获取由每个残基指数表示的原子指数。

参数:

rix (array) -- 残留物指数

返回:

raix --每个元素对应一个残基索引,顺序为 rix ,每个元素是存在于该残基中的原子索引的数组

返回类型:

list

residues2segments(rix)[源代码]

获取每个残基的片段索引。

参数:

rix (array) -- 残留物指数

返回:

six --每个渣油的分部索引

返回类型:

array

segments2atoms_1d(six)[源代码]

获取由给定段索引共同表示的原子索引。

参数:

six (array) -- 分部索引

返回:

aix --以片段形式存在的原子的分类指数,统称为

返回类型:

array

segments2atoms_2d(six)[源代码]

获取由每个段索引表示的原子索引。

参数:

six (array) -- 残留物指数

返回:

saix --每个元素对应于一个段索引,其顺序为 six ,每个元素都是该段中存在的原子索引的数组

返回类型:

list

segments2residues_1d(six)[源代码]

获取由给定分段索引共同表示的残差索引

参数:

six (array) -- 分部索引

返回:

rix --片段中存在的残留物的分类索引,统称为

返回类型:

array

segments2residues_2d(six)[源代码]

获取由每个分段索引表示的残差指数。

参数:

six (array) -- 残留物指数

返回:

srix --每个元素对应于一个段索引,其顺序为 six ,每个元素是该片段中存在的残基索引的数组

返回类型:

list

11.3.1.2. 帮助器函数

MDAnalysis.core.topology.make_downshift_arrays(upshift, nparents)[源代码]

从向上的翻译表创建相反的方向

将多对一映射(如原子到残基)转换为一对多映射(残基到原子)

参数:
  • upshift (array_like) -- 描述每个项目所属父项的整数数组

  • nparents (integer) -- 存在的父级总数。

返回:

降档 --数组的数组,每个数组包含每个父级的子级的索引。长度 nparents +1

返回类型:

array_like (dtype object)

示例

要查找给定原子到残数映射的残数到原子的映射,请执行以下操作:

>>> import numpy as np
>>> import MDAnalysis as mda
>>> from MDAnalysis.core.topology import make_downshift_arrays
>>> atom2res = np.array([0, 1, 0, 2, 2, 0, 2])
>>> make_downshift_arrays(atom2res, 3)
array([array([0, 2, 5]), array([1]), array([3, 4, 6]), None], dtype=object)

条目0对应于残基0,并且说这包含原子0、2和5

备注

返回数组中的最后一个条目将是 None 以确保数组的数据类型为 object

警告

这意味着负索引应该 绝不可能 与这些数组一起使用。