6.11. LAMMPS DCD轨迹和数据I/O MDAnalysis.coordinates.LAMMPS

要读写的类 LAMMPS DCD二进制轨迹、LAMMPS数据文件和LAMMPS转储文件。轨迹可以被读取,而不受系统字符顺序的影响,因为这是自动检测的。

LAMMPS可以 write DCD 轨迹,但与 CHARMM trajectory (通常被称为DCD,尽管CHARMM自己称它们为“TRJ”)时间单位不固定为 AKMA 时间单位(20 Akma为0.978皮秒或1 Akma=4.888821e-14 s),但取决于LAMMPS中的设置。生物分子模拟最常见的情况似乎是时间步长以飞秒(命令)为单位记录 units real 在输入文件中)和长度(ngströms)。其他情况是无单位的Lennard-Jones时间单位。

这给MDAnalysis带来了一个问题,因为它无法从文件中自动检测单元。默认情况下,我们假设长度的单位是ngström,时间是飞秒。如果不是这样,则用户 应提供适当的单位 在关键字中 时间单位 和/或 长度单位DCDWriterUniverse (然后调用 DCDReader )。

6.11.1. 数据文件格式

默认情况下, atomicfull Atom样式是预期的,但是可以自定义,请参见 原子样式

6.11.2. 转储文件

DumpReader需要使用默认ASCII转储文件写入 LAMMPS dump format 《原子》中的

6.11.3. 示例:加载LAMMPS仿真

从LAMMPS数据文件加载LAMMPS仿真(使用 DATAParser )和一张LAMMPS DCD real “提供关键字 format="LAMMPS “::

>>> u = MDAnalysis.Universe("lammps.data", "lammps_real.dcd", format="LAMMPS")

如果轨迹使用 单位纳米 然后使用::

>>> u = MDAnalysis.Universe("lammps.data", "lammps_nano.dcd", format="LAMMPS",
...                          lengthunit="nm", timeunit="ns")

为了扫描轨迹以找到所需的帧并写入LAMMPS数据文件,

>>> for ts in u.trajectory:
...     # analyze frame
...     if take_this_frame == True:
...         with mda.Writer('frame.data') as W:
...             W.write(u.atoms)
...         break

备注

没有实施Lennard-Jones单位。看见 MDAnalysis.units 有关其他公认的值和LAMMPS的文档 units command

6.11.4. 班级

class MDAnalysis.coordinates.LAMMPS.DCDReader(dcdfilename, **kwargs)[源代码]

阅读一篇 LAMMPS DCD轨迹。

可以使用关键字参数从构造函数设置单位 时间单位长度单位 。缺省值为“fs”和“angstrom”,对应于LAMMPS units stylereal “。请参阅 MDAnalysis.units 用于其他公认的值。

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

  • convert_units (bool (optional)) -- 将单位转换为MDAnalysis单位

  • dt (float (optional)) -- 覆盖存储在DCD中的时间增量

  • **kwargs (dict) -- 读者的一般论点。

在 0.17.0 版本发生变更: 更改为使用libdcd.pyx库并删除了correl函数

OtherWriter(filename, **kwargs)

返回适用于的编写器 文件名

设置默认关键字 开始stepdt (如果可用)。 n_atoms 始终设置为 Reader.n_atoms

参见

Reader.Writer()

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

用于轨迹格式的返回写入器

add_auxiliary(aux_spec: str | Dict[str, str] = None, auxdata: str | AuxReader = None, format: str = None, **kwargs) None

添加要与轨迹一起读取的辅助数据。

辅助数据可以是除了由轨迹读取器读入的轨迹之外的来自轨迹的任何数据时间序列。 辅助数据 可以是一个 AuxReader 实例,或数据本身作为文件名;在后一种情况下,适当的 AuxReader 是从数据/文件格式中猜测出来的。一种适当的 format 也可以直接作为关键字参数提供。

添加时,AuxReader最初与轨迹的当前时间步长匹配,并将在轨迹时步更改时更新(通过调用 next() 或者跳跃时间步长 trajectory[i] )。

每个时间步长的辅助数据的代表值(S)(由 AuxReader )存储在 ts.aux 下的命名空间 aux_spec ;例如,要添加存储在Pull-force.xvg中的其他拉力数据::

u = MDAnalysis.Universe(PDB, XTC)
u.trajectory.add_auxiliary('pull', 'pull-force.xvg')

然后,当前时间步长的代表值可以被访问为 u.trajectory.ts.aux.pullu.trajectory.ts.aux['pull']

以下内容适用于能源读者,如 EDRReader

可以通过省略来添加(能源)文件中存在的所有数据 aux_spec 像这样::

u.trajectory.add_auxiliary(auxdata="ener.edr")

aux_spec 属性中映射所需属性名称的字典。 ts.aux 命名空间设置为要添加的精确数据,该数据由 data_selector **

term_dict = {"temp": "Temperature", "epot": "Potential"}
u.trajectory.add_auxiliary(term_dict, "ener.edr")

例如,添加此数据对于基于非坐标数据(如每个时间步长的势能)过滤轨迹帧可能很有用。轨迹切片允许处理帧的子集:

selected_frames = np.array([ts.frame for ts in u.trajectory
                            if ts.aux.epot < some_threshold])
subset = u.trajectory[selected_frames]

备注

假设辅助数据是按时间排序的,没有重复。请参阅 辅助API

