chematic-iupac 0.1.90

Local IUPAC name generation for chematic — pure-Rust, no network required
Documentation

chematic-iupac

IUPAC systematic name generation for organic molecules. Converts SMILES to systematic nomenclature (e.g., CC(C)O2-propanol). Pure Rust, no network required, WASM-compatible.

Features

  • Systematic IUPAC naming: alkanes, alkenes, alkynes, alcohols, ethers, aldehydes, ketones, carboxylic acids, amines, amides, and derivatives
  • Locant assignment: automatic numbering and priority rules
  • Stereochemistry in names: includes R/S and E/Z nomenclature
  • Common names fallback: recognizes and outputs common names when appropriate
  • No network dependency: all rules computed locally
  • WASM-compatible: zero C/C++ dependencies

Quick Start

use chematic_smiles::parse;
use chematic_iupac::iupac_name;

let mol = parse("CC(C)O").expect("2-propanol");
let name = iupac_name(&mol).expect("IUPAC name");
println!("{}", name);  // Output: "2-propanol" or "propan-2-ol"

let mol2 = parse("c1ccccc1O").expect("phenol");
let name2 = iupac_name(&mol2).expect("IUPAC name");
println!("{}", name2);  // Output: "phenol"

API Overview

Main Function

  • iupac_name(mol: &Molecule) -> Result<String, IupacError> — generate IUPAC name
  • iupac_name_with_options(mol: &Molecule, opts: &IupacOptions) -> Result<String, IupacError> — with configuration

Configuration

use chematic_iupac::IupacOptions;

let opts = IupacOptions {
    prefer_common_names: true,    // use "phenol" instead of "hydroxybenzene"
    use_systematic_numbering: true,
    include_stereochemistry: true,
};
let name = chematic_iupac::iupac_name_with_options(&mol, &opts)?;

Coverage

Supported functional groups:

  • Hydrocarbons: alkanes, alkenes, alkynes, aromatics
  • Oxygenated: alcohols, ethers, aldehydes, ketones, carboxylic acids, esters
  • Nitrogen: amines, amides, nitriles, imines
  • Halogens: alkyl halides, halo-compounds
  • Heterocycles: pyridine, furan, thiophene, imidazole (common names)

Limitations

  • No support for complex natural product stereoisomers (tropanes, steroids)
  • Limited multi-functional group prioritization (use structure simplification)
  • No archaic IUPAC nomenclature (pre-1979 rules)

Dependencies

References

See Also