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
)。- 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。
- 参数:
备注
要使用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 和 长度 (及 速度 , 力 ..用于支持它的格式)
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)三斜向量表示的平面化版本。重新排列成奇数的格陵兰顺序是自动完成的。