tooluniverse-chemical-compound-retrieval

Retrieves chemical compound information from PubChem and ChEMBL with disambiguation, cross-referencing, and quality assessment. Creates comprehensive compound profiles with identifiers, properties, bi

SKILL.md

GitHub

Chemical Compound Information Retrieval

Retrieve comprehensive chemical compound data with proper disambiguation and cross-database validation.

IMPORTANT: Always use English compound names and search terms in tool calls, even if the user writes in another language (e.g., translate "阿司匹林" to "aspirin"). Only try original-language terms as a fallback if English returns no results. Respond in the user's language.

Workflow Overview

Phase 0: Clarify (if needed)
    ↓
Phase 1: Disambiguate Compound Identity
    ↓
Phase 2: Retrieve Data (Internal)
    ↓
Phase 3: Report Compound Profile

Phase 0: Clarification (When Needed)

Ask the user ONLY if:

  • Compound name is highly ambiguous (e.g., "vitamin E" → α, β, γ, δ-tocopherol?)
  • Multiple distinct compounds share the name (e.g., "aspirin" is clear; "sterol" is not)

Skip clarification for:

  • Unambiguous drug names (aspirin, ibuprofen, metformin)
  • Specific identifiers provided (CID, ChEMBL ID, SMILES)
  • Clear structural queries (SMILES, InChI)

Phase 1: Compound Disambiguation

1.1 Resolve Primary Identifier

from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()

# Strategy depends on input type
if user_provided_cid:
    cid = user_provided_cid
elif user_provided_smiles:
    result = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
    cid = result["data"]["cid"]
elif user_provided_name:
    result = tu.tools.PubChem_get_CID_by_compound_name(compound_name=name)
    cid = result["data"]["cid"]

1.2 Cross-Reference Identifiers

Always establish compound identity across both databases:

# PubChem → ChEMBL cross-reference
chembl_result = tu.tools.ChEMBL_search_compounds(query=compound_name, limit=5)
if chembl_result["data"]:
    chembl_id = chembl_result["data"][0]["molecule_chembl_id"]

1.3 Handle Naming Collisions

For generic names (e.g., "vitamin", "steroid", "acid"):

  • Search returns multiple CIDs → present top matches with structures
  • Verify SMILES/InChI matches user intent
  • Note stereoisomers or salt forms if relevant

Identity Resolution Checklist:

  • PubChem CID established
  • ChEMBL ID cross-referenced (if exists)
  • Canonical SMILES captured
  • Stereochemistry noted (if relevant)
  • Salt forms identified (if applicable)

Phase 2: Data Retrieval (Internal)

Retrieve all data silently. Do NOT narrate the search process.

2.1 Core Properties (PubChem)

# Basic properties
props = tu.tools.PubChem_get_compound_properties_by_CID(cid=cid)

# Bioactivity summary
bio = tu.tools.PubChemBioAssay_get_assay_summary(cid=cid)

# Drug label (if approved drug)
drug = tu.tools.PubChemTox_get_acute_effects(cid=cid)

# Structure image
image = tu.tools.PubChem_get_compound_2D_image_by_CID(cid=cid)

2.2 Bioactivity Data (ChEMBL)

if chembl_id:
    # Detailed bioactivity
    activity = tu.tools.ChEMBL_get_bioactivity_by_chemblid(chembl_id=chembl_id)

    # Protein targets
    targets = tu.tools.ChEMBL_get_target_by_chemblid(chembl_id=chembl_id)

    # Assay data
    assays = tu.tools.ChEMBL_get_assays_by_chemblid(chembl_id=chembl_id)

2.3 Optional Extended Data

# Patents (for drugs)
patents = tu.tools.PubChem_get_associated_patents_by_CID(cid=cid)

# Similar compounds (for SAR)
similar = tu.tools.PubChem_search_compounds_by_similarity(cid=cid, threshold=85)

Fallback Chains

