$npx -y skills add ma-compbio-lab/SkillFoundry --skill rdkit-molecule-standardizationUse this skill to standardize one small-molecule SMILES string with RDKit MolStandardize. It is for local cleanup, salt stripping, uncharging, and tautomer canonicalization, not docking or batch-library processing.
| 1 | ## Purpose |
| 2 | Turn a single SMILES string into a deterministic standardization summary using `RDKit` `MolStandardize`. |
| 3 | |
| 4 | ## When to use |
| 5 | - You need a local starter for the taxonomy leaf `molecule-standardization`. |
| 6 | - You want to strip salts or counterions before downstream featurization. |
| 7 | - You want a compact JSON summary with fragment-parent, uncharged, and canonical-tautomer SMILES. |
| 8 | |
| 9 | ## When not to use |
| 10 | - You need conformers, docking, or quantum chemistry. |
| 11 | - You need bulk normalization across large compound libraries. |
| 12 | |
| 13 | ## Inputs |
| 14 | - One SMILES string passed by `--smiles` or a single-line file passed by `--smiles-file` |
| 15 | - Optional molecule name |
| 16 | - Optional JSON output path |
| 17 | |
| 18 | ## Outputs |
| 19 | - JSON summary with cleaned, fragment-parent, uncharged, and canonical-tautomer SMILES |
| 20 | - Charge before and after standardization |
| 21 | - Formula and heavy-atom count for the standardized molecule |
| 22 | |
| 23 | ## Requirements |
| 24 | - `slurm/envs/chem-tools` with `RDKit` and `MolStandardize` |
| 25 | |
| 26 | ## Procedure |
| 27 | 1. Run `slurm/envs/chem-tools/bin/python skills/drug-discovery-and-cheminformatics/rdkit-molecule-standardization/scripts/standardize_rdkit_molecule.py --smiles-file skills/drug-discovery-and-cheminformatics/rdkit-molecule-standardization/examples/sodium_acetate.smiles --name sodium-acetate`. |
| 28 | 2. Inspect `fragment_parent_smiles` to confirm salt stripping. |
| 29 | 3. Inspect `uncharged_smiles` and `canonical_tautomer_smiles` before reusing the molecule downstream. |
| 30 | |
| 31 | ## Validation |
| 32 | - The script exits successfully with the `chem-tools` prefix. |
| 33 | - The sodium acetate example standardizes to `CC(=O)O`. |
| 34 | - The runtime output matches `assets/sodium_acetate_standardized.json`. |
| 35 | |
| 36 | ## Failure modes and fixes |
| 37 | - Invalid SMILES: verify the input string or the first non-empty line in the SMILES file. |
| 38 | - Missing RDKit environment: run the script with `slurm/envs/chem-tools/bin/python`. |
| 39 | |
| 40 | ## Safety and limits |
| 41 | - This is a molecule-cleanup helper only. |
| 42 | - It does not imply medicinal-chemistry, ADMET, or synthesis interpretation. |
| 43 | |
| 44 | ## Provenance |
| 45 | - RDKit documentation: https://www.rdkit.org/docs/ |
| 46 | - RDKit MolStandardize API: https://www.rdkit.org/docs/source/rdkit.Chem.MolStandardize.rdMolStandardize.html |
| 47 | |
| 48 | ## Related skills |
| 49 | - `rdkit-molecular-descriptors` |
| 50 | - `chembl-molecule-search` |