add_transformations(*transformations)

添加要应用于轨迹的所有变换。

此函数将转换列表作为参数。这些转换是将由Reader调用的函数,并为其提供 Timestep 对象作为参数,它将被转换并返回给读取器。这些转换可以是 transformations 模块,或由用户创建,并以列表形式存储 transformations 。此列表只能修改一次,进一步调用此函数将引发异常。

u = MDAnalysis.Universe(topology, coordinates)
workflow = [some_transform, another_transform, this_transform]
u.trajectory.add_transformations(*workflow)

将按照列表中给出的顺序应用转换 transformations 即,第一个转换是要应用于 Timestep 。上面的示例等同于

for ts in u.trajectory:
   ts = this_transform(another_transform(some_transform(ts)))
参数:

transform_list (list) -- 将按列表中给定的顺序应用于坐标的所有变换的列表

property aux_list

列出新增辅助数据的名称。

check_slice_indices(start, stop, step)

检查帧索引是否有效,并剪裁以适合轨迹。

该用法遵循以下标准的Python约定 range() 但请参阅下面的警告。

参数:
  • start (int or None) -- 起始帧索引(含)。 None 对应于缺省值0,即初始帧。

  • stop (int or None) -- 最后一帧索引(独占)。 None 对应于默认的n帧,即它包括轨迹的最后一帧。

  • step (int or None) -- 切片的步长大小, None 对应于缺省值1,即包括范围中的每一帧 startstop

返回:

开始、停止、步进 --表示切片的整数

返回类型:

tuple (int, int, int)

警告

返回值 startstopstep 传入时给出预期结果 range() ,但在传入 slice 什么时候 stop=Nonestep=-1

对于此方法的输出的下游处理来说,这可能是一个问题。例如,轨迹切片是通过传递 check_slice_indices()range() ::

range(start, stop, step)

并将其作为随机寻求的指标。另一方面,在 MDAnalysis.analysis.base.AnalysisBase 由返回的值 check_slice_indices() 用于拼接轨迹,方法是创建 slice 实例::

slice(start, stop, step)

这会造成差异,因为这两行不相等::

range(10, -1, -1)             # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
range(10)[slice(10, -1, -1)]  # []
close()[源代码]

近距离阅读

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

copy()

退还本阅读器的独立副本。

新的阅读器将有自己的文件句柄,可以独立于原始阅读器进行查找/迭代。

还将复制原始读取器中保存的时间步长的当前状态。

在 2.2.0 版本发生变更: 用于构造读取器的参数被正确捕获并传递给新类的创建。以前是唯一的 n_atoms 被传递给类副本,导致使用默认参数创建的类可能与原始类不同。

property dimensions

单元格尺寸( ABCAlphabeta伽马 )

property dt

帧之间的时间步长

property frame: int

当前时间步长的帧编号。

这是一条简单的捷径 Timestep.frame

get_aux_attribute(auxname, attrname)

获取的价值 属性名称 从辅助器 辅助名称

参数:
  • auxname (str) -- 要获取其值的辅助设备的名称

  • attrname (str) -- 辅助读取器中的gettable属性的名称

get_aux_descriptions(auxnames=None)

获取描述以允许重新加载指定的辅助项。

如果未提供辅助名称,则默认为添加的辅助名称的完整列表。

将生成的描述传递给 add_auxiliary() 将允许辅助人员的娱乐活动。例如,将所有辅助词复制到第二个轨迹中:

descriptions = trajectory_1.get_aux_descriptions()
for aux in descriptions:
    trajectory_2.add_auxiliary(**aux)
返回:

描述每个辅助词的args/kwargs词典列表。

返回类型:

list

iter_as_aux(auxname)

迭代至少有一个来自辅助步骤的分配步骤的时间步长 辅助名称 中指定的截止范围内 辅助名称

iter_auxiliary(auxname, start=None, stop=None, step=None, selected=None)

遍历辅助词 辅助名称 与弹道无关。

将迭代辅助的指定步骤(默认为所有步骤)。允许访问辅助对象中的所有值,包括轨迹时间范围之外的值,而不必同时迭代轨迹。

迭代后,辅助器将重新定位在当前步骤。

参数:
  • auxname (str) -- 要迭代的辅助对象的名称。

  • (start (optional) -- 用于在辅助对象的切片上迭代的选项。

  • stop (optional) -- 用于在辅助对象的切片上迭代的选项。

  • step) (optional) -- 用于在辅助对象的切片上迭代的选项。

  • selected (lst | ndarray, optional) -- 要迭代的步骤列表。

生成器:

AuxStep 对象

参见

iter_as_aux()

property n_frames

轨迹中的帧数

next() Timestep

前进一步到下一帧。

next_as_aux(auxname)

移动到辅助时间步长至少有一个步长的下一个时间步长 辅助名称 中指定的截止范围内 辅助名称

这允许在轨迹中前进,而不会遇到 NaN 代表值(除非这些值特别是辅助数据的一部分)。

如果未设置辅助截止,则辅助步骤较少 (auxiliary.dt > trajectory.dt ),这允许以辅助步调(四舍五入到最接近的时间步长)前进;而如果辅助步长更频繁,这将与调用 next()

请参阅 辅助API

参见

iter_as_aux()

static parse_n_atoms(filename, **kwargs)[源代码]

读取坐标文件并推算出原子数

