要求

安装了pubchempy包。
conda方法安装pubchempy(v 1.0.4)

正文

下载化合物 cid:529 的3D构象的sdf文件。

import pubchempy as pcp
cid = 529
sdfpath = "D:\\Download\\529.sdf" # 本地保存路径
pcp.download('SDF',sdfpath, overwrite=True, identifier=cid, record_type='3d')

record=‘3d’ 是必要的, 否则得到的是2d构象
overwrite=True 加入覆盖已有文件的权限

文件内容等同于:https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/529/record/SDF/?record_type=3d&response_type=display

某些化合物的记录没有3D构象,例如:cid:135398633。为了防止报错程序终止,加入异常处理语句:

try:pcp.download('SDF',sdfpath, overwrite=True, identifier=cid, record_type='3d')
except pcp.NotFoundError as e:print('No 3d Conformer for {}.'.format(cid))

因此,提供了cid列表后,可以通过循环语句进行化合物3D构象的批量下载:

import os
import pubchempy as pcp
for cid in cids:sdfpath = os.path.join(PATH, "{}.sdf".format(cid))try:pcp.download('SDF',sdfpath, overwrite=True, identifier=cid, record_type='3d')except pcp.NotFoundError as e:print('No 3d Conformer for {}.'.format(cid))