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)