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) -- 要转换的原子组