【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】

内容分享2小时前发布
0 0 0

ChemSpider、NCl Chemical Identifier Resolver

1.Pubchempy获取分子cid局限


import pubchempy as pcp

a = pcp.get_compounds('identifier','namespace')[0]

identifier填标识符,namespace填标识符类型

可选类型
name
smiles
inchi
inchikey
formula

在 PubChem 检索分子时,名称多来自文献或采购网站等渠道,质量参差不齐。为避免模糊匹配,直接使用
pcp.get_compounds(name, 'name')[0]
通常更稳妥,但不规范命名常导致无法命中正确的 CID。为此,本笔记提供两种可行方案:一是通过 ChemSpider(基于 API Key 的检索),二是使用 NCI Chemical Identifier Resolver(通过 URL 解析)。先借助这两者将非标准名称规范化(如得到 InChIKey/SMILES),再回查 PubChem,可显著提升匹配准确率。

pubchempy可以完美避开模糊匹配情况,但是对于一些没有记载在数据库中的分子名,这种方法往往不能保持较高的效率。因此通过上述两种方法利用更广阔的名称检索分子smiles,保障准确性的同时提升pubchempy的成功匹配率。

2.ChemSpider🕷

ChemSpider的API文档
注册API教程
chemspider github网页


!pip install chemspipy

from chemspipy import ChemSpider

cs =ChemSpider('your_api_key')
search_name = cs.filter_name('compound_name')
results = cs.filter_results(search_name)
info = cs.get_details(results[0])
info['smiles']

【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
这样就可以找到smiles了,对于无法在Pubchem中搜索到的分子同样有效(部分):
举例:cellulose acetate(醋酸纤维素)
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
当使用pubchempy使用名字匹配分子时,由于改分子名称没有在Pubchempy的分子名称记录中,因此返回空列表,那么空列表的零号元素会直接报错,因此pubchem并没有叫这个名字的分子。

但是如果使用ChemSpider的filter_name功能,则能直接匹配到分子,这是因为不同数据库对分子名称的收集程度不同,显然就这个分子而言,ChemSpider涵盖了Pubchem没有的分子名称,所以他会返回一个smiles,当你想获得Pubchempy返回的全面分子属性时,可以再用这个smiles去pubchem匹配cid最终返回分子属性,如第三个单元格所示,pubchem成功使用smiles返回cid

为了验证ChemSpider提供的信息以及pubchem使用smiles匹配的cid是否正确,可以去ChemicalBook等卖分子的网站去寻找醋酸纤维素的分子结构,并且与pubchem搜寻到的进行对比:
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
再比如:2-phenylethylammonium iodide
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】

【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
同样利用cid去pubchem搜索结构:
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
通过这两个例子可以看到ChemSpider的能力,它可以凭借有时更丰富的分子名来弥补Pubchempy的name搜索功能,可以帮助我们利用pubchempy尽可能多的获得信息,一般可以在pubchempy批量作业之后,在利用ChemSpider扫扫残余。

3.NCI Chemical Identifier Resolver

这是NCI的网址
NCI是一个功能强大的网站,它能将来自不同资料的分子描述符号转化你想要的格式,比如name转smiles,name转stdinchikey,转GIF Image,转ChemSpider ID,转 Chemical Formula等等。同时提供url格式访问,具体见上面的网址,下面是官网提供的url:

https://cactus.nci.nih.gov/chemical/structure/“structure identifier”/“representation”

在structure identifier处可以换成在规定范围内的任意描述符,转化成representation形式,(在规定范围内的任意描述符)

举例:pubchem无法识别的name标签转为smiles


import requests

url = https://cactus.nci.nih.gov/chemical/structure/dodecyl-benzene-sulfonic-acid/smiles
response = requests.get(url)
print(response.text)

【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
使用rdkit.Chem.MolStandardize.rdMolStandardize.StandardizeSmiles标准化smiles字符串
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
之后利用pubchem读取该smiles:
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】
例子2:聚丙聚腈
【ChemSpider、NCI Chemical Identifier Resolver解决有机分子名称因不规范而无法获得cid的问题】

© 版权声明

相关文章

暂无评论

none
暂无评论...