Standardize molecular structures consistently for ML training, deduplication, and database joining. The skill distinguishes ChEMBL representation/parent standardization from optional RDKit tautomer canonicalization and the canSARchem workflow, which canonicalizes tautomers before parent extraction.
pip install rdkit chembl_structure_pipeline pandas
Examples target RDKit 2024.09+ and the maintained rdkit.Chem.MolStandardize.rdMolStandardize API. The standalone MolVS package is a legacy dependency, not a prerequisite.
Tell the AI agent what to do: - "Standardize my SMILES library using the ChEMBL pipeline" - "Strip salts and canonicalize tautomers for compound deduplication" - "Build a standardized + deduplicated training set for QSAR from this assay data" - "Apply canSARchem-style standardization (canonical tautomer before parent extraction)" - "Standardize but preserve charged quaternary ammoniums"
"Apply the ChEMBL structure pipeline to compound_library.csv. Run standardize_mol then get_parent_mol on each SMILES. Output deduplicated, canonical SMILES + InChIKey + activity mean per duplicate group."
"Run a multi-step RDKit standardization: sanitize -> largest fragment -> normalize functional groups -> neutralize (preserve quaternary N) -> canonicalize tautomer -> remove isotopes. Compare outputs to ChEMBL pipeline."
"Standardize hERG.csv (column smiles, label hERG_blocker). Deduplicate on InChIKey, average activity, remove inorganics, output train.csv with 1 row per unique compound."
"For these 100 SMILES, use
TautomerEnumeratorwith its documented scoring rules and report the selected canonical tautomer per input; do not describe it as a physical lowest-energy calculation."
"Two datasets, chembl_data.csv and zinc_data.csv, should be joined on standardized SMILES. Standardize both with the ChEMBL pipeline; compare InChIKey overlap; report duplicates."
Chem.MolFromSmiles.smiles, inchikey, activity, n_replicates columns.exclude_flag=True structures into registration or QSAR output.force=False) and inspect charge-sensitive structures; canonicalOrder=True controls site ordering, not whether a charge is chemically permanent.