Primary Fallback Notes
PubChem_get_CID_by_compound_name ChEMBL_search_compounds → get SMILES → PubChem_get_CID_by_SMILES Name lookup failed
ChEMBL_get_bioactivity PubChem_get_bioactivity_summary ChEMBL ID unavailable
PubChem_get_drug_label_info Note "Drug label unavailable" Not an approved drug

Phase 3: Report Compound Profile

Output Structure

Present results as a Compound Profile Report. Hide all search process details.

# Compound Profile: [Compound Name]

## Identity
| Property | Value |
|----------|-------|
| **PubChem CID** | [cid] |
| **ChEMBL ID** | [chembl_id or "N/A"] |
| **IUPAC Name** | [full name] |
| **Common Names** | [synonyms] |

## Chemical Properties

### Molecular Descriptors
| Property | Value | Drug-Likeness |
|----------|-------|---------------|
| **Formula** | C₉H₈O₄ | - |
| **Molecular Weight** | 180.16 g/mol | ✓ (<500) |
| **LogP** | 1.19 | ✓ (-2 to 5) |
| **H-Bond Donors** | 1 | ✓ (<5) |
| **H-Bond Acceptors** | 4 | ✓ (<10) |
| **Polar Surface Area** | 63.6 Ų | ✓ (<140) |
| **Rotatable Bonds** | 3 | ✓ (<10) |

### Structural Representation
- **SMILES**: `CC(=O)Oc1ccccc1C(=O)O`
- **InChI**: `InChI=1S/C9H8O4/...`

[2D structure image if available]

## Bioactivity Profile

### Summary
- **Active in**: [X] assays out of [Y] tested
- **Primary Targets**: [list top targets]
- **Mechanism**: [if known]

### Key Target Interactions (from ChEMBL)
| Target | Activity Type | Value | Units |
|--------|--------------|-------|-------|
| [Target 1] | IC50 | [value] | nM |
| [Target 2] | Ki | [value] | nM |

## Drug Information (if applicable)

### Clinical Status
| Property | Value |
|----------|-------|
| **Approval Status** | [Approved/Investigational/N/A] |
| **Drug Class** | [therapeutic class] |
| **Indication** | [approved uses] |
| **Route** | [oral/IV/topical/etc.] |

### Safety
- **Black Box Warning**: [Yes/No]
- **Major Interactions**: [if any]

## Related Compounds (if retrieved)

Top 5 structurally similar compounds:
| CID | Name | Similarity | Key Difference |
|-----|------|------------|----------------|
| [cid] | [name] | 95% | [note] |

## Data Sources
- PubChem: [CID link]
- ChEMBL: [ChEMBL ID link]
- Retrieved: [date]

Data Quality Tiers

Apply to data completeness assessment:

Tier Symbol Criteria
Complete ●●● All core properties + bioactivity + drug info
Substantial ●●○ Core properties + bioactivity OR drug info
Basic ●○○ Core properties only
Minimal ○○○ CID/name only, limited data

Include in report header:

**Data Completeness**: ●●● Complete (properties, bioactivity, drug data)

Completeness Checklist

Every compound profile MUST include these sections (even if "unavailable"):

Identity (Required)

  • PubChem CID
  • ChEMBL ID (or "N/A")
  • IUPAC name
  • Canonical SMILES

Properties (Required)

  • Molecular formula
  • Molecular weight
  • LogP
  • Lipinski rule assessment

Bioactivity (Required)

  • Activity summary (or "No bioactivity data")
  • Primary targets (or "Unknown")

Drug Info (If Approved Drug)

  • Approval status
  • Indication
  • Drug class

Always Include

  • Data sources with links
  • Retrieval date
  • Quality tier assessment

Reasoning Framework for Result Interpretation

Evidence Grading

