7.7. 原子组访问器 MDAnalysis.core.accessors

此模块提供访问和转换的类 AtomGroup 物体。它用于 convert_to() 方法以两种不同的方式使其可用: ag.convert_to("PACKAGE")ag.convert_to.package()

示例

>>> class SpeechWrapper:
...     def __init__(self, person):
...         self.person = person
...     def __call__(self, *args):
...         print(self.person.name, "says", *args)
...     def whoami(self):
...         print("I am %s" % self.person.name)
...
>>> class Person:
...     def __init__(self, name):
...         self.name = name
...     say = Accessor("say", SpeechWrapper)
...
>>> bob = Person("Bob")
>>> bob.say("hello")
Bob says hello
>>> bob.say.whoami()
I am Bob

7.7.1. 班级

class MDAnalysis.core.accessors.Accessor(name, accessor)[源代码]

用于在两个类之间传递数据

参数:
  • name (str) -- 父类中的属性的名称

  • accessor (class) -- 需要访问其父实例的类

示例

如果希望将该属性命名为ATOM GROUP类中的“Convert_to”,请使用:

>>> class AtomGroup:
>>>     # ...
>>>     convert_to = Accessor("convert_to", ConverterWrapper)

当呼叫方 ag.convert_to.rdkit() ,ConverterWrapper的“rdkit”方法将能够访问“ag”

在 2.0.0 版本加入.

class MDAnalysis.core.accessors.ConverterWrapper(ag)[源代码]

转换 AtomGroup 到另一个Python包中的结构。

任何原子组都可以通过 convert_to 财产。 ag.convert_to 将返回此ConverterWrapper,它可以使用目标包的名称作为字符串直接调用(类似于旧的API),也可以通过以包命名的定制方法(小写)调用,这些方法是由于元类的魔力而自动构造的。

示例

下面的代码将宇宙转换为 parmed.structure.Structure

>>> import MDAnalysis as mda
>>> from MDAnalysis.tests.datafiles import GRO
>>> u = mda.Universe(GRO)
>>> parmed_structure = u.atoms.convert_to('PARMED')
>>> parmed_structure
<Structure 47681 atoms; 11302 residues; 0 bonds; PBC (triclinic); NOT parametrized>

您也可以直接使用 u.atoms.convert_to.parmed()

参数:
  • package (str) -- 要转换为的包的名称,例如 "PARMED"

  • *args -- 传递给转换器的位置参数

  • **kwargs -- 传递给转换器的关键字参数

返回:

来自另一个包的结构类型的实例。

返回类型:

output

抛出:

ValueError: -- 找不到所需程序包的转换器

在 1.0.0 版本加入.

在 2.0.0 版本发生变更: 移动了 convert_to 方法绑定到其自己的类。旧的API仍然可用,现在对包名不区分大小写,它还接受位置和关键字参数。每个转换器函数也可以作为包名称为小写的方法访问,即 convert_to.parmed()

参数:

ag (AtomGroup) -- 要转换的原子组