7.1. ParmED拓扑解析器 MDAnalysis.converters.ParmEdParser

将转换为 ParmEd parmed.structure.Structure 变成一个 MDAnalysis.core.Topology

示例

如果要在ParmED中使用MDAnalysis编写的ParmED结构进行模拟,则需要首先使用ParmED读取文件以包含必要的拓扑参数。**

>>> import parmed as pmd
>>> import MDAnalysis as mda
>>> from MDAnalysis.tests.datafiles import PRM7_ala2, RST7_ala2
>>> prm = pmd.load_file(PRM7_ala2, RST7_ala2)
>>> prm
<AmberParm 3026 atoms; 1003 residues; 3025 bonds; PBC (orthogonal); parametrized>

然后,我们可以将其转换为MDAnalysis结构,只选择蛋白质原子,然后将其转换回ParmED。**

>>> u = mda.Universe(prm)
>>> u
<Universe with 3026 atoms>
>>> prot = u.select_atoms('protein')
>>> prm_prot = prot.convert_to('PARMED')
>>> prm_prot
<Structure 23 atoms; 2 residues; 22 bonds; PBC (orthogonal); parametrized>

从这里,您可以创建一个OpenMM模拟系统,并最大限度地减少能耗。**

>>> import openmm as mm
>>> import openmm.app as app
>>> from parmed import unit as u
>>> system = prm_prot.createSystem(nonbondedMethod=app.NoCutoff,
...                                constraints=app.HBonds,
...                                implicitSolvent=app.GBn2)
>>> integrator = mm.LangevinIntegrator(
...                         300*u.kelvin,       # Temperature of heat bath
...                         1.0/u.picoseconds,  # Friction coefficient
...                         2.0*u.femtoseconds, # Time step
... )
>>> sim = app.Simulation(prm_prot.topology, system, integrator)
>>> sim.context.setPositions(prm_prot.positions)
>>> sim.minimizeEnergy(maxIterations=500)

现在,如果愿意,您可以继续并运行模拟。

7.1.1. 班级

class MDAnalysis.converters.ParmEdParser.ParmEdParser(filename)[源代码]

对于ParmED结构

close()

关闭轨迹文件。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

parse(**kwargs)[源代码]

将PARMED解析为拓扑

返回类型:

MDAnalysis 拓扑学 对象

在 2.0.0 版本发生变更: 元素不再被猜测,如果解析对象中存在的元素没有被识别(通常被赋予原子质量0),那么它们将被分配一个空字符串。

units = {'length': None, 'time': None, 'velocity': None}

带有以下单位的词典 time长度 (及 速度 ..用于支持它的格式)

在 2.0.0 版本发生变更: ParmEdParser类已从 topologyconverters

7.2. ParmEd结构I/O MDAnalysis.converters.ParmEd

中读取坐标数据 ParmEd parmed.structure.Structure 使用 ParmEdReader 进入一个多维分析宇宙。将其转换回 parmed.structure.Structure 使用 ParmEdConverter

示例

ParmEd有一些巧妙的功能。其中一个就是 HMassRepartition 。此功能可将系统中氢气的质量更改为您所需的值。然后,它将它所键合的原子的质量调整相同的量,从而使总质量保持不变。**

>>> import MDAnalysis as mda
>>> from MDAnalysis.tests.datafiles import PRM
>>> u = mda.Universe(PRM)
>>> u.atoms.masses[:10]
array([14.01 ,  1.008,  1.008,  1.008, 12.01 ,  1.008, 12.01 ,  1.008,
    1.008,  1.008])

我们可以将我们的宇宙转换成ParmED结构来改变我们的氢质量。**

>>> import parmed.tools as pmt
>>> parm = u.atoms.convert_to('PARMED')
>>> hmass = pmt.HMassRepartition(parm, 5)  # convert to 5 daltons
>>> hmass.execute()

然后我们可以将其转换回MDAnalyse以进行进一步分析。**

>>> u2 = mda.Universe(parm)
>>> u2.atoms.masses[:10]
array([2.03399992, 5.        , 5.        , 5.        , 8.01799965,
   5.        , 0.034     , 5.        , 5.        , 5.        ])

7.2.1. 班级

class MDAnalysis.converters.ParmEd.ParmEdReader(filename, convert_units=True, n_atoms=None, **kwargs)[源代码]

ParmEd的坐标读取器。

units = {'length': 'Angstrom', 'time': None}

带有以下单位的词典 time长度 (及 速度 ..用于支持它的格式)

class MDAnalysis.converters.ParmEd.ParmEdConverter[源代码]

将MDAnalysis原子组或语义层转换为ParmEdge Structure

示例

import parmed as pmd
import MDAnalysis as mda
from MDAnalysis.tests.datafiles import GRO
pgro = pmd.load_file(GRO)
mgro = mda.Universe(pgro)
parmed_subset = mgro.select_atoms('resname SOL').convert_to('PARMED')
convert(obj)[源代码]

将当前轨迹帧上的选择写入 Structure

参数:

obj (AtomGroup or Universe or Timestep) --

units = {'length': 'Angstrom', 'time': None}

带有以下单位的词典 time长度 (及 速度 ..用于支持它的格式)

在 2.0.0 版本发生变更: ParmEdReader和ParmEdConverter类从 coordinatesconverters