6.24. XYZ轨迹阅读器 MDAnalysis.coordinates.XYZ
这个 XYZ format 是一种定义松散、简单的坐标轨迹格式。实现的格式定义取自 VMD xyzplugin 因此与VMD兼容。
请注意以下事项:
XYZ文件中不允许有注释(我们既不读也不写注释以保持与VMD的兼容性)。
原子名称(第一列)在读取过程中被忽略。
假设坐标是空格分隔的,而不是固定的宽度(这可能会导致问题-见下文)。
Z坐标右侧的所有字段都将被忽略。
单元格信息全为零,因为这不是以XYZ格式记录的。
单位
坐标以埃为单位。
时间步长可以通过传递 dt 参数,则它被假定为以ps为单位(默认为1 ps)。
似乎没有严格的格式定义,因此用户可能需要调整这个类。
6.24.1. XYZ文件格式
所使用的定义 XYZReader
和 XYZWriter
(及 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。增列 dt 和 time_offset 关键字(传递给
Timestep
)- Writer(filename, n_atoms=None, **kwargs)[源代码]
返回的XYZWriter 文件名 具有与此XYZ相同的参数。
- 参数:
- 返回类型:
XYZWriter
(有关更多详细信息,请参阅此处)
参见
- 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编写器将尝试使用输入
AtomGroup
或Universe
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
添加所需的元素或名称。- units = {'length': 'Angstrom', 'time': 'ps'}
带有以下单位的词典 time 和 长度 (及 速度 , 力 ..用于支持它的格式)