13.3.1. 低级别Gromacs XDR轨迹读取- MDAnalysis.lib.formats.libmdaxdr

libmdaxdr 包含类 XTCFileTRRFile 。两者都可用于对帧进行读写操作 Gromacs XTC和TRR文件。这些类由中的MDAnalysis内部使用 MDAnalysis.coordinates.XTCMDAnalysis.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 类作为压缩存储格式非常有用。

除了迭代, XTCFileTRRFile 用户还可以使用 seek() 方法。这是通过懒惰地为存储的帧生成偏移列表来提供的。第一次生成抵销列表 len() 或者:`~XTCFile.eark`被调用。

(有关如何使用的更多详细信息 XTCFileTRRFile 请参阅中的源代码 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文件读取字节偏移量

close()

关闭打开的XDR文件

抛出:

IOError --

offsets

从当前XDR文件获取字节偏移量

参见

set_offsets

open(fname, mode)

打开XDR文件

如果当前打开了另一个XDR文件,则该文件将被关闭

参数:
  • fname (str) -- 要打开的文件名。

  • mode (('r', 'w')) -- 打开文件的模式,‘r’读取或‘w’写入

抛出:

IOError --

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)

寻求陷害。

请注意,此函数将生成内部文件偏移量(如果之前未设置)。对于大文件,这意味着第一次寻道可能非常慢。以后的寻找将会非常快。

参数:

frame (int) -- 将文件查找到给定帧

抛出:

IOError --

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文件计算偏移量

close()

关闭打开的XDR文件

抛出:

IOError --

offsets

从当前XDR文件获取字节偏移量

参见

set_offsets

open(fname, mode)

打开XDR文件

如果当前打开了另一个XDR文件,则该文件将被关闭

参数:
  • fname (str) -- 要打开的文件名。

  • mode (('r', 'w')) -- 打开文件的模式,‘r’读取或‘w’写入

抛出:

IOError --

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)

寻求陷害。

请注意,此函数将生成内部文件偏移量(如果之前未设置)。对于大文件,这意味着第一次寻道可能非常慢。以后的寻找将会非常快。

参数:

frame (int) -- 将文件查找到给定帧

抛出:

IOError --

set_offsets(offsets)

设置帧偏移

tell()

获取当前帧

write(xyz, box, step, time, precision=1000.0)

将一帧写入XTC文件

参数:
  • xyz (array_like, shape=(n_atoms, 3)) -- Cartesion坐标

  • box (array_like, shape=(3, 3)) -- 此帧的长方体矢量

  • step (int) -- 当前步骤编号,%1已编制索引

  • time (float) -- 当前时间

  • precision (float (optional)) -- 保存轨迹的精度,请参阅备注

备注

Gromacs指定的精度有点奇怪。坐标将与精度相乘,然后转换为整数。这意味着1000的精度会产生3位小数位的精度。

抛出:

IOError --