Full-stack chemistry toolkit combining PubChem data retrieval with RDKit molecule processing, visualization, analysis, retrosynthesis, and synthesis planning. All outputs are structured JSON for easy downstream chaining. Generates PNG/SVG images on demand.
Key capabilities:
# PubChem compound info
exec python scripts/query_pubchem.py --compound "aspirin" --type info
# Molecular properties from SMILES
exec python scripts/rdkit_mol.py --smiles "CC(=O)Oc1ccccc1C(=O)O" --action props
# Retrosynthesis
exec python scripts/rdkit_mol.py --target "CC(=O)Oc1ccccc1C(=O)O" --action retro --depth 2
# Full chain (name → props + draw + retro)
exec python scripts/chain_entry.py --input-json '{"name": "caffeine", "context": "user"}'
scripts/query_pubchem.pyPubChem REST API queries with automatic name→CID resolution and timeout handling.
--compound <name|CID> --type <info|structure|synthesis|similar> [--format smiles|inchi|image|json] [--threshold 80]
scripts/rdkit_mol.pyRDKit cheminformatics engine. Resolves names via PubChem automatically.
--smiles <SMILES> --action <props|draw|fingerprint|similarity|substruct|xyz|react|retro|plan>
| Action | Description | Key Args | |
|---|---|---|---|
| -------- | ------------- | ---------- | |
| props | MW, logP, TPSA, HBD, HBA, rotB, aromRings | --smiles | |
| draw | 2D PNG/SVG (300×300) | `--smiles --output file.png --format png\ | svg` |
| retro | BRICS recursive retrosynthesis | `--target | name> --depth N` | |
| plan | Multi-step retro route | `--target | name> --steps N` | |
| react | Forward reaction via SMARTS | --reactants "smi1 smi2" --smarts " | |
| fingerprint | Morgan fingerprint bitvector | --smiles --radius 2 | |
| similarity | Tanimoto similarity scoring | --query_smiles --target_smiles "smi1,smi2" | |
| substruct | Substructure matching | --query_smiles --target_smiles "smi1,smi2" | |
| xyz | 3D coordinates (MMFF optimized) | --smiles |
scripts/chain_entry.pyStandard agent chain interface. Accepts {"smiles": "...", "context": "..."} or {"name": "...", "context": "..."}. Returns unified JSON with props, visualization, and retrosynthesis.
python scripts/chain_entry.py --input-json '{"name": "sotorasib", "context": "user"}'
Output schema:
{
"agent": "chemistry-query",
"version": "1.4.0",
"smiles": "<canonical>",
"status": "success|error",
"report": {"props": {...}, "draw": {...}, "retro": {...}},
"risks": [],
"viz": ["path/to/image.png"],
"recommend_next": ["pharmacology", "toxicology"],
"confidence": 0.95,
"warnings": [],
"timestamp": "ISO8601"
}
scripts/templates.json21 named reaction templates with SMARTS, expected yields, conditions, and references. Includes: Suzuki, Heck, Buchwald-Hartwig, Grignard, Wittig, Diels-Alder, Click, Sonogashira, Negishi, and more.
chain_entry.py with {"name": "ibuprofen"} → props + draw + retropharma-pharmacology-agent--action react --reactants "c1ccccc1Br c1ccccc1B(O)O" --smarts "[c:1][Br:2].[c:3]B(O)O>>[c:1][c:3]"All features verified end-to-end with RDKit 2024.03+:
| Molecule | SMILES | Tests Passed |
|---|---|---|
| ---------- | -------- | ------------- |
| Caffeine | CN1C=NC2=C1C(=O)N(C(=O)N2C)C | info, structure, props, draw, retro, plan, chain |
| Aspirin | CC(=O)Oc1ccccc1C(=O)O | info, structure, props, draw, retro, plan, chain |
| Sotorasib | PubChem name lookup | info, structure, props, draw, retro, chain |
| Ibuprofen | PubChem name lookup | info, structure, props, chain |
| Invalid SMILES | XXXINVALID | Graceful JSON error |
| Empty input | {} | Graceful JSON error |
references/api_endpoints.md — PubChem API endpoint reference and rate limitsscripts/rdkit_reaction.py — Legacy reaction modulescripts/chembl_query.py, scripts/pubmed_search.py, scripts/admet_predict.py — Additional query modulesv1.4.0 (2026-02-14)
v1.3.0
v1.2.0
共 1 个版本