Dear Navid,
You need to embed your molecule to have a 3D conformation.
Try:

from rdkit.Chem import AllChem
mol = Chem.MolFromSmiles('O=CC1OC12CC1OC12')
AllChem.EmbedMolecule(mol)
conf = mol.GetConformer()
at1Coords = np.array(conf.GetAtomPosition(1))
at2Coords = np.array(conf.GetAtomPosition(2))
print(np.linalg.norm(at2Coords - at1Coords))

I hope this works for you.
Best regards,
Omar

On Thu, Sep 5, 2019 at 1:59 AM Navid Shervani-Tabar <nshe...@gmail.com>
wrote:

> Hello,
>
> I'm trying to find the Euclidean distance between two atoms in the
> molecule with SMILES representation `O=CC1OC12CC1OC12` using the `rdkit`
> package. Looking online, I have converged to the following code.
>
>     import numpy as np
>     from rdkit import Chem
>
>     mol = Chem.MolFromSmiles('O=CC1OC12CC1OC12')
>
>     conf = mol.GetConformer()
>     at1Coords = np.array(conf.GetAtomPosition(bond_i.GetBeginAtomIdx()))
>     at2Coords = np.array(conf.GetAtomPosition(bond_i.GetEndAtomIdx()))
>     print(np.linalg.norm(at2Coords - at1Coords))
>
> But I get the error
>
>     conf = mol.GetConformer()
>     ValueError: Bad Conformer Id
>
> I was wondering how to fix the issue.
>
> Thanks!
> Navid
>
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to