9个版本
0.1.7 | 2023年7月3日 |
---|---|
0.1.6 | 2023年6月24日 |
0.1.4 | 2023年2月12日 |
0.1.1 |
|
0.0.40 | 2020年2月25日 |
#118 in 科学
79 每月下载量
用于 13 个crates(6 个直接使用)
69KB
51 行
gchemol
gchemol是一个基于Rust编程语言的图式化学对象库。该项目仍在早期开发阶段。
特性
- Rust提供快速和安全的代码。
- 静态构建,无外部依赖:易于在HPC环境中部署。
- 核心图数据结构使用 petgraph
- 读取/写入分子,支持 常见化学文件格式。
- 线性代数由 nalgebra 支持
- 使用 handlebars 和 tera 模板渲染分子
使用方法
设置
遵循官方指南
将gchemol依赖项添加到您的Cargo.toml
[dependencies]
gchemol = "0.1"
Atom
use gchemol::Atom;
// construct from element and position
let a = Atom::new("C", [0.0, 0.0, 0.0]);
let b = Atom::new("C", [1.2, 1.2, 1.2]);
或直接从字符串转换
let a: Atom = "C 1.0 1.0 0.2"
.parse()
.expect("atom from string");
分子
-
手动创建分子
use gchemol::Molecule; let atoms = [ Atom::new("C", [ 0.000000, 0.000000, 0.000000]), Atom::new("C", [ 0.000000, 0.000000, 1.089000]), Atom::new("C", [ 1.026719, 0.000000, -0.363000]), Atom::new("C", [-0.513360, -0.889165, -0.363000]), Atom::new("C", [-0.513360, 0.889165, -0.363000])]; // create a molecule from these atoms let mut mol = Molecule::from_atoms(atoms);
-
读取和写入分子
use gchemol::io; use gchemol::prelude::*; use gchemol::Molecule; // Read an xyz file and write to a Gaussian Input file. let mol = Molecule::from_file("path/to/file.xyz")?; mol.to_file("methane.gjf")?; // get the total number of atoms let na = mol.natoms(); // get the total number of bonds let nb = mol.nbonds(); // read multiple molecules (trajectory) from a chemical file // the number of atoms in different frame could be different let mols = io::read("path/to/trajectory.xyz")?;
相关项目
参考文献
依赖项
~28–40MB
~687K SLoC