Query PubChem, search by name/CID/SMILES, retrieve properties, similarity/substructure searches, bioactivity, for cheminformatics. Use when a user asks about a specific chemical, drug, or molecule.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add FridrichMethod/awesome-skills --skill pubchem_database --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pubchem Database?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/fridrichmethod-pubchem-database)More formats (shields.io, HTML) on the badges page.
---
name: pubchem-database
description: "Query PubChem, search by name/CID/SMILES, retrieve properties, similarity/substructure searches, bioactivity, for cheminformatics. Use when a user asks about a specific chemical, drug, or molecule."
---
# PubChem Database
## Prerequisites
1. **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure
`uv` is installed and on PATH.
2. **User Notification**: If .licenses/pubchem_database_LICENSE.txt does not
already exist in the workspace root directory then (1) prominently notify
the user to check the terms at
https://pubchem.ncbi.nlm.nih.gov/docs/citation-guidelines and
https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest, then (2) create the file
recording the notification text and timestamp.
## Quick Start
PubChem queries are executed via a robust Python wrapper script to respect
terms-of-service and handle complex JSON parsing. This script allows safe
multi-agent use of APIs.
Example: Resolve a chemical name to its Compound ID (CID)
```bash
uv run scripts/pubchem_api.py resolve --name "aspirin" --output result.json
```
## Core Rules
- **Use the Wrapper**: ALWAYS execute the provided helper scripts to query the
database rather than accessing the database directly. The scripts
automatically enforce the required rate limit gracefully.
- Read the generated JSON output file, and process it with jq or code.
- **Verify Facts**: ALWAYS verify information retrieved from memory with a
database query if the user asks for a specific fact that can be checked in
PubChem. Do not rely solely on internal knowledge.
- **Notification**: If this skill is used, ensure this is mentioned in the
output.
## Core Capabilities
**1. Compound Resolution (Name or InChI to Identifiers)** Convert chemical/trade
names or InChI strings into PubChem CIDs, SMILES, and InChIKeys.
```bash
uv run scripts/pubchem_api.py resolve --name "ibuprofen" --output result.json
# OR
uv run scripts/pubchem_api.py resolve --inchi "InChI=1S/C3/c1-3-2/i1+1" --output result.json
```
**2. Physical & Chemical Property Retrieval** Fetch computed properties (e.g.,
MolecularWeight, XLogP, TPSA).
```bash
uv run scripts/pubchem_api.py properties --cid 2244 --output result.json
```
**3. Synonyms and Trade Names** Find alternative names and brand names.
```bash
uv run scripts/pubchem_api.py synonyms --cid 2244 --output result.json
```
## Advanced Context
**4. Safety and Hazard Information (GHS)** Retrieve Global Harmonized System
hazard statements and handling precautions (uses PUG-View).
```bash
uv run scripts/pubchem_api.py safety --cid 2244 --output result.json
```
**5. Drug and Medication Information** Fetch FDA pharmacology data, mechanism of
action, and therapeutic uses (uses PUG-View).
```bash
uv run scripts/pubchem_api.py pharmacology --cid 2244 --output result.json
```
**6. Custom Heading (PUG-View)** Retrieve any specific heading from the PUG-View
system (e.g., 'Geometry', 'Crystal Structures').
```bash
uv run scripts/pubchem_api.py view --cid 3939 --heading "Crystal Structures" --output result.json
```
**7. Image Generation** Retrieve 2D chemical structure images. The script
returns a Markdown-formatted image link.
```bash
uv run scripts/pubchem_api.py image --cid 2244 --output result.json
```
## Complex Search & Biology
**8. Structure-Based Searching (Similarity & Substructure)** Find molecules
similar to a SMILES string or containing a specific substructure.
```bash
uv run scripts/pubchem_api.py similarity --smiles "CC(=O)OC1=CC=CC=C1C(=O)O" --output result.json
```
and
```bash
uv run scripts/pubchem_api.py substructure --smiles "C1=CC=CC=C1" --output result.json
```
**9. BioAssay & Target Interactions** Identify genes or proteins a chemical
interacts with.
```bash
uv run scripts/pubchem_api.py assays --cid 2244 --output result.json
```
## Advanced Usage & Workflows
**10. Cross-references (Xrefs)** Fetch identifiers cross-referenced with a CID
(e.g., PatentID, PubMedID).
```bash
uv run scripts/pubchem_api.py xrefs --cid 2244 --type "PatentID" --output result.json
```
**11. Property Range Search** Find CIDs within a specific property range.
Supported features include: `molecular_weight`, `heavy_atom_count`, `xlogp`,
`tpsa`, `h_bond_donor_count`, `h_bond_acceptor_count`, `rotatable_bond_count`,
`exact_mass`, `monoisotopic_mass`, and `complexity`.
```bash
uv run scripts/pubchem_api.py range --feature molecular_weight --min 400.0 --max 400.05 --output result.json
```
**12. Custom PUG-REST Query** Execute a raw path against the PUG-REST API.
```bash
uv run scripts/pubchem_api.py query --path "compound/cid/2244/xrefs/PatentID/JSON" --output result.json
```
## Fallback Search Strategies
If direct resolution by name or formula fails (e.g., for complex compounds or
specific ions):
- **Search for parent/neutral molecule**: If searching for an ion or salt, try
searching for the neutral parent compound.
- **Deconstruct complex formulas**: If a complex formula returns no results,
try searching for major components or ligands.
- **Use substructure or similarity search**: If you have a SMILES string or
can generate one for a component, use it to find related compounds.
## Complex Queries and Multi-Step Tasks
* **Custom/Complex Queries**: For more details, read
[references/endpoints.md](references/endpoints.md) to construct raw PUG-REST
URLs.
* **Multi-Step Tasks**: For complex tasks like drug discovery pipelines,
follow the checklists in [references/workflows.md](references/workflows.md).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!