9个版本

0.1.7 2023年7月3日
0.1.6 2023年6月24日
0.1.4 2023年2月12日
0.1.1 2022年12月8日
0.0.40 2020年2月25日

#118 in 科学

Download history 18/week @ 2024-03-11 17/week @ 2024-03-18 13/week @ 2024-03-25 78/week @ 2024-04-01 9/week @ 2024-04-08 6/week @ 2024-04-15 13/week @ 2024-04-22 9/week @ 2024-04-29 10/week @ 2024-05-06 7/week @ 2024-05-13 24/week @ 2024-05-20 13/week @ 2024-05-27 20/week @ 2024-06-03 20/week @ 2024-06-10 12/week @ 2024-06-17 26/week @ 2024-06-24

79 每月下载量
用于 13 个crates(6 个直接使用)

GPL-3.0 许可证

69KB
51

gchemol

gchemol是一个基于Rust编程语言的图式化学对象库。该项目仍在早期开发阶段。

Crates.io

特性

  • Rust提供快速和安全的代码。
  • 静态构建,无外部依赖:易于在HPC环境中部署。
  • 核心图数据结构使用 petgraph
  • 读取/写入分子,支持 常见化学文件格式
  • 线性代数由 nalgebra 支持
  • 使用 handlebarstera 模板渲染分子

使用方法

设置

遵循官方指南

将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");

分子

  1. 手动创建分子

    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);
    
  2. 读取和写入分子

    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