返回:

n_atoms --坐标文件中的原子数

返回类型:

int

抛出:

NotImplementedError -- 当原子的数量无法推断时

remove_auxiliary(auxname)

清除数据并关闭 AuxReader 对于辅助者 辅助名称

rename_aux(auxname, new)

更改辅助设备的名称 辅助名称new

假设还没有名为 new ,辅助名称将在t.aux名称空间、轨迹的添加辅助项列表以及辅助阅读器本身中更改。

参数:
  • auxname (str) -- 要重命名的辅助设备的名称

  • new (str) -- 要尝试设置的新名称

抛出:

ValueError -- 如果该名称 new 已被现有的辅助设备使用。

rewind() Timestep

轨迹起始处的位置

set_aux_attribute(auxname, attrname, new)

设置的值 属性名称 在辅助词中 辅助名称

参数:
  • auxname (str) -- 要更改的辅助设备的名称

  • attrname (str) -- 辅助读取器中的可设置属性的名称

  • new -- 要尝试设置的新值 属性名称

property time

当前帧的时间,以MDAnalysis时间单位表示(通常为ps)。

这要么直接从TimeStep读取,要么计算为time= Timestep.frame * Timestep.dt

timeseries(asel=None, start=None, stop=None, step=None, order='afc')[源代码]

返回原子组的坐标数据子集

参数:
  • asel (AtomGroup) -- 这个 AtomGroup 从…读取坐标。默认为None,在这种情况下,将返回完整的坐标数据集。

  • start (int (optional)) -- 从帧索引处开始读取轨迹 start (其中0是轨迹中第一帧的索引);默认设置 None 从头开始。

  • stop (int (optional)) -- 在帧索引处结束读取轨迹 stop -1,即, stop 被排除在外。轨迹将使用默认设置读取到末尾 None

  • step (int (optional)) -- 读取步长;默认设置 None 等于1,表示读取每一帧。

  • order (str (optional)) -- 对应于(A)tom、(F)rame、(C)坐标的返回数据数组的顺序/形状允许所有六个‘a’、‘f’、‘c’的组合,即“fac”-其中形状为(帧、原子数、坐标)的返回数组

在 1.0.0 版本发生变更: skipformat 关键字已被删除。

在 2.4.0 版本发生变更: 空输入原子组现在引发ValueError,而不是NoDataError

property totaltime: float

轨迹的总长度

时间的计算方式为 (n_frames - 1) * dt 也就是说,我们假设第一帧没有经过时间。因此,具有两个帧的轨迹将被视为具有单个时间步的长度 dt 并且具有单帧的“轨迹”将被报告为长度0。

property transformations

返回转换列表

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

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

class MDAnalysis.coordinates.LAMMPS.DCDWriter(*args, **kwargs)[源代码]

写一个 LAMMPS DCD轨迹。

可以使用关键字参数从构造函数设置单位 时间单位长度单位 。缺省值为“fs”和“angstrom”。看见 MDAnalysis.units 用于其他公认的值。

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

  • n_atoms (int) -- 要写入的原子数

  • convert_units (bool (optional)) -- 从MDAnalysis单位转换为格式化特定单位

  • step (int (optional)) -- 要写入的帧之间的步数

  • dt (float (optional)) -- 两帧之间的时间。如果 None 从第一篇文章开始猜想 TimeStep

  • remarks (str (optional)) -- 要存储在DCD中的备注。不应超过240个字符

  • nsavc (int (optional)) -- DCD文件还可以将与两帧之间的间隔相对应的积分器时间步数存储为NSAVC(即,每隔多少个MD步长将一帧保存到DCD)。默认情况下,此数字仅设置为1,这对于几乎所有情况都应该足够,但如果需要, nsavc 是可以改变的。

  • istart (int (optional)) -- 开始帧编号,以积分器时间步长表示。CHARMM默认为 nsavc 即,开始于帧编号1= istart / nsavc 。价值 None 将设置 istartnsavc (CHARMM默认设置)。MDAnalys默认为0,因此第一帧的帧编号和时间为0。

  • **kwargs (dict) -- 一般作者论据

close()[源代码]

闭合轨迹

convert_dimensions_to_unitcell(ts, inplace=True)

从TimeStep读取维度 ts 并返回相应的单元格。

默认情况下,返回 [A,B,C,alpha,beta,gamma] ;如果这不合适,则必须重写此方法。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

has_valid_coordinates(criteria, x)

退货 True 如果所有值都在其格式的限制值内。

由于四舍五入,测试是不对称的(和 min 应该是负面的):

最小<x<=最大

参数:
  • criteria (dict) -- 包含 maxmin 以本地单位表示的值

  • x (numpy.ndarray) -- (x, y, z) 选定要写出的原子的坐标

返回类型:

bool

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

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

write(obj)

写入当前时间步长,使用提供的 obj

参数:

obj (AtomGroup or Universe) -- 写入与以下项关联的坐标信息 obj

备注

的大小 obj 必须与设置轨迹时提供的原子数相同。

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

class MDAnalysis.coordinates.LAMMPS.DATAReader(filename, **kwargs)[源代码]

从LAMMPS数据文件中读取单帧坐标信息。

在 0.9.0 版本加入.

在 0.11.0 版本发生变更: 帧现在基于0而不是基于1

OtherWriter(filename, **kwargs)

返回适用于的编写器 文件名

