使用rdkit或其他python模块将SMILES转换为化学名称或IUPAC名称

使用rdkit或其他python模块将SMILES转换为化学名称或IUPAC名称,python,rdkit,cheminformatics,Python,Rdkit,Cheminformatics,有没有办法使用RDKit或其他python模块将SMILES转换为化学名称或IUPAC名称 我在其他帖子中找不到非常有用的东西 多谢各位 据我所知,使用rdkit是不可能做到这一点的,我不知道有任何python模块具有这种能力。如果您同意使用web服务,则可以使用 下面是从字符串检索IUPAC标识符的函数的简单实现: import requests CACTUS = "https://cactus.nci.nih.gov/chemical/structure/{0}/{1}&quo

有没有办法使用RDKit或其他python模块将SMILES转换为化学名称或IUPAC名称

我在其他帖子中找不到非常有用的东西


多谢各位

据我所知,使用rdkit是不可能做到这一点的,我不知道有任何python模块具有这种能力。如果您同意使用web服务,则可以使用

下面是从字符串检索IUPAC标识符的函数的简单实现:

import requests


CACTUS = "https://cactus.nci.nih.gov/chemical/structure/{0}/{1}"


def smiles_to_iupac(smiles):
    rep = "iupac_name"
    url = CACTUS.format(smiles, rep)
    response = requests.get(url)
    response.raise_for_status()
    return response.text


print(smiles_to_iupac('c1ccccc1'))
print(smiles_to_iupac('CC(=O)OC1=CC=CC=C1C(=O)O'))

[Out]:
BENZENE
2-acetyloxybenzoic acid
你可以很容易地扩展它来转换多种不同的格式,尽管这个函数不是很快

另一个解决方案是使用PubChem。您可以将API与python包一起使用。请记住,这可能会返回多个化合物

import pubchempy


# Use the SMILES you provided
smiles = 'O=C(NCc1ccc(C(F)(F)F)cc1)[C@@H]1Cc2[nH]cnc2CN1Cc1ccc([N+](=O)[O-])cc1'
compounds = pubchempy.get_compounds(smiles, namespace='smiles')
match = compounds[0]
print(match.iupac_name)

[Out]:
(6S)-5-[(4-nitrophenyl)methyl]-N-[[4-(trifluoromethyl)phenyl]methyl]-3,4,6,7-tetrahydroimidazo[4,5-c]pyridine-6-carboxamide

最近,我使用pubchempy管理了这个转换。下面是尝试的代码


filename = open("inif.txt", "r")

for line in filename :
    event = line
    compounds = pcp.get_compounds(event, namespace='smiles') 
    match = compounds[0]
    print(i,'$$$','the CID is',compounds,'$$$','The IUPAC name is',match.iupac_name,'$$$','for the SMILE',event)
    i+=1```

这似乎有效,但我的微笑可能有点复杂,它给了我这个错误“404客户端错误:找不到url”。我正在使用的微笑的一个例子是:O=C(NCc1ccc(C(F)(F)cc1)[C@@H]1Cc2[nH]cnc2c1ccc([N+](=O)[O-])cc1不管怎样,还是非常感谢!您提供的web服务是一个非常有用的工具。我发现了一个更像商店的网站,但它有一个使用微笑的搜索功能。它似乎找到了我大部分的微笑,它也给了我想要的iupac的名字。有没有一种方法可以像您提到的web服务那样在代码中实现它?这是网站:看起来不容易做到。如果网站提供了一个可以使用的API,那么就容易多了。看看我提出的另一个解决方案。我希望它能帮助你回答问题和回答奥利弗和@Alex,但你可能会有兴趣在开始时查看这些类型的问题Simport pubchempy?还有,inif.txt中有什么内容?@user10186832。是的,在开始时导入pubchempy,inif.txt基本上就是包含微笑信息的文件。