Re: [Rdkit-discuss] ConstrainedEmbed issue
Open-Source Cheminformatics and Machine Learning
Brought to you by:
glandrum
|
From: Sunhwan Jo <sun...@gm...> - 2020-07-07 19:41:58
|
Makes sense :) > On Jul 7, 2020, at 12:35 PM, Sereina Riniker <ser...@gm...> wrote: > > Dear Pavel and Sunhwan, > > Please note that hydrogens should always be added for the embedding algorithm to work properly (i.e. it’s not a walk around but what should be done). > See also Section “Working with 3D Molecules” in https://www.rdkit.org/docs/GettingStartedInPython.html <https://www.rdkit.org/docs/GettingStartedInPython.html> > > Best regards, > Sereina > > > >> On 7 Jul 2020, at 21:26, Sunhwan Jo <sun...@gm... <mailto:sun...@gm...>> wrote: >> >> >> The reason constraint embed didn’t work is the molecule simply can’t be embedded using the rdkit’s algorithm. >> >>> In [25]: mol_child = Chem.MolFromSmiles('C[C@@H]1CC[C@H](O)CC1=O') >>> >>> In [26]: AllChem.EmbedMolecule(mol_child) >>> Out[26]: -1 >> >> >> See more discussion here: >> https://github.com/rdkit/rdkit/issues/2996 <https://github.com/rdkit/rdkit/issues/2996> >> >> >> The SMILES you posted looks valid to me and doesn’t look that complicated, but the anyway I think >> somehow the RDKit’s algorithm tripped up and couldn’t finish embedding without some help. Hope >> someone with more in-depth insight can help here. >> >> >> Anyway, for a walk around, adding H seems to do the trick: >> >>> In [39]: mol = AllChem.AddHs(mol_child) >>> >>> In [40]: AllChem.EmbedMolecule(mol) >>> Out[40]: 0 # worked >>> >>> In [41]: AllChem.ConstrainedEmbed(mol, mol_parent) >>> Out[41]: <rdkit.Chem.rdchem.Mol at 0x7fe8000f6f80> # also worked >>> >> >> >> >> Sunhwan >> >> >> >> >>> On Jul 7, 2020, at 12:36 AM, Pavel Polishchuk <pav...@uk... <mailto:pav...@uk...>> wrote: >>> >>> Hi all, >>> >>> I have an issue with ConstrainedEmbed and I cannot figure out what exactly causes this. >>> I have a molecule C[C@@H]1CCCCC1=O with 3D coordinates in 1.mol file (attached). And I want to generate coordinates for another structure with this core - >>> C[C@@H]1CC[C@H](O)CC1=O. >>> >>> This is usual way which causes issue with embedding and the corresponding error. >>> >>> mol_parent = Chem.MolFromMolFile('1.mol') >>> mol_child = Chem.MolFromSmiles('C[C@@H]1CC[C@H](O)CC1=O') >>> try: >>> mol = AllChem.ConstrainedEmbed(mol_child, mol_parent) >>> except ValueError as e: >>> print(e) >>> >>> If I add explicit hydrogens the issue disappears. >>> >>> mol_parent = Chem.MolFromMolFile('1.mol') >>> mol_child = Chem.MolFromSmiles('C[C@@H]1CC[C@H](O)CC1=O') >>> mol = AllChem.ConstrainedEmbed(Chem.AddHs(mol_child), mol_parent) >>> >>> If I do not use pre-defined coordinates - everything works well. >>> >>> mol_parent = Chem.MolFromSmiles('C[C@@H]1CCCCC1=O') >>> AllChem.EmbedMolecule(mol_parent) >>> mol_child = Chem.MolFromSmiles('C[C@@H]1CC[C@H](O)CC1=O') >>> mol = AllChem.ConstrainedEmbed(mol_child, mol_parent) >>> >>> Does ugly coordinates in 1.mol file cause the embedding issue? Or the issue is caused by some implicit properties of a molecule? How to solve this properly? >>> >>> Kind regards, >>> Pavel. >>> <1.mol>_______________________________________________ >>> Rdkit-discuss mailing list >>> Rdk...@li... <mailto:Rdk...@li...> >>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss <https://lists.sourceforge.net/lists/listinfo/rdkit-discuss> >> >> _______________________________________________ >> Rdkit-discuss mailing list >> Rdk...@li... <mailto:Rdk...@li...> >> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss > |