Pharmaclaw Cheminformatics

v1.0.0

Advanced cheminformatics agent for 3D molecular analysis, pharmacophore mapping, format conversion, RECAP fragmentation, and stereoisomer enumeration. The "s...

0· 298· 1 versions· 2 current· 2 all-time· Updated 11h ago· MIT-0

Install

openclaw skills install pharmaclaw-cheminformatics

Cheminformatics Agent v1.0.0

Overview

Advanced cheminformatics toolkit for 3D molecular analysis and drug development workflows. Extends Chemistry Query (which handles 2D lookup/properties/visualization) with predictive and structural capabilities that require 3D reasoning.

Chemistry Query = "What is this molecule?" (2D, lookup, descriptors) Cheminformatics = "What can this molecule become?" (3D, conformers, pharmacophores, fragments, stereoisomers)

Scripts

scripts/conformer_gen.py

3D conformer ensemble generation using ETKDG with MMFF/UFF optimization.

--smiles <SMILES> --action <generate|ensemble|best> [--num_confs N] [--optimize mmff|uff|none] [--energy_window F] [--prune_rms F] [--output file.sdf]
ActionDescription
generateGenerate N conformers with energies and RMSD matrix
ensembleSame as generate + write SDF file
bestFind lowest-energy conformer with 3D coordinates
python scripts/conformer_gen.py --smiles "CC(=O)Oc1ccccc1C(=O)O" --action generate --num_confs 20
python scripts/conformer_gen.py --smiles "CCO" --action best --output best.sdf
python scripts/conformer_gen.py --smiles "c1ccccc1" --action ensemble --num_confs 50 --output benzene_confs.sdf

Output includes: conformer energies (kcal/mol), relative energies, convergence status, RMSD matrix (top 20), SDF file.

scripts/format_converter.py

Convert between molecular file formats.

--smiles <SMILES> | --input <file> --to <format> [--output file] [--batch] [--name label]

Supported formats: smiles, sdf, mol, inchi, inchikey, pdb, xyz

python scripts/format_converter.py --smiles "CCO" --to sdf --output ethanol.sdf
python scripts/format_converter.py --smiles "CCO" --to inchi
python scripts/format_converter.py --input mols.sdf --to smiles --batch
python scripts/format_converter.py --smiles "CCO" --to pdb --output ethanol.pdb

Batch mode reads multi-molecule SDF files. All 3D formats auto-generate and optimize conformers.

scripts/pharmacophore.py

Pharmacophore feature extraction, fingerprints, and comparison.

--smiles <SMILES> --action <features|fingerprint|compare|map> [--target_smiles "smi1,smi2"] [--output file.png]
ActionDescription
featuresExtract 3D pharmacophoric features (HBD, HBA, aromatic, hydrophobic, ionizable) with coordinates
fingerprintGenerate Gobbi 2D pharmacophore fingerprint
comparePairwise pharmacophore similarity (Tanimoto) across multiple molecules
mapGenerate color-coded pharmacophore PNG (green=donor, red=acceptor, yellow=aromatic, blue=hydrophobic)
python scripts/pharmacophore.py --smiles "CC(=O)Oc1ccccc1C(=O)O" --action features
python scripts/pharmacophore.py --smiles "CC(=O)Oc1ccccc1C(=O)O" --action map --output pharm.png
python scripts/pharmacophore.py --target_smiles "CCO,CC(=O)O,c1ccccc1" --action compare

scripts/recap_fragment.py

RECAP (Retrosynthetic Combinatorial Analysis Procedure) fragmentation at synthetically accessible bonds (amide, ester, amine, urea, ether, olefin, sulfonamide, etc.).

--smiles <SMILES> --action <fragment|leaves|tree|common_fragments> [--target_smiles "smi1,smi2"] [--max_depth N]
ActionDescription
fragmentAll RECAP fragments with metadata
leavesTerminal building blocks only (for library design)
treeHierarchical decomposition tree
common_fragmentsShared fragments across multiple molecules (common scaffolds)
python scripts/recap_fragment.py --smiles "CC(=O)Nc1ccc(O)cc1" --action fragment
python scripts/recap_fragment.py --smiles "CC(=O)Nc1ccc(O)cc1" --action leaves
python scripts/recap_fragment.py --target_smiles "CC(=O)Nc1ccc(O)cc1,CC(=O)Nc1ccccc1" --action common_fragments

Use case: Leaf fragments → building blocks for combinatorial library enumeration. Common fragments across a compound series → shared pharmacophoric scaffolds.

scripts/stereoisomers.py

Stereoisomer enumeration and analysis (chiral centers R/S, double bond E/Z).

--smiles <SMILES> --action <enumerate|analyze|compare> [--max_isomers N] [--only_unassigned]
ActionDescription
enumerateGenerate all stereoisomers with configurations
analyzeCount chiral centers and stereo bonds without enumerating
compareCompare properties across all stereoisomers (drug dev relevance)
python scripts/stereoisomers.py --smiles "C(F)(Cl)Br" --action enumerate
python scripts/stereoisomers.py --smiles "CC=CC" --action analyze
python scripts/stereoisomers.py --smiles "OC(F)(Cl)Br" --action compare

Drug relevance: FDA requires characterization of each stereoisomer for chiral drug candidates. Flags meso forms and provides R/S assignments.

scripts/chain_entry.py

Standard agent chain interface. Runs all 5 modules on a SMILES input.

python scripts/chain_entry.py --input-json '{"smiles": "CC(=O)Nc1ccc(O)cc1", "context": "user"}'
python scripts/chain_entry.py --input-json '{"smiles": "CCO", "actions": ["conformers", "pharmacophore"]}'

Input JSON fields:

  • smiles (required): Input SMILES
  • context: Chain context string
  • actions: Array to run subset — ["conformers", "pharmacophore", "recap", "stereoisomers", "formats"]
  • output_dir: Directory for SDF/PNG output files

Output schema:

{
  "agent": "cheminformatics",
  "version": "1.0.0",
  "smiles": "<canonical>",
  "status": "success|error",
  "report": {
    "conformers": {...},
    "pharmacophore": {...},
    "recap": {...},
    "stereoisomers": {...},
    "formats": {...}
  },
  "risks": [],
  "warnings": [],
  "viz": ["path/to/file.sdf", "path/to/pharmacophore_map.png"],
  "recommend_next": ["pharmacology", "catalyst-design", "ip-expansion"],
  "confidence": 0.9,
  "timestamp": "ISO8601"
}

Chaining

FromToWhat passes
Chemistry Query →CheminformaticsSMILES + basic properties
CheminformaticsPharmacologySMILES + pharmacophore profile for ADME context
CheminformaticsCatalyst Design3D conformer data for catalyst selection
CheminformaticsIP ExpansionStereoisomers as patentable variants
CheminformaticsToxicologyFragment analysis for structural alerts

Dependencies

  • Python ≥ 3.10
  • rdkit-pypi
  • Pillow (for pharmacophore map PNG)
  • numpy

Version tags

latestvk973cb8s1jfb0443323916st6n82p12n