Hi,
somehow I do not get the way RDKit organizes the IDs of conformers:

>>> from Chem import AllChem as Chem
>>> import copy
>>> mol=Chem.MolFromSmiles('c1ccccc1N')
>>> Chem.EmbedMultipleConfs(mol,10)
<rdBase._vecti object at 0x8301e2c>
>>> mol2=copy.deepcopy(mol)
>>> for i in range(mol.GetNumConformers()):
...     print mol.GetConformer(i)
...
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
<Chem.rdchem.Conformer object at 0x83143e4>
>>> mol.AddConformer(mol2.GetConformer(4))
4
>>> print 'NumConfs: %d\n' %(mol.GetNumConformers())
NumConfs: 11

>>> for i in range(mol.GetNumConformers()):
...     print mol.GetConformer(i)
...
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
<Chem.rdchem.Conformer object at 0x831448c>
Traceback (most recent call last):
 File "<stdin>", line 2, in <module>
ValueError: Bad Conformer Id
>>>

Why can't I iterate over the conformers the second time?
Do I have to assign a ConfID explicitly, when adding a Conformer?

Cheers, Markus

Reply via email to