Python 生成小配体的构象,但保持正确的芳香性

Python 生成小配体的构象,但保持正确的芳香性,python,bioinformatics,chemistry,rdkit,cheminformatics,Python,Bioinformatics,Chemistry,Rdkit,Cheminformatics,我正在尝试生成一些小分子配体的构象,最终与它们对接。我使用RDkit的embeddemultipleconfs函数生成了一致性。然而,当随后目视检查PyMol中的构象时,我注意到RDKit没有保留芳香部分的正确角度。例如,在我的一个带有苯基团的配体中,它没有保持该基团的平面性,而是将随机角分配给该苯基团,就好像它是环己烷一样 当只装载分子时,芳香性似乎没有问题 有办法解决这个问题吗 生成符合项的部分代码: def gen_conformers(ligandpdb, structure):

我正在尝试生成一些小分子配体的构象,最终与它们对接。我使用RDkit的
embeddemultipleconfs
函数生成了一致性。然而,当随后目视检查PyMol中的构象时,我注意到RDKit没有保留芳香部分的正确角度。例如,在我的一个带有苯基团的配体中,它没有保持该基团的平面性,而是将随机角分配给该苯基团,就好像它是环己烷一样

当只装载分子时,芳香性似乎没有问题

有办法解决这个问题吗

生成符合项的部分代码:

def gen_conformers(ligandpdb, structure):
    """Generates 100 conformers for crystal ligand"""

    mol=Chem.MolFromPDBFile(ligandpdb, removeHs=True, sanitize=True)
    conf_ids=AllChem.EmbedMultipleConfs(mol, 100, numThreads=0, clearConfs=True)

我相信您的问题可能是您正在从PDB文件读取输入。PDB文件不包含小分子的键序。最好的办法是从模板分子中指定正确的键顺序,如下所示:

smiles = 'c1ccccc1'  # benzene (replace with the SMILES for your molecule)
template = Chem.MolFromSmiles(smiles)

# Read molecule from PDB file
mol = Chem.MolFromPDBFile(ligandpdb, removeHs=True, sanitize=True)

# Assign bond orders from template
new_mol = AllChem.AssignBondOrdersFromTemplate(template, mol)

此外,在生成构象时,最好将氢添加到分子中。

解决此问题。也请看pat的博客,它提出了相同的解决方案