Grade Criteria Example
Confirmed identity PubChem CID + ChEMBL ID cross-match, InChI/SMILES agree, reviewed in DrugBank or ChEMBL Aspirin: CID 2244, CHEMBL25, consistent SMILES across databases
Probable identity PubChem CID found, ChEMBL partial match, minor stereochemistry ambiguity Natural product with CID but ChEMBL entry lacking full stereochem
Uncertain identity Only one database has entry, or name resolves to multiple CIDs "Vitamin E" returning alpha- and gamma-tocopherol CIDs
Unverified No cross-reference, single-source data only Novel compound with PubChem SID only, no CID assigned

Interpretation Guidance

  • Compound identity confidence: Always cross-reference PubChem CID with ChEMBL ID. If InChI strings match across databases, identity is confirmed. Discrepancies in SMILES may reflect salt forms, stereoisomers, or tautomers -- flag these for the user.
  • Data source priority for bioactivity: ChEMBL > PubChem BioAssay for curated bioactivity data. ChEMBL entries are manually curated from medicinal chemistry literature with standardized activity units. PubChem BioAssay aggregates HTS results with variable quality. For drug-target interactions, ChEMBL IC50/Ki values are more reliable than PubChem confirmatory assay flags.
  • Cross-reference validation: A compound profile is most reliable when 3+ databases agree on structure and activity (PubChem + ChEMBL + DrugBank for approved drugs). Single-source bioactivity claims, especially from a single assay, should be flagged as preliminary.
  • Lipinski assessment: Ro5 violations do not disqualify a compound but reduce oral bioavailability likelihood. Many approved drugs (e.g., cyclosporine) violate Ro5. Report violations as context, not as pass/fail.
  • Bioactivity values: IC50/Ki < 100 nM = potent; 100 nM - 1 uM = moderate; > 10 uM = weak. Activity type matters: IC50 is assay-dependent; Ki is more comparable across assays.

Synthesis Questions

  1. Does the compound identity resolve unambiguously across PubChem and ChEMBL, or are there stereochemical or salt-form variants that could affect interpretation?
  2. Is the bioactivity data from ChEMBL based on multiple independent publications, or does it rely on a single study?
  3. For drug candidates, do the molecular properties (MW, LogP, PSA) fall within drug-like space, and are there structural alerts (PAINS, reactive groups) that warrant caution?

Common Use Cases

Drug Property Check

User: "Tell me about metformin" → Full compound profile with drug information emphasis

Structure Verification

User: "Verify this SMILES: CC(=O)Oc1ccccc1C(=O)O" → Disambiguation-focused profile, confirm identity

SAR Analysis

User: "Find compounds similar to ibuprofen" → Similarity search + comparative property table

Target Identification

User: "What proteins does gefitinib target?" → ChEMBL bioactivity emphasis with target list


Error Handling

Error Response
"Compound not found" Try synonyms, verify spelling, offer SMILES search
"No ChEMBL ID" Note in Identity section, continue with PubChem data
"No bioactivity data" Include section with "No bioactivity screening data available"
"API timeout" Retry once, note unavailable data with "(retrieval failed)"

Tool Reference

PubChem (Chemical Database)

Tool Purpose
PubChem_get_CID_by_compound_name Name → CID
PubChem_get_CID_by_SMILES Structure → CID
PubChem_get_compound_properties_by_CID Molecular properties
PubChem_get_compound_2D_image_by_CID Structure visualization
PubChemBioAssay_get_assay_summary Activity overview
PubChemTox_get_acute_effects FDA drug labels
PubChem_get_associated_patents_by_CID IP information
PubChem_search_compounds_by_similarity Find analogs
PubChem_search_compounds_by_substructure Substructure search

ChEMBL (Bioactivity Database)

Tool Purpose
ChEMBL_search_drugs Name/structure search
ChEMBL_get_molecule Compound details
ChEMBL_get_activity Activity data
ChEMBL_get_target Protein targets
ChEMBL_search_targets Target search
ChEMBL_search_assays Assay metadata