tooluniverse-small-molecule-discovery
Small molecule identification, characterization, and procurement — PubChem, ChEMBL, BindingDB, ADMET-AI, SwissADME, eMolecules, Enamine. Covers compound name to structure to activity to ADMET properties to commercial sourcing. Use for chemical biology, lead identification, probe selection, and the full small-molecule discovery pipeline.
What this skill does
# Small Molecule Discovery Skill
Systematic small molecule identification, characterization, and sourcing using PubChem, ChEMBL, BindingDB, ADMET-AI, SwissADME, eMolecules, and Enamine. Covers the full pipeline from compound name to structure, activity, ADMET properties, and commercial procurement.
## Domain Reasoning
Drug-likeness is not a binary property. Lipinski's Rule of 5 was derived from orally administered, passively absorbed drugs and has many well-known exceptions: natural products, macrocycles, PROTACs, and many approved drugs violate one or more rules. The relevant question is not "does this pass Ro5?" but "does this compound's physicochemical profile match the requirements of the target, the intended route of administration, and the therapeutic context?" Focus on the specific requirements, not rigid rules.
## LOOK UP DON'T GUESS
- Compound identity (CID, ChEMBL ID, SMILES): call `PubChem_get_CID_by_compound_name` and `ChEMBL_search_molecules`; do not assume IDs from memory.
- ADMET properties: run `SwissADME_calculate_adme` or `ADMETAI_predict_*` on the actual SMILES; do not estimate logP, TPSA, or bioavailability.
- Binding affinities against a target: query `ChEMBL_search_activities` or `BindingDB_get_ligands_by_uniprot`; never cite IC50 values from memory.
- Commercial availability: check `eMolecules_search` or `Enamine_search_catalog`; do not assume availability.
---
**KEY PRINCIPLES**:
1. **Resolve identity first** - Always get CID and ChEMBL ID before research
2. **SMILES required for property prediction** - Extract canonical SMILES from PubChem early
3. **English names in tools** - Use IUPAC or common English names; avoid abbreviations in tool calls
4. **BindingDB is often unavailable** - Fall back to ChEMBL activities when BindingDB times out
5. **eMolecules/Enamine return URLs** - These tools generate search URLs, not direct data; note this to user
---
## COMPUTE, DON'T DESCRIBE
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
## When to Use
- "Find information about compound X"
- "What is the drug-likeness of this SMILES?"
- "Show binding affinities for EGFR inhibitors"
- "Search for compounds similar to imatinib"
- "Is this compound commercially available?"
- "What are the ADMET properties of this molecule?"
- "Find ChEMBL activities for target Y"
- "Predict targets for this small molecule"
---
## Key Tools
| Tool | Purpose | Key Params |
|------|---------|-----------|
| `PubChem_get_CID_by_compound_name` | Name to CID lookup | `compound_name` |
| `PubChem_get_CID_by_SMILES` | SMILES to CID lookup | `smiles` |
| `PubChem_get_compound_properties_by_CID` | MW, formula, SMILES, InChIKey | `cid`, `properties` |
| `PubChem_search_compounds_by_similarity` | Find structurally similar compounds | `smiles`, `threshold` (0-100) |
| `PubChem_search_compounds_by_substructure` | Substructure search | `smiles` |
| `PubChem_get_compound_synonyms_by_CID` | All names/synonyms | `cid` |
| `ChEMBL_search_molecules` | Search ChEMBL by name or ID | `query` |
| `ChEMBL_get_molecule` | Full ChEMBL molecule record | `chembl_id` |
| `ChEMBL_search_similar_molecules` | Similarity search in ChEMBL | `query` (SMILES or ChEMBL ID) |
| `ChEMBL_search_activities` | Binding affinities and assay data | `molecule_chembl_id`, `target_chembl_id`, `pchembl_value__gte` |
| `ChEMBL_get_drug_mechanisms` | MOA for approved drugs | `drug_chembl_id` or `drug_name` |
| `ChEMBL_search_targets` | Find targets by name | `query`, `organism` |
| `ChEMBL_get_target_activities` | All ligands for a target | `target_chembl_id` |
| `SwissADME_calculate_adme` | Physicochemical + ADMET properties | `operation="calculate_adme"`, `smiles` |
| `SwissADME_check_druglikeness` | Lipinski, Veber, Egan rules | `operation="check_druglikeness"`, `smiles` |
| `ADMETAI_predict_physicochemical_properties` | MW, logP, TPSA, HBD/HBA | `smiles` (list) |
| `ADMETAI_predict_bioavailability` | Oral bioavailability prediction | `smiles` (list) |
| `ADMETAI_predict_BBB_penetrance` | Blood-brain barrier permeability | `smiles` (list) |
| `ADMETAI_predict_toxicity` | hERG, DILI, mutagenicity | `smiles` (list) |
| `ADMETAI_predict_CYP_interactions` | CYP450 inhibition/substrate | `smiles` (list) |
| `SwissTargetPrediction_predict` | Predict protein targets for compound | `operation="predict"`, `smiles` |
| `eMolecules_search` | Find commercially available compounds | `query` (name or keyword) |
| `eMolecules_search_smiles` | Structure-based commercial search | `smiles` |
| `eMolecules_get_vendors` | Find vendors for a specific compound | `compound_id` |
| `Enamine_search_catalog` | Search Enamine screening library | `query` |
| `Enamine_search_smiles` | Search Enamine by structure | `smiles` |
| `Enamine_get_libraries` | List Enamine compound libraries | (none required) |
---
## Workflow
### Phase 1: Compound Identification
```
# Step 1: Name -> CID (PubChem canonical identity)
PubChem_get_CID_by_compound_name(compound_name="imatinib")
# -> CID: 5291
# Step 2: Get SMILES and properties (needed for all downstream tools)
PubChem_get_compound_properties_by_CID(
cid="5291",
properties="MolecularFormula,MolecularWeight,CanonicalSMILES,InChIKey,IUPACName"
)
# -> canonical SMILES, InChIKey (global identifier)
# Step 3: Get ChEMBL ID (for activity data)
ChEMBL_search_molecules(query="imatinib")
# -> ChEMBL ID (e.g., "CHEMBL941")
# Step 4: Get all synonyms (brand names, INN, etc.)
PubChem_get_compound_synonyms_by_CID(cid="5291")
```
**ID resolution priority**:
1. Start with PubChem CID (most universal)
2. Get ChEMBL ID (for bioactivity data)
3. Use canonical SMILES for structure-based searches and ADMET
### Phase 2: Structure-Based Search
**Similarity search** (find analogs):
```
PubChem_search_compounds_by_similarity(
smiles="CANONICAL_SMILES",
threshold=85 # Tanimoto threshold 0-100; 85 = highly similar
)
# Returns: list of CIDs of similar compounds
ChEMBL_search_similar_molecules(query="CHEMBL941") # Or SMILES
# Returns: ChEMBL entries sorted by similarity
```
**Substructure search** (find compounds containing a scaffold):
```
PubChem_search_compounds_by_substructure(smiles="SCAFFOLD_SMILES")
# Returns: CIDs of compounds containing the scaffold
```
### Phase 3: Bioactivity and Binding Affinity
**Get all activities for a compound** (across all targets):
```
ChEMBL_search_activities(
molecule_chembl_id="CHEMBL941",
pchembl_value__gte=6, # pIC50/Ki >= 6 = IC50/Ki <= 1 µM
limit=50
)
# Returns: assay_type, target_name, pchembl_value, units
```
**Get all ligands for a target**:
```
# First find target ChEMBL ID
ChEMBL_search_targets(query="EGFR", organism="Homo sapiens")
# -> target_chembl_id, e.g., "CHEMBL203"
ChEMBL_get_target_activities(
target_chembl_id="CHEMBL203"
)
# Returns: all compounds with binding data against this target
```
**BindingDB** (when available — often times out):
```
BindingDB_get_ligands_by_uniprot(uniprot_id="P00533") # EGFR
# Returns: Ki, IC50, Kd data with literature references
# Note: BindingDB REST API is frequently unavailable; fall back to ChEMBL
```
**pChEMBL Value interpretation**:
| pChEMBL | IC50 / Ki | Affinity |
|---------|-----------|---------|
| >= 9 | <= 1 nM | Very potent |
| >= 7 | <= 100 nM | Potent |
| >= 6 | <= 1 µM | Moderate |
| >= 5 | <= 10 µM | Weak |
| < 5 | > 10 µM | Inactive |
### Phase 4: Drug-likeness and ADMET
**SwissADME** (comprehensive, requires SMILES string — not list):
```
SwissADME_calculate_adme(
operation="calculate_adme",
smiles="CANONICAL_SMILES"
)
# Returns: physicochemical, lipophilicity, water solubility, pharmacokinetics,
# drug-likeness scores (Lipinski, Veber, Egan, Muegge), PAINS alerts
SwissADME_check_Related in Sales & CRM
process-mapper
IncludedUse when a BizOps lead, COO, or process-improvement owner needs to document an end-to-end business process (procurement, employee onboarding, incident handoff, customer-onboarding, claims adjudication) in BPMN-style notation, measure cycle times by stage, surface where work spends most of its time waiting vs. being worked, and quantify the gap between processing time and total elapsed time. Pairs Lean / Six Sigma / Theory-of-Constraints canon with deterministic stdlib-only Python tools to produce a process map, a ranked bottleneck list (with severity + root-cause hypothesis), and a cycle-time analysis (P50, P90, value-add ratio, Little's-Law throughput). Distinct from sales-pipeline, system-reliability (SLO), and strategic-OKR work — this is tactical process documentation for internal operations.
payment-integration
IncludedIntegrate payments with SePay (VietQR), Polar, Stripe, Paddle (MoR subscriptions), Creem.io (licensing). Checkout, webhooks, subscriptions, QR codes, multi-provider orders.
customer-success-manager
IncludedMonitors customer health, predicts churn risk, and identifies expansion opportunities using weighted scoring models for SaaS customer success
sales-engineer
IncludedAnalyzes RFP/RFI responses for coverage gaps, builds competitive feature comparison matrices, and plans proof-of-concept (POC) engagements for pre-sales engineering. Use when responding to RFPs, bids, or proposal requests; comparing product features against competitors; planning or scoring a customer POC or sales demo; preparing a technical proposal; or performing win/loss competitor analysis. Handles tasks described as 'RFP response', 'bid response', 'proposal response', 'competitor comparison', 'feature matrix', 'POC planning', 'sales demo prep', or 'pre-sales engineering'.
customer-success-manager
IncludedMonitors customer health, predicts churn risk, and identifies expansion opportunities using weighted scoring models for SaaS customer success
sales-engineer
IncludedAnalyzes RFP/RFI responses for coverage gaps, builds competitive feature comparison matrices, and plans proof-of-concept (POC) engagements for pre-sales engineering. Use when responding to RFPs, bids, or proposal requests; comparing product features against competitors; planning or scoring a customer POC or sales demo; preparing a technical proposal; or performing win/loss competitor analysis. Handles tasks described as 'RFP response', 'bid response', 'proposal response', 'competitor comparison', 'feature matrix', 'POC planning', 'sales demo prep', or 'pre-sales engineering'.