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 <[email protected]>
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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss