13.3.1. 低级别Gromacs XDR轨迹读取- MDAnalysis.lib.formats.libmdaxdr
libmdaxdr
包含类 XTCFile
和 TRRFile
。两者都可用于对帧进行读写操作 Gromacs XTC和TRR文件。这些类由中的MDAnalysis内部使用 MDAnalysis.coordinates.XTC
和 MDAnalysis.coordinates.TRR
。它们的行为类似于普通文件对象。
例如,可以使用 XTCFile
直接计算平均坐标(其中坐标存储在 x 属性的属性。 namedtuple
frame ):
with XTCFile("trajectory.xtc") as xtc:
n_atoms = xtc.n_atoms
mean = np.zeros((n_atoms, 3))
# iterate over trajectory
for frame in xtc:
mean += frame.x
这个 XTCFile
类作为压缩存储格式非常有用。
除了迭代, XTCFile
和 TRRFile
用户还可以使用 seek()
方法。这是通过懒惰地为存储的帧生成偏移列表来提供的。第一次生成抵销列表 len()
或者:`~XTCFile.eark`被调用。
(有关如何使用的更多详细信息 XTCFile
和 TRRFile
请参阅中的源代码 lib/formats/libmdaxdr.pyx (暂时如此。)
- class MDAnalysis.lib.formats.libmdaxdr.TRRFile
用于Gromacs TRR文件的文件式包装。
这个类可以类似于python中的普通文件对象。函数的作用是:返回一个帧和其中的所有信息,而不是一行。此外,还支持上下文管理器协议。
- 参数:
fname (str) -- 要打开的文件名。
mode (('r', 'w')) -- 打开文件的模式,‘r’读取或‘w’写入
示例
>>> from MDAnalysis.lib.formats.libmdaxdr import TRRFile >>> with TRRFile('foo.trr') as f: >>> for frame in f: >>> print(frame.x)
备注
这个类可以进行腌制。Pickle将存储文件名、模式、当前帧和偏移量
在 2.4.0 版本发生变更: 添加了READ_DIRECT_xvf方法以读入现有的Points数组
- calc_offsets()
直接从TRR文件读取字节偏移量
- offsets
从当前XDR文件获取字节偏移量
参见
- open(fname, mode)
打开XDR文件
如果当前打开了另一个XDR文件,则该文件将被关闭
- read()
读取TRR文件中的下一帧
- 返回:
框架 --带帧信息的命名元组
- 返回类型:
libmdaxdr.TRRFrame
参见
TRRFrame
,XTCFile
- 抛出:
IOError --
- read_direct_xvf(positions, velocities, forces)
读取TRR文件中的下一帧,并将位置直接读取到预先存在的数组中。
- 参数:
positions (np.ndarray) -- 要读取位置的位置数组
- 返回:
框架 --带帧信息的命名元组
- 返回类型:
libmdaxdr.TRRFrame
参见
TRRFrame
,XTCFile
- 抛出:
IOError --
在 2.4.0 版本加入.
- seek(frame)
寻求陷害。
请注意,此函数将生成内部文件偏移量(如果之前未设置)。对于大文件,这意味着第一次寻道可能非常慢。以后的寻找将会非常快。
- set_offsets(offsets)
设置帧偏移
- tell()
获取当前帧
- write(xyz, velocity, forces, box, step, time, _lambda, natoms)
将一帧写入TRR文件。
- 参数:
xyz (array_like, shape=(n_atoms, 3), optional) -- 传送带坐标。仅在未写入的情况下写入
None
。velocity (array_like, shape=(n_atoms, 3), optional) -- Cartesion速度。仅在未写入的情况下写入
None
。forces (array_like, shape=(n_atoms, 3), optional) -- 传送力。仅在未写入的情况下写入
None
。box (array_like, shape=(3, 3)) -- 此帧的长方体矢量
step (int) -- 当前步骤编号,%1已编制索引
time (float) -- 当前时间
_lambda (float) -- 当前的波长值
natoms (int) -- 帧中的原子数
- 抛出:
IOError --
- class MDAnalysis.lib.formats.libmdaxdr.XTCFile
Gromacs XTC文件的类似文件的包装。
这个类可以类似于python中的普通文件对象。函数的作用是:返回一个帧和其中的所有信息,而不是一行。此外,还支持上下文管理器协议。
- 参数:
fname (str) -- 要打开的文件名。
mode (('r', 'w')) -- 打开文件的模式,‘r’读取或‘w’写入
示例
>>> from MDAnalysis.lib.formats.libmdaxdr import XTCFile >>> with XTCFile('foo.trr') as f: >>> for frame in f: >>> print(frame.x)
备注
这个类可以进行腌制。Pickle将存储文件名、模式、当前帧和偏移量
在 2.4.0 版本发生变更: 添加了READ_DIRECT_x方法以读入现有的Points数组
- calc_offsets()
直接从XTC文件计算偏移量
- offsets
从当前XDR文件获取字节偏移量
参见
- open(fname, mode)
打开XDR文件
如果当前打开了另一个XDR文件,则该文件将被关闭
- read()
读取XTC文件中的下一帧
- 返回:
框架 --带帧信息的命名元组
- 返回类型:
libmdaxdr.XTCFrame
参见
XTCFrame
,TRRFile
- 抛出:
IOError --
- read_direct_x(positions)
读取XTC文件中的下一帧,并将位置直接读取到预先存在的数组中。
- 参数:
positions (np.ndarray) -- 要读取位置的位置数组
- 返回:
框架 --带帧信息的命名元组
- 返回类型:
libmdaxdr.XTCFrame
参见
XTCFrame
,TRRFile
- 抛出:
IOError --
在 2.4.0 版本加入.
- seek(frame)
寻求陷害。
请注意,此函数将生成内部文件偏移量(如果之前未设置)。对于大文件,这意味着第一次寻道可能非常慢。以后的寻找将会非常快。
- set_offsets(offsets)
设置帧偏移
- tell()
获取当前帧