Skip to main content

Crate smiles_rs

Crate smiles_rs 

Source
Expand description

§smiles-rs

crates.io docs.rs downloads Rust CI codecov License: MIT MSRV

Parses SMILES strings into molecular graphs, following the OpenSMILES specification. no_std with alloc, no unsafe code.

Beyond parsing it canonicalizes molecules through canonicalize and canonical_labeling, perceives aromaticity under the RDKit default, MDL and simple models, and kekulizes back to alternating bonds. It computes symmetrized SSSR rings and ring membership, fragments and connected components, radius-bounded atom environments for MAP4-style fingerprints, and the maximum common edge subgraph of two molecules through geometric-traits. Tetrahedral and double bond stereochemistry survive canonicalization, formulas convert into molecular-formulas types, and WildcardSmiles accepts * atoms with a fallible conversion back into Smiles.

§Example

use core::str::FromStr;

use molecular_formulas::prelude::ChemicalFormula;
use smiles_rs::prelude::Smiles;

let ethanol = Smiles::from_str("CCO")?;

assert_eq!(ethanol.nodes().len(), 3);
assert_eq!(ethanol.number_of_bonds(), 2);
assert_eq!(ethanol.render(), "CCO");

let formula: ChemicalFormula<u32, i32> = ChemicalFormula::from(&ethanol);
assert_eq!(formula.to_string(), "C₂H₆O");

§Features

FeatureEffect
datasetsStreams PubChem, ZINC20, COCONUT, LOTUS and MassSpecGym from a local cache, requires std. See datasets.
fuzzingExposes the parser internals the fuzz targets drive.

Re-exports§

pub use crate::datasets::ArchiveMode;
pub use crate::datasets::CacheMode;
pub use crate::datasets::DatasetArtifact;
pub use crate::datasets::DatasetCollectionArtifact;
pub use crate::datasets::DatasetCollectionSource;
pub use crate::datasets::DatasetCompression;
pub use crate::datasets::DatasetError;
pub use crate::datasets::DatasetFetchOptions;
pub use crate::datasets::DatasetFile;
pub use crate::datasets::DatasetSmilesIter;
pub use crate::datasets::DatasetSmilesRecord;
pub use crate::datasets::DatasetSmilesRecordIter;
pub use crate::datasets::DatasetSource;
pub use crate::datasets::LOTUS_SMILES;
pub use crate::datasets::LotusSmiles;
pub use crate::datasets::MASS_SPEC_GYM_SMILES;
pub use crate::datasets::MassSpecGymSmiles;
pub use crate::datasets::PUBCHEM_SMILES;
pub use crate::datasets::PubChemSmiles;
pub use crate::datasets::SmilesDatasetRecordSource;
pub use crate::datasets::SmilesDatasetSource;
pub use crate::datasets::ZINC20_EXPECTED_RECORD_COUNT;
pub use crate::datasets::ZINC20_SMILES;
pub use crate::datasets::Zinc20Smiles;
pub use crate::datasets::default_dataset_cache_dir;
pub use crate::errors::RootError;
pub use crate::errors::SmilesError;
pub use crate::errors::SmilesErrorWithSpan;
pub use crate::errors::SubgraphError;
pub use crate::smiles::AromaticityAssignment;
pub use crate::smiles::AromaticityAssignmentApplicationError;
pub use crate::smiles::AromaticityDiagnostic;
pub use crate::smiles::AromaticityModel;
pub use crate::smiles::AromaticityPerception;
pub use crate::smiles::AromaticityPolicy;
pub use crate::smiles::AromaticityRingFamilyKind;
pub use crate::smiles::AromaticityStatus;
pub use crate::smiles::AtomEnvironment;
pub use crate::smiles::DoubleBondStereoConfig;
pub use crate::smiles::Fragment;
pub use crate::smiles::KekulizationError;
pub use crate::smiles::KekulizationMode;
pub use crate::smiles::RdkitDefaultAromaticity;
pub use crate::smiles::RdkitMdlAromaticity;
pub use crate::smiles::RdkitSimpleAromaticity;
pub use crate::smiles::RingAtomMembership;
pub use crate::smiles::RingAtomMembershipScratch;
pub use crate::smiles::RingMembership;
pub use crate::smiles::Smiles;
pub use crate::smiles::SmilesComponents;
pub use crate::smiles::SmilesMces;
pub use crate::smiles::SymmSssrResult;
pub use crate::smiles::SymmSssrStatus;
pub use crate::smiles::WildcardAromaticityPerception;
pub use crate::smiles::WildcardMolecularFormulaConversionError;
pub use crate::smiles::WildcardSmiles;
pub use crate::smiles::WildcardSmilesComponents;

Modules§

atom
Atom storage and helpers.
bond
Module for specifying the bond between two atoms in a SMILES string
datasets
Programmatic dataset downloads with local caching.
errors
Defines errors used in the SMILES parser.
prelude
Common imports for working with this crate.
smiles
Represents a parsed SMILES graph.
token
Represents tokens used in parsing SMILES strings.

Structs§

McesBuilder
Builder for MCES computation with typestate generics.
McesResult
Result of an MCES computation.

Enums§

InitialProductVertexOrdering
Initial ordering policy for modular-product vertices before clique search.
LargestFragmentMetric
Fragment-size metric used by LargestFragmentMetricRanker.
McesSearchMode
Search mode for the clique stage of MCES.

Traits§

GraphSimilarities
Trait for types that carry graph comparison results and can compute similarity metrics.