zac*_*san 6 python scientific-computing scipy pubchem cheminformatics
而不是抓住PubChem的网站,我宁愿做得好,并从PubChem ftp网站本地生成图像:
ftp://ftp.ncbi.nih.gov/pubchem/specifications/
唯一的问题是我仅限于OSX和Linux,我似乎无法找到一种以编程方式生成他们在网站上拥有的2D图像的方法.看这个例子:
https://pubchem.ncbi.nlm.nih.gov/compound/6#section=Top
在"2D结构"标题下,我们在这里有这样的图像:
https://pubchem.ncbi.nlm.nih.gov/image/imgsrv.fcgi?cid=6&t=l
这就是我想要产生的东西.
如果你想要一些开箱即用的东西,我建议使用来自 ChemAxon 的 Marvin ( https://www.chemaxon.com/products/marvin/ ) 的molconvert,它对学者免费。它可以从命令行轻松使用,并且支持大量输入和输出格式。因此,对于您的示例,它将是:
molconvert "png" -s "C1=CC(=C(C=C1[N+](=O)[O-])[N+](=O)[O-])Cl" -o cdnb.png
Run Code Online (Sandbox Code Playgroud)
结果如下图:
它还允许您设置宽度、高度、质量、背景颜色等参数。
但是,如果您是程序员,我肯定会推荐RDKit。遵循为以微笑形式给出的一对化合物生成图像的代码。
from rdkit import Chem
from rdkit.Chem import Draw
ms_smis = [["C1=CC(=C(C=C1[N+](=O)[O-])[N+](=O)[O-])Cl", "cdnb"],
["C1=CC(=CC(=C1)N)C(=O)N", "3aminobenzamide"]]
ms = [[Chem.MolFromSmiles(x[0]), x[1]] for x in ms_smis]
for m in ms: Draw.MolToFile(m[0], m[1] + ".svg", size=(800, 800))
Run Code Online (Sandbox Code Playgroud)
这为您提供以下图像:
因此,我还给 PubChem 人员发了电子邮件,他们很快就回复了我:
我们对图像的唯一批量访问是通过下载服务: https: //pubchem.ncbi.nlm.nih.gov/pc_fetch/pc_fetch.cgi
您一次最多可以请求 50,000 张图像。
这比我预期的要好,但仍然并不令人惊讶,因为它需要下载理论上我可以在本地生成的东西。因此,我将保留这个问题,直到某个人编写一个开源库来做同样的事情。
编辑:
我想,如果人们和我做同样的事情,我可能会节省一些时间。我创建了一个基于 Mechanize 的 Ruby Gem 来自动下载图像。请善待他们的服务器并只下载您需要的内容。
https://github.com/zachaysan/pubchem
gem install pubchem