RDKit中UFFOptimizeMolecule参数不匹配错误求助
背景
我需要将SMILES转换为3D SDF格式。仅使用Chem.MolFromSmiles时可成功输出2D SDF,但处理3D转换时遇到问题。
我的代码如下:
df.loc[ind, 'ROMol'] = Chem.MolFromSmiles(row[args.smi_column]) df.loc[ind, 'Mol_H'] = Chem.AddHs(df.loc[ind, 'ROMol']) df.loc[ind, 'Mol_H'] = AllChem.EmbedMolecule(df.loc[ind, 'Mol_H']) df.loc[ind, 'Mol_H'] = AllChem.UFFOptimizeMolecule(df.loc[ind, 'Mol_H'])
我的RDKit版本:
rdkit 2024.03.5 py39hc1ff0a3_1 conda-forge
问题
处理SMILES为CCCS的分子时出现错误:
df.loc[ind, 'Mol_H'] = AllChem.UFFOptimizeMolecule(df.loc[ind, 'Mol_H']) Boost.Python.ArgumentError: Python argument types in rdkit.Chem.rdForceFieldHelpers.UFFOptimizeMolecule(int) did not match C++ signature: UFFOptimizeMolecule(RDKit::ROMol {lvalue} self, int maxIters=200, double vdwThresh=10.0, int confId=-1, bool ignoreInterfragInteractions=True)
针对CCCS,AllChem.EmbedMolecule(df.loc[ind, 'Mol_H'])的输出为0,说明3D构象嵌入成功。
补充信息
我已尝试改用OptimizeMoleculeConfs()方法来解决该问题。
内容的提问来源于stack exchange,提问作者M.Vu
相关产品推荐
相关产品推荐

