CAS Common Chemistry 是美国化学文摘社(CAS)提供的免费化学信息资源。CAS 的完整数据库(SciFinder / CAS Registry)是收费且昂贵的行业标准,Common Chemistry 则把其中约 50 万种常见物质的基础信息开放出来,供免费查询。
它解决什么问题
CAS 号是化学物质最权威的唯一标识符。在采购、法规申报、安全数据表、供应商沟通中,CAS 号是通用语言。当你需要确认「这个名称对应哪个结构」「这个结构的 CAS 号是多少」时,权威来源很重要——网上的二手信息经常出错,而名称/CAS 号错配在采购和申报环节的代价不小。
提供的信息
| 字段 | 说明 |
|---|---|
| CAS 登记号 | 权威唯一标识 |
| CAS 索引名 | 标准化学名称 |
| 同义名 | 常用名、商品名、别名 |
| 结构式 | 可下载 MOL 文件 |
| 分子式与分子量 | 基础信息 |
| InChI / InChIKey | 可用于跨库匹配 |
| SMILES | 便于程序处理 |
| 物性 | 部分物质有熔沸点等 |
检索与 API
# 网页:https://commonchemistry.cas.org
# 免费 API(有频率限制)
curl "https://commonchemistry.cas.org/api/search?q=aspirin"
curl "https://commonchemistry.cas.org/api/detail?cas_rn=50-78-2"
import requests, time
def cas_lookup(query):
r = requests.get("https://commonchemistry.cas.org/api/search",
params={"q": query}, timeout=15)
r.raise_for_status()
results = r.json().get("results", [])
if not results:
return None
rn = results[0]["rn"]
d = requests.get("https://commonchemistry.cas.org/api/detail",
params={"cas_rn": rn}, timeout=15).json()
return {"cas_rn": rn, "name": d.get("name"),
"smiles": d.get("smile"), "inchikey": d.get("inchiKey"),
"formula": d.get("molecularFormula")}
for q in ["aspirin", "imatinib", "50-78-2"]:
print(cas_lookup(q))
time.sleep(1) # 遵守频率限制
免费版的边界
要清楚它不是什么:
- 覆盖有限:约 50 万种常见物质,而完整的 CAS Registry 收录逾 2.5 亿种物质。研究阶段的新化合物、大多数在研药物都不在免费版中。
- 不含反应与文献:CAS 最有价值的反应数据库和文献索引都不在免费范围内,那些需要 SciFinder 订阅。
- 不含专利与法规检索:这些是付费产品的核心功能。
- 使用条款:免费供个人与学术查询使用,大规模抓取或商业再分发受限,使用前应核对条款。
在实际工作中的位置
- 采购前核对:向供应商下单前,用 CAS 号确认目标物质,避免同名不同物的错误。
- 跨库匹配:拿到 InChIKey 后,可以去 PubChem、ChEMBL 等库做精确匹配,是不同数据库之间的桥梁。
- 文档与申报:写实验记录、安全数据表、法规文件时,用权威的 CAS 号与标准名称。
- 数据清洗的参照:内部化合物库中名称混乱时,用它做标准化参照。
- 与开源库配合:日常大批量处理仍用 PubChem(见 227《PubChem》),需要权威确认时查 Common Chemistry。
上手提示
- 价值在「权威」而非「全面」:约 50 万种常见物质,新化合物基本不在其中;
- 采购与法规文档中用它核对 CAS 号与标准名称,避免同名不同物;
- 拿 InChIKey 做跨库匹配,是连接不同数据库的实用桥梁;
- 反应、文献、专利检索需要付费的 SciFinder,不在免费范围内。
延伸资源
- 开源化学信息库:227《PubChem》、226《ChEMBL》;
- 标识符概念:033《InChI 与 InChIKey》;
- 采购平台:232《Mcule》、233《eMolecules》。