设置默认关键字 开始stepdt (如果可用)。 n_atoms 始终设置为 Reader.n_atoms

参见

Reader.Writer()

Writer(filename, **kwargs)

具有与此轨迹相同属性的轨迹写入器。

add_auxiliary(aux_spec: str | Dict[str, str] = None, auxdata: str | AuxReader = None, format: str = None, **kwargs) None

添加要与轨迹一起读取的辅助数据。

辅助数据可以是除了由轨迹读取器读入的轨迹之外的来自轨迹的任何数据时间序列。 辅助数据 可以是一个 AuxReader 实例,或数据本身作为文件名;在后一种情况下,适当的 AuxReader 是从数据/文件格式中猜测出来的。一种适当的 format 也可以直接作为关键字参数提供。

添加时,AuxReader最初与轨迹的当前时间步长匹配,并将在轨迹时步更改时更新(通过调用 next() 或者跳跃时间步长 trajectory[i] )。

每个时间步长的辅助数据的代表值(S)(由 AuxReader )存储在 ts.aux 下的命名空间 aux_spec ;例如,要添加存储在Pull-force.xvg中的其他拉力数据::

u = MDAnalysis.Universe(PDB, XTC)
u.trajectory.add_auxiliary('pull', 'pull-force.xvg')

然后,当前时间步长的代表值可以被访问为 u.trajectory.ts.aux.pullu.trajectory.ts.aux['pull']

以下内容适用于能源读者,如 EDRReader

可以通过省略来添加(能源)文件中存在的所有数据 aux_spec 像这样::

u.trajectory.add_auxiliary(auxdata="ener.edr")

aux_spec 属性中映射所需属性名称的字典。 ts.aux 命名空间设置为要添加的精确数据,该数据由 data_selector **

term_dict = {"temp": "Temperature", "epot": "Potential"}
u.trajectory.add_auxiliary(term_dict, "ener.edr")

例如,添加此数据对于基于非坐标数据(如每个时间步长的势能)过滤轨迹帧可能很有用。轨迹切片允许处理帧的子集:

selected_frames = np.array([ts.frame for ts in u.trajectory
                            if ts.aux.epot < some_threshold])
subset = u.trajectory[selected_frames]

备注

假设辅助数据是按时间排序的,没有重复。请参阅 辅助API

add_transformations(*transformations)

添加要应用于轨迹的所有变换。

此函数将转换列表作为参数。这些转换是将由Reader调用的函数,并为其提供 Timestep 对象作为参数,它将被转换并返回给读取器。这些转换可以是 transformations 模块,或由用户创建,并以列表形式存储 transformations 。此列表只能修改一次,进一步调用此函数将引发异常。

u = MDAnalysis.Universe(topology, coordinates)
workflow = [some_transform, another_transform, this_transform]
u.trajectory.add_transformations(*workflow)
参数:

transform_list (list) -- 将应用于坐标的所有变换的列表

property aux_list

列出新增辅助数据的名称。

check_slice_indices(start, stop, step)

检查帧索引是否有效,并剪裁以适合轨迹。

该用法遵循以下标准的Python约定 range() 但请参阅下面的警告。

参数:
  • start (int or None) -- 起始帧索引(含)。 None 对应于缺省值0,即初始帧。

  • stop (int or None) -- 最后一帧索引(独占)。 None 对应于默认的n帧,即它包括轨迹的最后一帧。

  • step (int or None) -- 切片的步长大小, None 对应于缺省值1,即包括范围中的每一帧 startstop

返回:

开始、停止、步进 --表示切片的整数

返回类型:

tuple (int, int, int)

警告

返回值 startstopstep 传入时给出预期结果 range() ,但在传入 slice 什么时候 stop=Nonestep=-1

对于此方法的输出的下游处理来说,这可能是一个问题。例如,轨迹切片是通过传递 check_slice_indices()range() ::

range(start, stop, step)

并将其作为随机寻求的指标。另一方面,在 MDAnalysis.analysis.base.AnalysisBase 由返回的值 check_slice_indices() 用于拼接轨迹,方法是创建 slice 实例::

slice(start, stop, step)

这会造成差异,因为这两行不相等::

range(10, -1, -1)             # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
range(10)[slice(10, -1, -1)]  # []
close()

关闭轨迹文件。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

copy()

退还本阅读器的独立副本。

新的阅读器将有自己的文件句柄,可以独立于原始阅读器进行查找/迭代。

还将复制原始读取器中保存的时间步长的当前状态。

在 2.2.0 版本发生变更: 用于构造读取器的参数被正确捕获并传递给新类的创建。以前是唯一的 n_atoms 被传递给类副本,导致使用默认参数创建的类可能与原始类不同。

property dt: float

两个轨迹帧之间的时间,以皮秒为单位。

property frame: int

当前时间步长的帧编号。

这是一条简单的捷径 Timestep.frame

get_aux_attribute(auxname, attrname)

获取的价值 属性名称 从辅助器 辅助名称

参数:
  • auxname (str) -- 要获取其值的辅助设备的名称

  • attrname (str) -- 辅助读取器中的gettable属性的名称

get_aux_descriptions(auxnames=None)

获取描述以允许重新加载指定的辅助项。

如果未提供辅助名称,则默认为添加的辅助名称的完整列表。

将生成的描述传递给 add_auxiliary() 将允许辅助人员的娱乐活动。例如,将所有辅助词复制到第二个轨迹中:

