Find commercial sources for chemical compounds — PubChem/ChEMBL identity resolution then vendor catalog search across ZINC, Enamine, eMolecules, Mcule. Compares pricing, availability, and identifies purchasable analogs when an exact compound is not in stock. Use for chemical procurement, virtual library curation, and 'where can I buy X' questions for synthesis planning.
Find commercial sources for chemical compounds — PubChem/ChEMBL identity resolution then vendor catalog search across ZINC, Enamine, eMolecules, Mcule. Compares pricing, availability, and identifies purchasable analogs when an exact compound is not in stock. Use for chemical procurement, virtual library curation, and 'where can I buy X' questions for synthesis planning.
disable-model-invocation
true
Chemical Compound Sourcing & Procurement
Pipeline for identifying, sourcing, and purchasing chemical compounds from commercial vendors. Resolves compound identity through PubChem/ChEMBL, searches multiple vendor databases (ZINC, Enamine, eMolecules, Mcule), compares pricing and availability, and identifies purchasable analogs when exact compounds are unavailable.
Guiding principles:
Identity first -- confirm the compound's structure (SMILES, InChI) before searching vendors; names can be ambiguous
Analog fallback -- if the exact compound is unavailable, search for close analogs
Purity and quantity awareness -- note catalog purity grades and minimum order quantities
Structure over name -- vendor searches by SMILES/InChI are more reliable than name searches
English-first queries -- use English compound names in tool calls
LOOK UP, DON'T GUESS
When uncertain about any scientific fact, SEARCH databases first rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
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
Typical triggers:
"Where can I buy [compound]?"
"Find commercial sources for [SMILES]"
"Compare prices for [compound] across vendors"
"Is [compound] commercially available?"
"Find purchasable analogs of [compound]"
"I need [quantity] of [compound] -- who sells it?"
"Search ZINC/Enamine for [compound]"
Not this skill: For ADMET/toxicity assessment, use tooluniverse-admet-prediction. For drug-target interaction analysis, use tooluniverse-drug-target-validation.
ChEMBL_get_molecule -- get ChEMBL compound details
Input: molecule_chembl_id (ChEMBL ID) or search by name
Output: SMILES, molecular properties, synonyms
Workflow:
If user provides a name: resolve to PubChem CID, then get SMILES
If user provides SMILES: use directly (optionally verify via PubChem)
If user provides CAS number: search PubChem by name (CAS numbers work as search terms)
Record: canonical SMILES, molecular weight, molecular formula, IUPAC name
Important: PubChem ConnectivitySMILES (not CanonicalSMILES) is the correct property name. Always confirm the SMILES matches the intended compound before proceeding.
Phase 1: Vendor Search
Objective: Search all available vendor databases for the target compound.
Tools:
ZINC_search_compounds -- search ZINC by name or SMILES
Input: query (name or SMILES), optional catalog, limit
Output: ZINC IDs, vendor info, purchasability status
ZINC_get_compound -- get detailed compound info from ZINC
Input: zinc_id (ZINC identifier)
Output: vendors, catalogs, pricing, SMILES
Enamine_search_catalog -- search Enamine catalog
Input: query (name or SMILES), optional catalog_type, limit
Output: catalog numbers, availability, pricing
Enamine_get_compound -- get Enamine compound details
Input: compound_id (Enamine catalog number)
Output: structure, pricing, stock status, delivery time
eMolecules_search -- search across multiple vendors
Input: query (name or SMILES), optional limit
Output: vendor list, catalog numbers, pricing
eMolecules_get_compound -- get eMolecules compound details
Input: compound_id (eMolecules ID)
Output: vendors, pricing tiers, purity
Mcule_get_compound -- search Mcule database
Input: query (name or SMILES), optional limit
Output: Mcule IDs, availability, pricing
Mcule_get_compound -- get Mcule compound details
Input: compound_id (Mcule ID)
Output: pricing, delivery, purity, catalog number
Workflow:
Search all four vendor databases in parallel using SMILES (preferred) or name
For each hit, retrieve detailed compound info (pricing, stock, purity)
Deduplicate results by matching SMILES across vendors
Flag any structural mismatches (vendor compound differs from target)
Tip: SMILES-based searches are more precise than name searches. If name search returns too many results, switch to SMILES.
Phase 2: Price & Availability Comparison
Objective: Create a comparison table across vendors.
Vendor Comparison Table -- all vendors with pricing, stock, purity, delivery time
Recommended Source -- specific vendor with reasoning (not just cheapest)
Analogs (if searched) -- alternative compounds with similarity scores and bioactivity comparison
Notes -- special handling, storage conditions, salt form, stereochemistry considerations
Common Analysis Patterns
Pattern
Description
Key Phases
Quick Availability Check
Is this compound purchasable?
0, 1
Full Vendor Comparison
Compare all sources with pricing
0, 1, 2, 5
Analog Discovery
Compound unavailable; find alternatives
0, 1, 3, 5
Building Block Sourcing
Find reagents for synthesis
0, 1, 2
Hit-to-Lead Sourcing
Source screening hits with bioactivity context
0, 1, 2, 4, 5
Edge Cases & Fallbacks
Name ambiguity: Multiple compounds share a name (e.g., "aspirin" vs "acetylsalicylic acid"). Always resolve to SMILES first
Stereochemistry: Vendors may sell racemic mixtures vs specific enantiomers. Check SMILES stereochemistry carefully
Salt forms: The same drug may be sold as different salts (HCl, maleate, etc.). Note the specific form
No vendors found: Compound may be available through custom synthesis. Note this in the report
Make-on-demand: Enamine REAL compounds require synthesis (2-4 weeks). Distinguish from in-stock items
Interpretation Framework
Evidence Grade
Criteria
Action
A -- High confidence
In-stock at 2+ vendors, purity >=98%, CoA available
Order directly
B -- Moderate confidence
Single vendor or make-on-demand, purity >=95%
Request CoA, verify structure
C -- Low confidence
No stock, purity unstated, or price outlier (>5x median)
Custom synthesis or analog search
Interpreting vendor results:
A 10x price difference between vendors for the same compound usually indicates different salt forms, purity grades, or packaging sizes rather than genuine cost differences -- always compare on a per-mg, same-purity basis.
Purity of >=95% is sufficient for primary screening; >=98% is recommended for dose-response and SAR studies; >=99% is needed for reference standards and pharmacokinetic work.
"In-stock" status in aggregator databases can be stale by weeks -- confirm real-time availability with the vendor before committing to a timeline.
Synthesis questions to address in the final report:
Do all vendor SMILES resolve to the same canonical structure (including stereochemistry and salt form)?
Is the price-per-mg consistent with the compound's synthetic complexity, or does an outlier suggest a catalog error?
For analogs: does the structural change fall outside the pharmacophore, preserving expected activity?
Limitations
Pricing accuracy: Database prices may be outdated; actual quotes from vendors are authoritative
Regional availability: Some vendors ship only to specific regions; check shipping policies
Quantity limits: Academic vs commercial pricing may differ; some vendors require institutional accounts
Controlled substances: Some compounds have regulatory restrictions; this skill does not check legal status
No direct ordering: This skill finds sources but does not place orders; users need vendor accounts