#gchemol #object #atoms #alignment #che-mical #superpose #graph-based

gchemol-geometry

gchemol: a Graph-based CHEMical Objects Library

7 releases

0.1.1 Dec 8, 2022
0.1.0 Mar 23, 2022
0.0.41 Feb 19, 2022
0.0.39 Mar 10, 2020
0.0.38 Feb 14, 2020

#637 in Algorithms

Download history 21/week @ 2024-01-07 17/week @ 2024-01-14 8/week @ 2024-01-21 2/week @ 2024-01-28 17/week @ 2024-02-04 24/week @ 2024-02-11 30/week @ 2024-02-18 58/week @ 2024-02-25 26/week @ 2024-03-03 33/week @ 2024-03-10 44/week @ 2024-03-17 38/week @ 2024-03-24 87/week @ 2024-03-31 21/week @ 2024-04-07 28/week @ 2024-04-14 35/week @ 2024-04-21

172 downloads per month
Used in 16 crates (2 directly)

GPL-3.0 license

48KB
837 lines

Example

use gchemol::geom::Superpose;
use gchemol::Molecule;
use gchemol::prelude::*;

// load test molecules
let mol1 = Molecule::from_file("tests/files/alignment/reference.mol2").unwrap();
let mol2 = Molecule::from_file("tests/files/alignment/candidate.mol2").unwrap();

// take the first 5 atoms for superposition
let reference: Vec<_> = mol1.positions().take(5).collect();
let candidate: Vec<_> = mol2.positions().take(5).collect();

// align the candidate onto the reference
let sp = Superpose::new(&candidate).onto(&reference, None);

// apply superposition to all atoms
let superimposed_structure = sp.apply(&candidate);

// apply translation only
let translated_structure = sp.apply_translation(&candidate);

Dependencies

~11–22MB
~325K SLoC