descriptions = trajectory_1.get_aux_descriptions()
for aux in descriptions:
    trajectory_2.add_auxiliary(**aux)
返回:

描述每个辅助词的args/kwargs词典列表。

返回类型:

list

iter_as_aux(auxname)

迭代至少有一个来自辅助步骤的分配步骤的时间步长 辅助名称 中指定的截止范围内 辅助名称

iter_auxiliary(auxname, start=None, stop=None, step=None, selected=None)

遍历辅助词 辅助名称 与弹道无关。

将迭代辅助的指定步骤(默认为所有步骤)。允许访问辅助对象中的所有值,包括轨迹时间范围之外的值,而不必同时迭代轨迹。

迭代后,辅助器将重新定位在当前步骤。

参数:
  • auxname (str) -- 要迭代的辅助对象的名称。

  • (start (optional) -- 用于在辅助对象的切片上迭代的选项。

  • stop (optional) -- 用于在辅助对象的切片上迭代的选项。

  • step) (optional) -- 用于在辅助对象的切片上迭代的选项。

  • selected (lst | ndarray, optional) -- 要迭代的步骤列表。

生成器:

AuxStep 对象

参见

iter_as_aux()

next()

前进一步到下一帧。

next_as_aux(auxname)

移动到辅助时间步长至少有一个步长的下一个时间步长 辅助名称 中指定的截止范围内 辅助名称

这允许在轨迹中前进,而不会遇到 NaN 代表值(除非这些值特别是辅助数据的一部分)。

如果未设置辅助截止,则辅助步骤较少 (auxiliary.dt > trajectory.dt ),这允许以辅助步调(四舍五入到最接近的时间步长)前进;而如果辅助步长更频繁,这将与调用 next()

请参阅 辅助API

参见

iter_as_aux()

classmethod parse_n_atoms(filename, **kwargs)

读取坐标文件并推算出原子数

返回:

n_atoms --坐标文件中的原子数

返回类型:

int

抛出:

NotImplementedError -- 当原子的数量无法推断时

remove_auxiliary(auxname)

清除数据并关闭 AuxReader 对于辅助者 辅助名称

rename_aux(auxname, new)

更改辅助设备的名称 辅助名称new

假设还没有名为 new ,辅助名称将在t.aux名称空间、轨迹的添加辅助项列表以及辅助阅读器本身中更改。

参数:
  • auxname (str) -- 要重命名的辅助设备的名称

  • new (str) -- 要尝试设置的新名称

抛出:

ValueError -- 如果该名称 new 已被现有的辅助设备使用。

rewind()

轨迹起始处的位置

set_aux_attribute(auxname, attrname, new)

设置的值 属性名称 在辅助词中 辅助名称

参数:
  • auxname (str) -- 要更改的辅助设备的名称

  • attrname (str) -- 辅助读取器中的可设置属性的名称

  • new -- 要尝试设置的新值 属性名称

property time

当前帧的时间,以MDAnalysis时间单位表示(通常为ps)。

这要么直接从TimeStep读取,要么计算为time= Timestep.frame * Timestep.dt

timeseries(asel: AtomGroup | None = None, start: int | None = None, stop: int | None = None, step: int | None = None, order: str | None = 'fac') ndarray

返回原子组的坐标数据子集

参数:
  • asel (AtomGroup (optional)) -- 这个 AtomGroup 从…读取坐标。默认为 None 在这种情况下,将返回完整的坐标数据集。

  • start (int (optional)) -- 从帧索引处开始读取轨迹 start (其中0是轨迹中第一帧的索引);默认设置 None 从头开始。

  • stop (int (optional)) -- 在帧索引处结束读取轨迹 stop -1,即, stop 被排除在外。轨迹将使用默认设置读取到末尾 None

  • step (int (optional)) -- 读取步长;默认设置 None 等于1,表示读取每一帧。

  • order (str (optional)) -- 对应于(A)tom、(F)rame、(C)坐标的返回数据数组的顺序/形状允许所有六个‘a’、‘f’、‘c’的组合,即“fac”-其中形状为(帧、原子数、坐标)的返回数组

在 2.4.0 版本加入.

property totaltime: float

轨迹的总长度

时间的计算方式为 (n_frames - 1) * dt 也就是说,我们假设第一帧没有经过时间。因此,具有两个帧的轨迹将被视为具有单个时间步的长度 dt 并且具有单帧的“轨迹”将被报告为长度0。

property transformations

返回转换列表

units = {'length': 'Angstrom', 'time': None, 'velocity': 'Angstrom/fs'}

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

class MDAnalysis.coordinates.LAMMPS.DATAWriter(filename, convert_units=True, **kwargs)[源代码]

将当前时间步长写出为LAMMPS数据文件。

这位作者支持原子、质量、速度、键、角、二面体和特性部分。本文作者将撰写标题和这些部分(如果适用)。如果电荷可用,原子部分以“全”子体书写,如果没有电荷,则以“分子”子体书写。所有原子的分子id都设置为0。

备注

本文假设“传统的”或“真实的”LAMMPS单位,长度以埃为单位,速度以埃/飞秒为单位。若要以不同的单位书写,请指定 lengthunit

如果原子类型不是正整数,则用户必须将其设置为正整数,因为编写器不会自动分配新类型。

