5个版本

0.1.4 2024年7月18日
0.1.3 2024年7月2日
0.1.2 2024年5月23日
0.1.1 2024年5月7日
0.1.0 2024年5月7日

#907科学

Download history 221/week @ 2024-05-07 1/week @ 2024-05-14 148/week @ 2024-05-21 1/week @ 2024-06-04 168/week @ 2024-07-02 107/week @ 2024-07-16 8/week @ 2024-07-23

每月下载量 283
用于 groslicer

MIT 许可证

140KB
643

eightyseven—读取和写入 gro 文件,非常快

gro 文件(Gromos87)以纯文本格式描述分子结构。(参见 Gromacs手册旧版美观手册。)

请注意,目前仅支持经典固定格式的读取和写入。附加精度读取模式已在计划中。

eightyseven 可以并行格式化gro文件的原子部分,使用 WriteGro::write_par 和相关方法。

此库包含自己的 Structure 类型,它反映了存储在 gro 文件中的信息。对于 Structure,实现了 ReadGroWriteGroWriteGroPar 特性。这些特性提供的读取和写入功能是良好的默认实现,依赖于几个易于实现的桥接函数。这使得为自定义类型实现特性变得非常简单。

此外,可以通过设置 ReadGro::PARSE_LIST 常量的标志,轻松有效地实现只读取原子行字段子集的非常专业的读取器。

use eightyseven::structure::Structure;

// Read the structure from a file.
use eightyseven::reader::ReadGro;
let mut structure = Structure::open_gro("tests/eq.gro")?;
println!(" title: {}", structure.title);
println!("natoms: {}", structure.natoms());

// Modify the structure.
// For example, center the structure such that the `BB` beads are centered.
let bb_positions = structure
    .atoms
    .iter()
    .filter(|&atom| atom.atomname.as_str() == "BB")
    .map(|atom| atom.position);
let bb_center = bb_positions.clone().sum::<glam::Vec3>() / bb_positions.count() as f32;

for atom in &mut structure.atoms {
    atom.position -= bb_center;
}

// And write the structure.
use eightyseven::writer::WriteGro;
structure.save_gro("eq_offset.gro")?;

// Or, for fast writing of large files, format the atom section in parallel.
use eightyseven::writer::WriteGroPar;
structure.save_gro_par("eq_offset.gro")?;

// For both single-threaded and parallel formatting, generic writers exist as well.
// They can write to any type that implements `io::Write`.
structure.write_par(&mut std::io::empty())?;

文档

文档可在 docs.rs 找到。或本地使用 cargo doc

安装

适用常规安装程序。

$ cargo add eightyseven

测试和基准测试

包括测试和基准测试。在克隆的仓库中运行它们。

$ git clone https://git.sr.ht/~ma3ke/eightyseven
$ cd eightyseven
$ cargo test
$ cargo bench

另请参阅

我还编写了一个 xtc 读取器库,称为 mollyxtc 是Gromacs的压缩轨迹格式。

Gromacs分析命令输出的绘图数据格式是 xvgphrace 是该数据格式的终端查看器。


作者:Marieke Westendorp,2024。

依赖关系

~4.5MB
~121K SLoC