6.8. GRO文件格式 MDAnalysis.coordinates.GRO

要读写的类 Gromacs GRO_COLUDATE文件;请参阅 GRO format 其包括用于盒子的转换例程。

6.8.1. 正在写入GRO文件

默认情况下,任何写入的GRO文件都将对ATOM ID重新编号,以便从1开始按顺序移动。 reindex=False 关键字参数。在编写更大宇宙的一部分,同时希望保留原子的原始身份时,这是很有用的。

例如::

>>> u = mda.Universe()`

>>> u.atoms.write('out.gro', reindex=False)

# OR
>>> with mda.Writer('out.gro', reindex=False) as w:
...     w.write(u.atoms)

6.8.2. 班级

class MDAnalysis.coordinates.GRO.GROReader(filename, convert_units=True, n_atoms=None, **kwargs)[源代码]

Gromacs Gro Structure格式的阅读器。

备注

该读取器将只读取文件中存在的第一帧。

备注

具有归零的3个输入单位单元格的GRO文件(即 0.0   0.0   0.0 )被读取为丢失的单位单元信息。在这些情况下 dimensions 将设置为 None

在 0.11.0 版本发生变更: 帧现在基于0而不是基于1

在 2.0.0 版本发生变更: Reader现在只解析用3或9个字段定义的框。读取器现在读取3个条目的零单位单元(即 [0, 0, 0] )作为没有维度信息的存在(即,时间步长是否将维度 None )。

Writer(filename, n_atoms=None, **kwargs)[源代码]

返回以下项的CRDWriter 文件名

参数:

filename (str) -- 输出GRO文件的文件名

返回类型:

GROWriter

units = {'length': 'nm', 'time': None, 'velocity': 'nm/ps'}

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

class MDAnalysis.coordinates.GRO.GROWriter(filename, convert_units=True, n_atoms=None, **kwargs)[源代码]

符合轨迹API的GRO编写器。

将尝试从拓扑中写入以下信息:
  • 原子名称(默认为‘X’)

  • 重命名(默认为‘unk’)

  • 保留(默认为“%1”)

备注

精度被硬编码到小数点后三位。

备注

当缺少维度时(即设置为 None ),则将写入零宽度单位单元框(即 [0.0、0.0、0.0] )。

在 0.11.0 版本发生变更: 帧现在基于0而不是基于1

在 0.13.0 版本发生变更: 现在严格以3DP精度写入位置。速度为4dp。删除了 convert_dimensions_to_unitcell 方法,请使用 Timestep.triclinic_dimensions 取而代之的是。现在,在可能的情况下编写速度。

在 0.18.0 版本发生变更: 已添加 reindex 关键字参数,以允许保留原始原子ID。

在 2.0.0 版本发生变更: 写入缺少维度信息的TimeStep时引发警告(即设置为 None )。

设置精度为3位小数的GROWriter。

参数:
  • filename (str) -- 输出文件名

  • n_atoms (int (optional)) -- 原子数

  • convert_units (bool (optional)) -- 单位转换为MDAnalysis基本格式; [True]

  • reindex (bool (optional)) -- 默认情况下,所有原子都被重新索引为具有从1开始的原子ID。 [True] 但是,可以通过指定 reindex =False

备注

要使用reindex关键字,用户可以遵循下面给出的两个示例。::

u = mda.Universe()

用法1::

u.atoms.write('out.gro', reindex=False)

用法2::

with mda.Writer('out.gro', reindex=False) as w:
    w.write(u.atoms)
fmt = {'box_orthorhombic': '{box[0]:10.5f} {box[1]:9.5f} {box[2]:9.5f}\n', 'box_triclinic': '{box[0]:10.5f} {box[4]:9.5f} {box[8]:9.5f} {box[1]:9.5f} {box[2]:9.5f} {box[3]:9.5f} {box[5]:9.5f} {box[6]:9.5f} {box[7]:9.5f}\n', 'n_atoms': '{0:5d}\n', 'xyz': '{resid:>5d}{resname:<5.5s}{name:>5.5s}{index:>5d}{pos[0]:8.3f}{pos[1]:8.3f}{pos[2]:8.3f}\n', 'xyz_v': '{resid:>5d}{resname:<5.5s}{name:>5.5s}{index:>5d}{pos[0]:8.3f}{pos[1]:8.3f}{pos[2]:8.3f}{vel[0]:8.4f}{vel[1]:8.4f}{vel[2]:8.4f}\n'}

GRO文件的格式字符串(都包括换行符);3位小数的精度在这里是硬编码的。

units = {'length': 'nm', 'time': None, 'velocity': 'nm/ps'}

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

write(obj)[源代码]

将当前轨迹帧上的选择写入文件。

参数:

obj (AtomGroup or Universe) --

备注

GRO格式只允许5位数字用于 残存原子数 。如果这些数字大于99,999,则此例程将砍掉前导数字。

在 0.7.6 版本发生变更: 重命名原子名称 被截断为最多5个字符

在 0.16.0 版本发生变更: frame Kwarg已被移除

在 2.0.0 版本发生变更: 已删除不推荐使用TIMESTEP调用的支持。取而代之的是使用原子组或宇宙作为输入。

6.8.3. 开发人员注意到: GROWriter 格式化字符串

这个 GROWriter 类有一个 GROWriter.fmt 属性,它是用于写入行的不同字符串的字典 .gro 档案。这些建议如下:

n_atoms

对于gro文件的第一行,提供系统中的原子数。例如::

fmt['n_atoms'].format(42)
xyz

一条没有速度的原子线。要求提供‘resid’、‘resname’、‘name’、‘index’和‘pos’键。例如::

fmt['xyz'].format(resid=1, resname='SOL', name='OW2', index=2, pos=(0.0, 1.0, 2.0))
xyz_v

如上所述,但速度很快。需要一个额外的关键字‘vel’。

box_orthorhombic

GRO文件的最后一行,它提供了框的尺寸。需要给定box关键字,该关键字应该是三个笛卡尔维度。例如::

fmt['box_orthorhombic'].format(box=(10.0, 10.0, 10.0))
box_triclinic

如上所述,但用于非正交框。需要box关键字,但这次是长度为9的向量。这是单位单元的(3,3)三斜向量表示的平面化版本。重新排列成奇数的格陵兰顺序是自动完成的。