"""Simple utilities not involving RDKit."""
import re
[docs]def remove_atom_mapping(smiles: str) -> str:
"""
Remove the atom mapping of a reaction SMILES.
The resulting SMILES strings will still contain brackets and it may be
advisable to canonicalize them or clean them up as a postprocessing step.
Args:
smiles: SMILES string potentially containing mapping information.
Returns:
A SMILES string without atom mapping information.
"""
# We look for ":" followed by digits before a "]" not coming after an "*"
return re.sub(r"(?<=[^\*])(:\d+)]", "]", smiles)