3 个不稳定版本
0.2.1 | 2024 年 6 月 12 日 |
---|---|
0.2.0 | 2024 年 6 月 12 日 |
0.1.1 | 2024 年 2 月 25 日 |
0.1.0 |
|
#193 in 科学
用于 2 个 crates(通过 groan_rs)
68KB
1.5K SLoC
minitpr:用于读取 Gromacs TPR 文件的库
minitpr
是一个纯 Rust 库,旨在解析 Gromacs tpr 文件,重点关注提取系统拓扑和结构。
功能和限制
- 支持解析从版本 103 及以上版本的 tpr 文件(Gromacs 5.1 及以后版本)。
- 提取系统拓扑和结构:原子及其基本属性(包括位置、速度和力),以及原子之间的键(包括分子间键)。
- 不支持 解析力场和模拟参数,也不提供写入 tpr 文件的功能。
使用方法
要将 minitpr
包含到您的项目中,请使用 Cargo 添加它作为依赖项
cargo add minitpr
解析 tpr 文件
解析 tpr 文件并处理潜在错误的示例用法
use minitpr::TprFile;
fn main() {
let tpr = match TprFile::parse("topol.tpr") {
Ok(file) => file,
Err(error) => {
eprintln!("{}", error);
return;
},
};
// now you can work with the `tpr` object, accessing its properties and data
// for instance, to iterate through the atoms of the molecular system, use:
for atom in tpr.topology.atoms.iter() {
// perform some operation with the atom
}
}
数据结构
TprFile
结构封装以下信息
- 头部:关于 tpr 文件的数据(见
TprHeader
结构)。 - 分子系统名称:模拟系统的名称。
- 模拟盒子尺寸:如果存在,则存在于
SimBox
结构中。 - 系统拓扑:包含原子和键的分子系统的拓扑(见
TprTopology
结构)。
在系统拓扑中表示的每个原子(见 Atom
)包括
- 原子名称。
- 顺序原子编号,从 1 开始。
- 残基名称。
- 顺序残基编号,从 1 开始。
- 质量。
- 电荷。
- 元素(如果无法识别,则为
None
)。 - 位置(如果不存在,则为
None
)。 - 速度(如果不存在,则为
None
)。 - 力(如果不存在,则为
None
)。
特性
序列化/反序列化
在安装期间添加特性标志以启用(反)序列化支持 TprFile
,使用 serde
cargo add minitpr --features serde
许可证
minitpr
可以根据您的选择在 Apache License 2.0 或 MIT 许可证 下开源。
免责声明
由于存在大量不同的力场、模拟参数和Gromacs选项,全面测试minitpr
库非常困难。如果您能以测试、具有不寻常参数的tpr文件或新功能的形式提供贡献,我们将非常欢迎。
如果库无法解析您的tpr文件,但您认为它应该能够解析,请打开GitHub问题并上传您的tpr文件。
依赖项
~2–12MB
~99K SLoC