为了在编写选择时保留数字原子类型,MASS部分将包含每个原子类型的条目,直到最大原子类型。如果宇宙不包含{1,...中的某种类型的原子。Max(ATOM_TYPE)},则该类型的质量将设置为1。

要写入焊接,必须将每个选定的焊接类型明确设置为一个>=1的整数。

设置DATAWRITER

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

  • convert_units (bool, optional) -- 单位转换为MDAnalysis基本格式; [True]

close()

关闭轨迹文件。

convert_dimensions_to_unitcell(ts, inplace=True)

从TimeStep读取维度 ts 并返回相应的单元格。

默认情况下,返回 [A,B,C,alpha,beta,gamma] ;如果这不合适,则必须重写此方法。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

has_valid_coordinates(criteria, x)

退货 True 如果所有值都在其格式的限制值内。

由于四舍五入,测试是不对称的(和 min 应该是负面的):

最小<x<=最大

参数:
  • criteria (dict) -- 包含 maxmin 以本地单位表示的值

  • x (numpy.ndarray) -- (x, y, z) 选定要写出的原子的坐标

返回类型:

bool

units = {'length': None, 'time': None, 'velocity': None}

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

write(selection, frame=None)[源代码]

将当前轨迹帧上的选择写入文件。

写出了原子、质量、速度、键、角度、二面体和特性的截面(如果定义了这些)。如果有电荷可用,原子部分以“全”子体式书写,如果没有电荷,则以“分子”子体式书写。原子部分中的分子id设置为0。

不会将任何其他节写入数据文件。在撰写本文时,还没有将其他部分解析为拓扑 DATAReader

备注

如果选择包括部分片段,则只包括其原子包含在选择中的键、角等。

参数:
  • selection (AtomGroup or Universe) -- MDAnalysis原子组(精选或宇宙原子)或也称宇宙

  • frame (int (optional)) -- 可以选择移动到帧编号 frame

class MDAnalysis.coordinates.LAMMPS.DumpReader(filename, lammps_coordinate_convention='auto', unwrap_images=False, **kwargs)[源代码]

读取默认设置 LAMMPS dump format

支持各种LAMMPS坐标约定中的坐标以及正交和三斜模拟框尺寸(有关更多详细信息,请参见 documentation )。在任何一种情况下,MDAnalysis都将始终使用 (*A*, *B*, *C*, *alpha*, *beta*, *gamma*) 来表示单位单元格。长度 ABC 以MDAnalysis长度单位(?)表示,角度以度为单位。

