Expand description
§smiles-rs
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(ðanol);
assert_eq!(formula.to_string(), "C₂H₆O");§Features
| Feature | Effect |
|---|---|
datasets | Streams PubChem, ZINC20, COCONUT, LOTUS and MassSpecGym from a local cache, requires std. See datasets. |
fuzzing | Exposes 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
SMILESstring - 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§
- Mces
Builder - Builder for MCES computation with typestate generics.
- Mces
Result - Result of an MCES computation.
Enums§
- Initial
Product Vertex Ordering - Initial ordering policy for modular-product vertices before clique search.
- Largest
Fragment Metric - Fragment-size metric used by
LargestFragmentMetricRanker. - Mces
Search Mode - Search mode for the clique stage of MCES.
Traits§
- Graph
Similarities - Trait for types that carry graph comparison results and can compute similarity metrics.