6.33. ChainReader MDAnalysis.coordinates.chain
这个 ChainReader
由MDAnalysis在内部使用,以将多个轨迹表示为一个虚拟轨迹。用户通常不需要使用 ChainReader
并且下面的文档主要是开发人员感兴趣的。
- class MDAnalysis.coordinates.chain.ChainReader(filenames, skip=1, dt=None, continuous=False, convert_units=True, **kwargs)[源代码]
动态连接多个轨迹的阅读器。
这个
ChainReader
由MDAnalysis在内部使用,以将多个轨迹表示为一个虚拟轨迹。用户通常不需要使用ChainReader
明确地说。ChainReader还可以处理多个文件中的连续轨迹拆分。要使用此过程,请使用
continuous == True
关键字参数。设置continuous=True
将使读者以这样的方式从轨迹集中选择帧,即该轨迹看起来在时间上尽可能连续,即该时间严格地单调增加。这意味着将不会有重复的时间框架,也不会在时间上倒退。然而,时间上可能存在差距(例如,多个时间步长可能看起来缺失)。归根结底,用户有责任确保输入轨迹能够以有意义的方式几乎拼接在一起。以下面的轨迹为例,它分为三个部分。该列表示时间和轨迹段重叠。使用连续链式阅读器时,只会读取标有+的帧。part01: ++++-- part02: ++++++- part03: ++++++++
警告
向链条阅读器提供轨迹的顺序可以更改与CONTINUE选项一起使用的帧。
默认链式阅读器将读取所有帧。当前仅XTC、TRR和LAMMPSDUMP文件支持CONTINUINE选项。
备注
轨迹API属性存在,但大多数只反映列表中的第一个轨迹;
ChainReader.n_frames
,ChainReader.n_atoms
,以及ChainReader.fixed
不过,都设置得很好在 0.11.0 版本发生变更: 帧现在基于0而不是基于1
在 0.13.0 版本发生变更:
time
现在报告每个轨迹的帧和个人的时间总和dt
。在 0.19.0 版本发生变更: 已添加
continuous
轨迹选项在 0.19.0 版本发生变更: 限制产量 __repr__
在 2.0.0 版本发生变更: 现在,ChainReader可以进行(非)腌制了。取消酸洗时,保留当前时间步长。
设置链式阅读器。
- 参数:
filenames (str or list or sequence) -- 文件名或文件名列表;阅读器将打开所有文件名并按列表中轨迹的顺序提供帧。每个轨迹必须包含相同顺序的相同数量的原子(即,它们必须都属于相同的拓扑)。轨迹格式是根据每个文件名的扩展名推导出来的。延长期: filenames 是纯文件名格式的单个文件名或文件名列表
(filename, format)
元组组合。这允许显式设置每个单独轨迹文件的格式。skip (int (optional)) -- 跳过步骤(也传递到各个轨迹读取器);所有轨迹必须相同
dt (float (optional)) -- 传递到各个轨迹读取器以强制帧之间的公共时间差(以MDAnalysis时间单位表示)。如果未设置,则每个读取器的 dt 在报告帧时间时将使用(从轨迹文件推断,或设置为读者的默认设置);请注意,这可能会导致帧之间的时间差不一致。
continuous (bool (optional)) -- 将所有轨迹视为一个单独的长轨迹。添加多个检查;所有轨迹都具有相同的DT,它们至少包含2个帧,并且它们都属于相同的文件类型。未对所有轨迹格式执行!这可用于分析GROMACS模拟,而无需在分析前将其串联。
**kwargs (dict (optional)) -- 所有其他关键字参数都原封不动地传递给每个轨迹读取器
- _get_local_frame(k) Tuple[int, int] [源代码]
查找链式框架的轨迹索引和轨迹框架 k 。
- 参数:
k (int) -- 框架 k 在链式轨迹中可以找到在索引中的轨迹 i 和帧索引 f 。帧在内部被视为轨迹中从0开始的索引。
- 返回:
i ( int )--轨迹
f ( int )--轨迹中的帧I
- 抛出:
IndexError for k<0 or i<0. --
备注
不检查是否 k 大于链接轨迹中的最大帧数。
- _read_frame(frame)[源代码]
帧索引处的位置轨迹 frame 然后回来
Timestep
。该帧被转换为相应的读取器和本地帧索引,并且
Timestep
实例位于ChainReader.ts
已更新。备注
frame 是从0开始的,即通过访问轨迹中的第一帧
frame = 0
。
- property active_reader
当前正在从中读取帧的读取器实例。
- property compressed
compressed
当前读取的轨迹的属性
- convert_pos_from_native(x)[源代码]
坐标数组x从原生单位到基本单位的转换。
- 参数:
x (array_like) -- 要转型的职位
inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据
备注
默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。
在 0.7.5 版本发生变更: 关键字 inplace 可以设置为
False
以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。
- convert_pos_to_native(x)[源代码]
坐标数组的转换 x 从基本单位到本地单位。
- 参数:
x (array_like) -- 要转型的职位
inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据
备注
默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。
在 0.7.5 版本发生变更: 关键字 inplace 可以设置为
False
以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。
- convert_time_from_native(t)[源代码]
转换时间 t 从原生单位到基本单位。
- 参数:
t (array_like) -- 要转换的时间值
inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据
备注
默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。
在 0.7.5 版本发生变更: 关键字 inplace 可以设置为
False
以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。
- convert_time_to_native(t)[源代码]
转换时间 t 从基本单位到本地单位。
- 参数:
t (array_like) -- 要转换的时间值
inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据
备注
默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)
在 0.7.5 版本发生变更: 关键字 在位 可以设置为
False
以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。
- property frame
当前时间步长的累计帧编号。
- property time
当前帧的累积时间,以MDAnalysis时间单位(通常为ps)表示。