参数:
  • filename (str) -- LAMMPS转储文件的文件名

  • lammps_coordinate_convention (str (optional) default="auto") -- 在坐标中使用的约定,可以是根据 LAMMPS documentation :-“AUTO”-从文件列标题检测坐标类型。如果使用自动检测,则猜测将检查坐标是否符合每个约定的顺序:“未缩放”、“已缩放”、“未包装”、“已缩放_未包装”,并且将使用最先检测到的任何一组坐标。-“已缩放”-方框中包裹的坐标并按方框长度缩放(见下文注释),即xs、ys、zs-“已缩放_解包”-按方框长度展开并缩放的坐标,即xsu、ysu、zsu-“未缩放”-方框中包裹的坐标,即x,y,z-“展开”-坐标展开,即xu,Yu,zu,如果坐标是以缩放坐标约定(xs,ys,Z)或缩放展开坐标约定(xsu、ysu、zsu),它们将自动从其缩放/分数表示转换为其实际值。

  • unwrap_images (bool (optional) default=False) -- 如果 True and the dump file contains image flags, the coordinates will be unwrapped. See read_data 有关更多信息,请参阅lammps文档。

  • **kwargs -- 中使用的其他关键字参数 ReaderBase

  • versionchanged: (..) -- 2.4.0:现在导入速度和力,将长方体平移到原点,并在加载时选择性地展开带有图像标志的轨迹。

  • versionchanged: -- 2.2.0:支持三斜模拟盒。(发出 #3383 )

  • versionchanged: -- 2.0.0:现在解析多个lammps约定中的坐标(x、xs、xu、xsu)

  • versionadded: (..) -- 0.19.0:

OtherWriter(filename, **kwargs)

返回适用于的编写器 文件名

设置默认关键字 开始stepdt (如果可用)。 n_atoms 始终设置为 Reader.n_atoms

参见

Reader.Writer()

Writer(filename, **kwargs)

具有与此轨迹相同属性的轨迹写入器。

add_auxiliary(aux_spec: str | Dict[str, str] = None, auxdata: str | AuxReader = None, format: str = None, **kwargs) None

添加要与轨迹一起读取的辅助数据。

辅助数据可以是除了由轨迹读取器读入的轨迹之外的来自轨迹的任何数据时间序列。 辅助数据 可以是一个 AuxReader 实例,或数据本身作为文件名;在后一种情况下,适当的 AuxReader 是从数据/文件格式中猜测出来的。一种适当的 format 也可以直接作为关键字参数提供。

添加时,AuxReader最初与轨迹的当前时间步长匹配,并将在轨迹时步更改时更新(通过调用 next() 或者跳跃时间步长 trajectory[i] )。

每个时间步长的辅助数据的代表值(S)(由 AuxReader )存储在 ts.aux 下的命名空间 aux_spec ;例如,要添加存储在Pull-force.xvg中的其他拉力数据::

u = MDAnalysis.Universe(PDB, XTC)
u.trajectory.add_auxiliary('pull', 'pull-force.xvg')

然后,当前时间步长的代表值可以被访问为 u.trajectory.ts.aux.pullu.trajectory.ts.aux['pull']

以下内容适用于能源读者,如 EDRReader

可以通过省略来添加(能源)文件中存在的所有数据 aux_spec 像这样::

u.trajectory.add_auxiliary(auxdata="ener.edr")

aux_spec 属性中映射所需属性名称的字典。 ts.aux 命名空间设置为要添加的精确数据,该数据由 data_selector **

term_dict = {"temp": "Temperature", "epot": "Potential"}
u.trajectory.add_auxiliary(term_dict, "ener.edr")

例如,添加此数据对于基于非坐标数据(如每个时间步长的势能)过滤轨迹帧可能很有用。轨迹切片允许处理帧的子集:

selected_frames = np.array([ts.frame for ts in u.trajectory
                            if ts.aux.epot < some_threshold])
subset = u.trajectory[selected_frames]

备注

假设辅助数据是按时间排序的,没有重复。请参阅 辅助API

add_transformations(*transformations)

添加要应用于轨迹的所有变换。

此函数将转换列表作为参数。这些转换是将由Reader调用的函数,并为其提供 Timestep 对象作为参数,它将被转换并返回给读取器。这些转换可以是 transformations 模块,或由用户创建,并以列表形式存储 transformations 。此列表只能修改一次,进一步调用此函数将引发异常。

u = MDAnalysis.Universe(topology, coordinates)
workflow = [some_transform, another_transform, this_transform]
u.trajectory.add_transformations(*workflow)

将按照列表中给出的顺序应用转换 transformations 即,第一个转换是要应用于 Timestep 。上面的示例等同于

for ts in u.trajectory:
   ts = this_transform(another_transform(some_transform(ts)))
参数:

transform_list (list) -- 将按列表中给定的顺序应用于坐标的所有变换的列表

property aux_list

列出新增辅助数据的名称。

check_slice_indices(start, stop, step)

检查帧索引是否有效,并剪裁以适合轨迹。

该用法遵循以下标准的Python约定 range() 但请参阅下面的警告。

参数:
  • start (int or None) -- 起始帧索引(含)。 None 对应于缺省值0,即初始帧。

  • stop (int or None) -- 最后一帧索引(独占)。 None 对应于默认的n帧,即它包括轨迹的最后一帧。

  • step (int or None) -- 切片的步长大小, None 对应于缺省值1,即包括范围中的每一帧 startstop

返回:

开始、停止、步进 --表示切片的整数

返回类型:

tuple (int, int, int)

警告

返回值 startstopstep 传入时给出预期结果 range() ,但在传入 slice 什么时候 stop=Nonestep=-1

对于此方法的输出的下游处理来说,这可能是一个问题。例如,轨迹切片是通过传递 check_slice_indices()range() ::

range(start, stop, step)

并将其作为随机寻求的指标。另一方面,在 MDAnalysis.analysis.base.AnalysisBase 由返回的值 check_slice_indices() 用于拼接轨迹,方法是创建 slice 实例::

slice(start, stop, step)

这会造成差异,因为这两行不相等::

range(10, -1, -1)             # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
range(10)[slice(10, -1, -1)]  # []
close()[源代码]

关闭轨迹文件。

convert_forces_from_native(force, inplace=True)

力阵的换算 从原生单位到基本单位

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_forces_to_native(force, inplace=True)

力阵的换算 从基本单位到原生单位。

参数:
  • force (array_like) -- 转型的力量

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 force 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.7 版本加入.

convert_pos_from_native(x, inplace=True)

坐标数组x从原生单位到基本单位的转换。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_pos_to_native(x, inplace=True)

坐标数组的转换 x 从基本单位到本地单位。

参数:
  • x (array_like) -- 要转型的职位

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 x 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_from_native(t, inplace=True)

转换时间 t 从原生单位到基本单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并返回(尽管请注意标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本发生变更: 关键字 inplace 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_time_to_native(t, inplace=True)

转换时间 t 从基本单位到本地单位。

参数:
  • t (array_like) -- 要转换的时间值

  • inplace (bool, optional) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 t 被就地修改并也被返回。(另请注意,标量值 t 在Python中通过值传递,因此就地修改对调用方没有任何影响。)

在 0.7.5 版本发生变更: 关键字 在位 可以设置为 False 以便返回修改后的副本 除非 不会发生转换,在这种情况下,对未修改的 x 返回。

convert_velocities_from_native(v, inplace=True)

速度阵的换算 v 从原生单位到基本单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

convert_velocities_to_native(v, inplace=True)

坐标数组的转换 v 从基本单位到原生单位

参数:
  • v (array_like) -- 转型的速度

  • inplace (bool (optional)) -- 是否就地修改数组,覆盖以前的数据

备注

默认情况下,输入 v 被就地修改并也被返回。就地操作提高了性能,因为避免了分配新阵列。

在 0.7.5 版本加入.

copy()

退还本阅读器的独立副本。

新的阅读器将有自己的文件句柄,可以独立于原始阅读器进行查找/迭代。

还将复制原始读取器中保存的时间步长的当前状态。

在 2.2.0 版本发生变更: 用于构造读取器的参数被正确捕获并传递给新类的创建。以前是唯一的 n_atoms 被传递给类副本,导致使用默认参数创建的类可能与原始类不同。

property dt: float

两个轨迹帧之间的时间,以皮秒为单位。

property frame: int

当前时间步长的帧编号。

这是一条简单的捷径 Timestep.frame

get_aux_attribute(auxname, attrname)

获取的价值 属性名称 从辅助器 辅助名称

参数:
  • auxname (str) -- 要获取其值的辅助设备的名称

  • attrname (str) -- 辅助读取器中的gettable属性的名称

get_aux_descriptions(auxnames=None)

获取描述以允许重新加载指定的辅助项。

如果未提供辅助名称,则默认为添加的辅助名称的完整列表。

将生成的描述传递给 add_auxiliary() 将允许辅助人员的娱乐活动。例如,将所有辅助词复制到第二个轨迹中:

descriptions = trajectory_1.get_aux_descriptions()
for aux in descriptions:
    trajectory_2.add_auxiliary(**aux)
返回:

描述每个辅助词的args/kwargs词典列表。

返回类型:

list

iter_as_aux(auxname)

迭代至少有一个来自辅助步骤的分配步骤的时间步长 辅助名称 中指定的截止范围内 辅助名称

iter_auxiliary(auxname, start=None, stop=None, step=None, selected=None)

遍历辅助词 辅助名称 与弹道无关。

将迭代辅助的指定步骤(默认为所有步骤)。允许访问辅助对象中的所有值,包括轨迹时间范围之外的值,而不必同时迭代轨迹。

迭代后,辅助器将重新定位在当前步骤。

参数:
  • auxname (str) -- 要迭代的辅助对象的名称。

  • (start (optional) -- 用于在辅助对象的切片上迭代的选项。

  • stop (optional) -- 用于在辅助对象的切片上迭代的选项。

  • step) (optional) -- 用于在辅助对象的切片上迭代的选项。

  • selected (lst | ndarray, optional) -- 要迭代的步骤列表。

生成器:

AuxStep 对象

参见

iter_as_aux()

next() Timestep

前进一步到下一帧。

next_as_aux(auxname)

移动到辅助时间步长至少有一个步长的下一个时间步长 辅助名称 中指定的截止范围内 辅助名称

这允许在轨迹中前进,而不会遇到 NaN 代表值(除非这些值特别是辅助数据的一部分)。

如果未设置辅助截止,则辅助步骤较少 (auxiliary.dt > trajectory.dt ),这允许以辅助步调(四舍五入到最接近的时间步长)前进;而如果辅助步长更频繁,这将与调用 next()

请参阅 辅助API

参见

iter_as_aux()

classmethod parse_n_atoms(filename, **kwargs)

读取坐标文件并推算出原子数

返回:

n_atoms --坐标文件中的原子数

返回类型:

int

抛出:

NotImplementedError -- 当原子的数量无法推断时

remove_auxiliary(auxname)

清除数据并关闭 AuxReader 对于辅助者 辅助名称

rename_aux(auxname, new)

更改辅助设备的名称 辅助名称new

假设还没有名为 new ,辅助名称将在t.aux名称空间、轨迹的添加辅助项列表以及辅助阅读器本身中更改。

参数:
  • auxname (str) -- 要重命名的辅助设备的名称

  • new (str) -- 要尝试设置的新名称

抛出:

ValueError -- 如果该名称 new 已被现有的辅助设备使用。

rewind() Timestep

轨迹起始处的位置

set_aux_attribute(auxname, attrname, new)

设置的值 属性名称 在辅助词中 辅助名称

参数:
  • auxname (str) -- 要更改的辅助设备的名称

  • attrname (str) -- 辅助读取器中的可设置属性的名称

  • new -- 要尝试设置的新值 属性名称

property time

当前帧的时间,以MDAnalysis时间单位表示(通常为ps)。

这要么直接从TimeStep读取,要么计算为time= Timestep.frame * Timestep.dt

timeseries(asel: AtomGroup | None = None, start: int | None = None, stop: int | None = None, step: int | None = None, order: str | None = 'fac') ndarray

返回原子组的坐标数据子集

参数:
  • asel (AtomGroup (optional)) -- 这个 AtomGroup 从…读取坐标。默认为 None 在这种情况下,将返回完整的坐标数据集。

  • start (int (optional)) -- 从帧索引处开始读取轨迹 start (其中0是轨迹中第一帧的索引);默认设置 None 从头开始。

  • stop (int (optional)) -- 在帧索引处结束读取轨迹 stop -1,即, stop 被排除在外。轨迹将使用默认设置读取到末尾 None

  • step (int (optional)) -- 读取步长;默认设置 None 等于1,表示读取每一帧。

  • order (str (optional)) -- 对应于(A)tom、(F)rame、(C)坐标的返回数据数组的顺序/形状允许所有六个‘a’、‘f’、‘c’的组合,即“fac”-其中形状为(帧、原子数、坐标)的返回数组

在 2.4.0 版本加入.

property totaltime: float

轨迹的总长度

时间的计算方式为 (n_frames - 1) * dt 也就是说,我们假设第一帧没有经过时间。因此,具有两个帧的轨迹将被视为具有单个时间步的长度 dt 并且具有单帧的“轨迹”将被报告为长度0。

property transformations

返回转换列表

units = {'length': None, 'time': None, 'velocity': None}

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