[ PROMPT_NODE_27056 ]
pubchem-database
[ SKILL_DOCUMENTATION ]
# PubChem 数据库
## 概述
PubChem 是全球最大的免费化学数据库,拥有超过 1.1 亿种化合物和 2.7 亿条生物活性数据。通过 PUG-REST API 和 PubChemPy,您可以按名称、CID 或 SMILES 查询化学结构、检索分子属性、执行相似性和子结构搜索,并访问生物活性数据。
## 何时使用此技能
当您需要执行以下操作时,请使用此技能:
- 按名称、结构(SMILES/InChI)或分子式搜索化合物
- 检索分子属性(分子量、LogP、TPSA、氢键描述符)
- 执行相似性搜索以查找结构相关的化合物
- 进行特定化学基团的子结构搜索
- 访问筛选实验中的生物活性数据
- 在不同化学标识符格式(CID, SMILES, InChI)之间进行转换
- 批量处理多种化合物以进行类药性筛选或属性分析
## 核心能力
### 1. 化学结构搜索
使用多种标识符类型搜索化合物:
**按化学名称**:
python
import pubchempy as pcp
compounds = pcp.get_compounds('aspirin', 'name')
compound = compounds[0]
**按 CID (化合物 ID)**:
python
compound = pcp.Compound.from_cid(2244) # 阿司匹林
**按 SMILES**:
python
compound = pcp.get_compounds('CC(=O)OC1=CC=CC=C1C(=O)O', 'smiles')[0]
**按 InChI**:
python
compound = pcp.get_compounds('InChI=1S/C9H8O4/...', 'inchi')[0]
**按分子式**:
python
compounds = pcp.get_compounds('C9H8O4', 'formula')
# 返回所有匹配此分子式的化合物
### 2. 属性检索
使用高级或底层方法检索化合物的分子属性:
**使用 PubChemPy (推荐)**:
python
import pubchempy as pcp
# 获取包含所有属性的化合物对象
compound = pcp.get_compounds('caffeine', 'name')[0]
# 访问单个属性
molecular_formula = compound.molecular_formula
molecular_weight = compound.molecular_weight
iupac_name = compound.iupac_name
smiles = compound.canonical_smiles
inchi = compound.inchi
xlogp = compound.xlogp # 分配系数
tpsa = compound.tpsa # 拓扑极性表面积
**获取特定属性**:
python
# 仅请求特定属性
properties = pcp.get_properties(
['MolecularFormula', 'MolecularWeight', 'CanonicalSMILES', 'XLogP'],
'aspirin',
'name'
)
# 返回字典列表
**批量属性检索**:
python
import pandas as pd
compound_n