Source code for boltz_data.mol._from._from_smiles
"""Convert SMILES strings to BZMol objects via RDKit."""
from boltz_data.mol._mol import BZMol
from boltz_data.rdkit import rdmol_from_smiles
from ._from_rdmol import bzmol_from_rdmol
[docs]
def bzmol_from_smiles(smiles: str, /) -> BZMol:
"""
Create a BZMol from a SMILES string using RDKit.
This function converts a SMILES string to an RDKit molecule,
then converts it to a BZMol object. The resulting BZMol contains
only atoms and bonds, without residue or chain information.
Args:
smiles: A valid SMILES string representing the molecule.
Returns:
A BZMol object containing atoms and bonds without coordinates,
residues, or chains.
Raises:
ValueError: If the SMILES string is invalid or cannot be parsed.
Example:
>>> mol = bzmol_from_smiles("CCO") # Ethanol
>>> mol.num_atoms
3 # Without hydrogens
>>> mol.num_residues
0 # No residues defined
"""
rdmol = rdmol_from_smiles(smiles)
return bzmol_from_rdmol(rdmol)