# #规范化 #对称性 #同构 #自同构

graph_symmetry

图的对称性感知及其在规范化中的应用

2个版本

0.1.1 2021年11月7日
0.1.0 2021年11月5日

#348 in 科学

Apache-2.0

185KB
3.5K SLoC

crates graph_symmetry

使用Rust实现的图的对称性感知算法及其在规范化中的应用

示例

SMILES规范化

use graph_symmetry;

assert_eq!(graph_symmetry::ext::molecule::get_canon_smiles(&String::from("c1ccccc1CN")), "NCc1ccccc1".to_string());

对称性感知

use graph_symmetry;

let atom_vec = graph_symmetry::ext::molecule::smiles_to_atom_vec("C(C)(C)CCN");
let (orbits_givp, numbering) = graph_symmetry::ext::molecule::symmetry_perception_givp(&atom_vec);
assert_eq!(orbits_givp, vec![vec![1, 2]]);
assert_eq!(numbering, vec![6, 2, 2, 5, 4, 3]);
let (orbits_cnap) = graph_symmetry::ext::molecule::symmetry_perception_cnap(&atom_vec, &orbits_givp, &numbering);
assert_eq!(orbits_cnap, vec![vec![1, 2]]);

测试

单元测试

cargo test --lib

集成测试

cargo test --test chembl_test
cargo test --test krotko_test

依赖项

~190KB