Files

4.7 KiB

title, task, lineage_type, upstream_source, upstream_sha, imported_at, prompt_class, upstream_changes, author, validated
title task lineage_type upstream_source upstream_sha imported_at prompt_class upstream_changes author validated
Chemical Compound Retrieval Examples import https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/tooluniverse-chemical-compound-retrieval/examples.md e2520a96 2026-06-26 prompt accepted upstream false

Chemical Compound Retrieval Examples

Example 1: Find Aspirin Information

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

# Get CID from name
cid_result = tu.tools.PubChem_get_CID_by_compound_name(
    compound_name="aspirin"
)
cid = cid_result["data"]["cid"]  # 2244

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

print(f"CID: {cid}")
print(f"Formula: {props['data']['MolecularFormula']}")
print(f"Weight: {props['data']['MolecularWeight']}")
print(f"SMILES: {props['data']['CanonicalSMILES']}")

Example 2: Search by Chemical Structure

# Search by SMILES
smiles = "CC(=O)Oc1ccccc1C(=O)O"  # Aspirin

cid_result = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
cid = cid_result["data"]["cid"]

# Get compound details
props = tu.tools.PubChem_get_compound_properties_by_CID(cid=cid)
print(f"Found: {props['data']['IUPACName']}")

Example 3: Find Similar Compounds

# Start with a known compound
cid = 2244  # Aspirin

# Find similar compounds
similar = tu.tools.PubChem_search_compounds_by_similarity(
    cid=cid,
    threshold=85  # 85% similarity
)

print(f"Found {len(similar['data'])} similar compounds")

# Get properties of similar compounds
for sim_cid in similar["data"][:5]:
    props = tu.tools.PubChem_get_compound_properties_by_CID(
        cid=sim_cid
    )
    print(f"CID {sim_cid}: {props['data']['MolecularFormula']}")

Example 4: Get Drug Information

# Find drug
cid_result = tu.tools.PubChem_get_CID_by_compound_name(
    compound_name="ibuprofen"
)
cid = cid_result["data"]["cid"]

# Get bioactivity
bioactivity = tu.tools.PubChem_get_compound_bioactivity(
    cid=cid
)

print(f"Active in {bioactivity['data']['active_assay_count']} assays")

# Get drug label information
# FDA labels are keyed by drug name, not CID -- resolve the name first
_syn = tu.tools.PubChem_get_compound_synonyms_by_CID(cid=cid)
_name = _syn['data'][0] if isinstance(_syn, dict) and _syn.get('data') else None
drug_info = tu.tools.FDA_get_drug_label(drug_name=_name)

# Get patents
patents = tu.tools.PubChem_get_associated_patents_by_CID(cid=cid)
print(f"Related patents: {len(patents['data'])}")

Example 5: ChEMBL Cross-Reference

# Find in PubChem
cid_result = tu.tools.PubChem_get_CID_by_compound_name(
    compound_name="gefitinib"
)

# Search in ChEMBL
chembl_result = tu.tools.ChEMBL_search_molecules(
    query="gefitinib",
    limit=5
)

if chembl_result["data"]:
    chembl_id = chembl_result["data"][0]["molecule_chembl_id"]
    
    # Get bioactivity from ChEMBL
    activity = tu.tools.ChEMBL_search_activities(
        chembl_id=chembl_id
    )
    
    # Get targets
    targets = tu.tools.ChEMBL_get_target(
        chembl_id=chembl_id
    )
    
    print(f"ChEMBL ID: {chembl_id}")
    print(f"Bioactivities: {len(activity['data'])}")
    print(f"Targets: {len(targets['data'])}")
# Search for compounds containing benzene ring
benzene_smiles = "c1ccccc1"

result = tu.tools.PubChem_search_compounds_by_substructure(
    smiles=benzene_smiles,
    limit=100
)

print(f"Found {len(result['data'])} compounds with benzene ring")

# Get properties of first 10
for cid in result["data"][:10]:
    props = tu.tools.PubChem_get_compound_properties_by_CID(cid=cid)
    print(f"CID {cid}: {props['data']['IUPACName'][:50]}...")

Example 7: Drug Discovery Workflow

# 1. Start with target compound
cid = tu.tools.PubChem_get_CID_by_compound_name(
    compound_name="erlotinib"
)["data"]["cid"]

# 2. Get properties (check drug-likeness)
props = tu.tools.PubChem_get_compound_properties_by_CID(cid=cid)
mw = props["data"]["MolecularWeight"]
logp = props["data"]["XLogP"]

print(f"MW: {mw}, LogP: {logp}")

# 3. Get bioactivity
bio = tu.tools.PubChem_get_compound_bioactivity(cid=cid)
print(f"Active in {bio['data']['active_assay_count']} assays")

# 4. Find similar active compounds
similar = tu.tools.PubChem_search_compounds_by_similarity(
    cid=cid,
    threshold=80
)

print(f"Found {len(similar['data'])} similar compounds for SAR analysis")

Example 8: Get 2D Structure Image

# Get compound
cid = 2244  # Aspirin

# Get structure image
image = tu.tools.PubChem_get_compound_2D_image_by_CID(cid=cid)

print(f"Image URL: {image['data']['url']}")
# Can be displayed or saved for documentation