6.24. XYZ轨迹阅读器 MDAnalysis.coordinates.XYZ

这个 XYZ format 是一种定义松散、简单的坐标轨迹格式。实现的格式定义取自 VMD xyzplugin 因此与VMD兼容。

请注意以下事项:

  • XYZ文件中不允许有注释(我们既不读也不写注释以保持与VMD的兼容性)。

  • 原子名称(第一列)在读取过程中被忽略。

  • 假设坐标是空格分隔的,而不是固定的宽度(这可能会导致问题-见下文)。

  • Z坐标右侧的所有字段都将被忽略。

  • 单元格信息全为零,因为这不是以XYZ格式记录的。

单位

  • 坐标以埃为单位。

  • 时间步长可以通过传递 dt 参数,则它被假定为以ps为单位(默认为1 ps)。

似乎没有严格的格式定义,因此用户可能需要调整这个类。

6.24.1. XYZ文件格式

所使用的定义 XYZReaderXYZWriter (及 VMD xyzplugin 定义出自何处)::

[ comment line            ] !! NOT IMPLEMENTED !! DO NOT INCLUDE
[ N                       ] # of atoms, required by this xyz reader plugin  line 1
[ molecule name           ] name of molecule (can be blank)                 line 2
atom1 x y z [optional data] atom name followed by xyz coords                line 3
atom2 x y z [ ...         ] and (optionally) other data.
...
atomN x y z [ ...         ]                                                 line N+2

备注

  • 未实现的注释行(不包括它们)

  • 分子名称:行为必填项,但此时忽略内容

  • 可选数据(坐标之后)目前被忽略

6.24.2. 班级

class MDAnalysis.coordinates.XYZ.XYZReader(filename, **kwargs)[源代码]

从XYZ文件读取

数据:
ts

包含当前帧坐标的TimeStep对象

方法::
len(xyz)

返回以xyz为单位的帧数

for ts in xyz:

遍历轨迹

XYZ文件格式遵循VMD的 xyzplugin ,还将在 XYZ format

在 0.11.0 版本发生变更: 帧现在基于0,而不是基于1。增列 dttime_offset 关键字(传递给 Timestep )

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

返回的XYZWriter 文件名 具有与此XYZ相同的参数。

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

  • n_atoms (int (optional)) -- 原子数。如果没有给出使用阅读器实例的相同数量的原子

  • **kwargs -- 看见 XYZWriter 获取更多的Kwarg

返回类型:

XYZWriter (有关更多详细信息,请参阅此处)

参见

XYZWriter

close()[源代码]

如果XYZ轨迹文件处于打开状态,请将其关闭。

property n_atoms

一帧中的原子数

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

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

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

写入XYZ文件

未正式定义XYZ文件格式。本文作者介绍了molfile的VMD实现 xyzplugin

备注

默认情况下,XYZ编写器将尝试使用输入 AtomGroupUniverse elements 记录以在XYZ文件中指定原子名称。如果 elements 记录丢失,则 name 将使用记录。如果这两个原子都不可用,那么这些原子都将被命名为 X 。请看, User Guide 有关如何添加拓扑属性的详细信息,请参阅如果要将自己的元素/原子名称添加到 Universe

在 1.0.0 版本发生变更: 使用元素属性而不是名称属性(如果存在)。

在 2.0.0 版本发生变更: 将TimeStep传递给编写器的支持在1.0中已弃用,现已删除。因此,自定义名称不能再传递给编写器,应将这些名称添加到 Universe ,或 AtomGroup 在引用作者之前。

初始化XYZ轨迹写入器

参数:
  • filename (str) -- 轨迹文件的文件名。如果它以“gz”结尾,那么文件将是gzip压缩的;如果它以“bz2”结尾,它将是bzip2压缩的。

  • n_atoms (int (optional)) -- 轨迹中的原子数。默认情况下,假设该选项为None,并且该文件用于存储多个不同的模型,而不是单个轨迹。如果提供了一个数字,则每个写入的时间步长必须包含相同数量的原子。

  • convert_units (bool (optional)) -- 在写入时将数量转换为默认的埃的MDAnalysis单位 [True]

  • remark (str (optional)) -- 单行文本(“分子名称”)。默认情况下,写入MDAnalysis版本和框架

在 1.0.0 版本发生变更: 已删除 default_remark 变量(问题#2692)。

在 2.0.0 版本发生变更: 由于删除了作为写入输入的TimeStep,因此ATOM参数不再相关,已被删除。如果经过一个空宇宙,请使用 add_TopologyAttr 添加所需的元素或名称。

close()[源代码]

关闭轨迹文件并完成写入

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

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

write(obj)[源代码]

写入对象 obj 在当前轨迹帧到文件。

输出中的原子元素(或名称)取自 obj 或默认为 atoms 关键字提供给 XYZWriter 构造函数。

参数:

obj (Universe or AtomGroup) -- 这个 AtomGroupUniverse 去写作。

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