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类已从 topology
至 converters
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')
- units = {'length': 'Angstrom', 'time': None}
带有以下单位的词典 time 和 长度 (及 速度 , 力 ..用于支持它的格式)
在 2.0.0 版本发生变更: ParmEdReader和ParmEdConverter类从 coordinates
至 converters