我有下面的函数,它获取微笑字符串的字典,并将它们转换为RDKit mol对象.
def smiles_dict_to_mol_list(smiles_dict):
"""smiles dict is a dictionary object containing molecule names
as keys and smiles strings as values.
The return value is a list of RDKit mol objects.
"""
smiles_as_mol = []
for mol_name, smiles_string in smiles_dict.items():
try:
mol = Chem.MolFromSmiles(smiles_string)
mol.SetProp("_Name", mol_name)
smiles_as_mol.append(mol)
except:
print("Error processing:", mol_name)
return smiles_as_mol
这个函数通常工作得很好,我可以将任何微笑转换成mol对象,但是当我try 转换下面的 struct 时,我得到了一个例外.我认为这是因为这种化合物,以及其他也给出例外的化合物,有一个配位的金属ionic .在这种情况下,铂金.我使用的微笑线也可能是问题所在,但我不知道该如何区分.
N2W:COc1cc(cc(c1O)OC)[C@@H]2c3cc4c(cc3[C@H]([C@@H]5[C@H]2C(=O)OC5)NC(=O)CC[C@@H]6C[NH2][Pt]([NH2]6)Cl)OCO4
所以我的问题是:How can I change my RDKit code so I can work with compounds that have metal atoms?