[ PROMPT_NODE_26522 ]
chemical-analysis
[ SKILL_DOCUMENTATION ]
# 化学属性与相似性分析
## 概述
DrugBank 提供广泛的化学属性数据,包括分子结构、物理化学性质和计算描述符。这些信息支持基于结构的分析、相似性搜索和 QSAR 建模。
## 化学标识符与结构
### 可用的结构格式
- **SMILES**: 简化分子线性输入规范
- **InChI**: 国际化学标识符
- **InChIKey**: 用于数据库搜索的哈希 InChI
- **分子式**: 化学式(例如 C9H8O4)
- **IUPAC 名称**: 系统化学名称
- **传统名称**: 通用名称和同义词
### 提取化学结构
python
from drugbank_downloader import get_drugbank_root
def get_drug_structures(drugbank_id):
"""提取化学结构表示"""
root = get_drugbank_root()
ns = {'db': 'http://www.drugbank.ca'}
for drug in root.findall('db:drug', ns):
primary_id = drug.find('db:drugbank-id[@primary="true"]', ns)
if primary_id is not None and primary_id.text == drugbank_id:
structures = {}
# 获取计算属性
calc_props = drug.find('db:calculated-properties', ns)
if calc_props is not None:
for prop in calc_props.findall('db:property', ns):
kind = prop.find('db:kind', ns).text
value = prop.find('db:value', ns).text
if kind in ['SMILES', 'InChI', 'InChIKey', 'Molecular Formula', 'IUPAC Name']:
structures[kind] = value
return structures
return {}
# 使用示例
structures = get_drug_structures('DB00001')
print(f"SMILES: {structures.get('SMILES')}")
print(f"InChI: {structures.get('InChI')}")
## 物理化学性质
### 计算属性
从结构计算得出的属性:
- **分子量**: 道尔顿单位的精确质量
- **logP**: 分配系数(亲脂性)
- **logS**: 水溶性
- **极性表面积 (PSA)**: 拓扑极性表面积
- **氢键供体**: 氢键供体数量
- **氢键受体**: 氢键受体数量
- **可旋转键**: 可旋转键数量
- **折射率**: 摩尔折射率
- **极化率**: 分子极化率
### 实验属性
文献中测得的属性:
- **熔点**: 物理熔点
- **水溶性**: 实验溶解度数据