6.27. 使用读取轨迹 化学文件 -- MDAnalysis.coordinates.chemfiles
MDAnalysis与 chemfiles 类库。这个 化学文件 C++库支持扩展的文件格式集,其中一些格式本身并不受MDAnalysis支持。使用 CHEMFILES 您可以使用的阅读器 chemfiles 用于低级文件读取。查看列表中的 chemfile-supported file formats 。
6.27.1. 使用CHEMFILES读取器
阅读时,请将 format="CHEMFILES"
关键字参数和I/O委托给 chemfiles 。例如::
>>> import MDAnalysis as mda
>>> from MDAnalysis.tests import datafiles as data
>>> u = mda.Universe(data.TPR, data.TRR, format="CHEMFILES")
>>> print(u.trajectory)
<ChemfilesReader ~/anaconda3/envs/mda3/lib/python3.8/site-packages/MDAnalysisTests/data/adk_oplsaa.trr with 10 frames of 47681 atoms>
然后,您可以使用 Universe
像往常一样,化学文件在后台透明地处理I/O。
chemfiles 也可以 写 MDAnalysis中没有编写器的多个格式。例如,要编写一个mol2文件::
>>> u = mda.Universe(data.mol2_ligand)
>>> with mda.Writer("ligand.mol2", format="CHEMFILES") as W:
... W.write(u.atoms)
6.27.2. 班级
类来读写文件。 chemfiles 类库。这个库提供了多种格式读取器和写入器的C++实现。
- class MDAnalysis.coordinates.chemfiles.ChemfilesReader(filename, chemfiles_format='', **kwargs)[源代码]
使用化学文件的坐标阅读器。
根据文件扩展名猜测要使用的文件格式。如果找不到匹配的格式,则会引发
ChemfilesError
都被养大了。也可以手动指定要用于给定文件的格式。在 1.0.0 版本加入.
- 参数:
filename (chemfiles.Trajectory or str) -- 要读取的ChemFiles对象或要读取的文件名
chemfiles_format (str (optional)) -- 如果 文件名 是一个字符串,请使用给定的格式名称,而不是从扩展名中猜测。这个 list of supported formats 相关名称可在化学文件文档中找到。
**kwargs (dict) -- 读者的一般论点。
- class MDAnalysis.coordinates.chemfiles.ChemfilesWriter(filename, n_atoms=0, mode='w', chemfiles_format='', topology=None, **kwargs)[源代码]
使用化学文件的坐标编写器。
根据文件扩展名猜测要使用的文件格式。如果找不到匹配的格式,则会引发
ChemfilesError
都被养大了。也可以手动指定要用于给定文件的格式。如果底层格式支持,则ChemFiles支持写入具有不同原子数的文件。大多数基于文本的格式都是这种情况。
在 1.0.0 版本加入.
- 参数:
filename (str) -- 轨迹文件的文件名。
n_atoms (int) -- 要写入的轨迹中的原子数。如果基础格式支持该值,则不使用该值,并且该值在轨迹过程中可能会发生变化
mode (str (optional)) -- 文件打开模式:使用‘a’追加到现有文件,或使用‘w’创建新文件
chemfiles_format (str (optional)) -- 使用给定的格式名称,而不是从扩展名中猜测。这个 list of supported formats 相关名称可在化学文件文档中找到。
topology (Universe or AtomGroup (optional)) -- 使用此处的拓扑
AtomGroup
或Universe
将所有时间步长写入文件**kwargs (dict) -- 一般作家的论据。
- class MDAnalysis.coordinates.chemfiles.ChemfilesPicklable(path, mode='r', format='')[源代码]
可进行酸洗的ChemFiles文件对象(只读)。
此类提供了一个类似文件的对象(由
chemfiles.Trajectory
),与标准的Python文件对象不同,它可以进行酸洗。仅支持读取模式。当文件被浸泡时,将保存文件句柄的路径、模式和格式。在取消酸洗时,文件通过带有模式的路径和保存的格式打开。这意味着要成功地取消选取,原始文件仍然必须可以使用其文件名进行访问。
备注
只能在读取(‘r’)模式下使用。在酸洗时,当前帧被重置。 universe.trajectory[i] 必须使用才能返回到其原始框架。
- 参数:
filename (str) -- 给定文本或字节字符串的文件名。
mode ('r' , optional) -- 只有‘r’可以用于酸洗。
format ('', optional) -- 如果为空,则从文件扩展名猜测。
示例
f = ChemfilesPicklable(XYZ, 'r', '') print(f.read()) f.close()
还可以用作上下文管理器::
with ChemfilesPicklable(XYZ) as f: print(f.read())
参见
MDAnalysis.lib.picklable_file_io.FileIOPicklable
,MDAnalysis.lib.picklable_file_io.BufferIOPicklable
,MDAnalysis.lib.picklable_file_io.TextIOPicklable
,MDAnalysis.lib.picklable_file_io.GzipPicklable
,MDAnalysis.lib.picklable_file_io.BZ2Picklable
在 2.0.0 版本加入.
6.27.3. 帮助器函数
- MDAnalysis.coordinates.chemfiles.MIN_CHEMFILES_VERSION = <Version('0.10')>
MDAnalysis支持的化学文件的最低版本。
- MDAnalysis.coordinates.chemfiles.MAX_CHEMFILES_VERSION = <Version('0.11')>
化学文件的最低版本是 不支持 由MDAnalysis提供。
- MDAnalysis.coordinates.chemfiles.check_chemfiles_version()[源代码]
检查是否有适当的 化学文件 有空房吗?
退货
True
如果有可用的化学文件版本,请使用MIN_CHEMFILES_VERSION
<=版本<MAX_CHEMFILES_VERSION
在 1.0.0 版本加入.