Yes, using the id as a key is the way to go

On Tuesday, November 3, 2015, Seth Axen <[email protected]> wrote:

> Good to know! Thanks so much for the explanation! So for now, it's much
> safer to use the atom or conformer id as, for example, a dict key than to
> use the atom or conformer itself.
> Seth
>
> On Tue, Nov 3, 2015, 7:06 AM Greg Landrum <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>
>> Hi Seth,
>>
>>
>> On Tue, Nov 3, 2015 at 7:26 AM, Seth Axen <[email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>
>>> I was wondering why, when I request the conformers (or atoms) from a
>>> mol, and then request the owning mol of the conformer or atom, the two mols
>>> are not the same instance:
>>> >>> mol.GetConformers()[0].GetOwningMol() == mol
>>>         False
>>>
>>> I'd expect that they would be equal. Or, is there another way to
>>> retrieve the mol instance from an atom or conformer instance?
>>>
>>
>> They actually are the same, it just doesn't look like they are because
>> the pointers are different (this is an implementation detail).
>> Here's a little demo showing this for atoms :
>>
>> In [26]: m = Chem.MolFromSmiles('CCC')
>>
>> In [27]: at = m.GetAtomWithIdx(0)
>>
>> In [29]: at2 = m.GetAtomWithIdx(0)
>>
>>
>> # they look different:
>>
>> In [28]: at
>> Out[28]: <rdkit.Chem.rdchem.Atom at 0x106031d48>
>>
>> In [30]: at2
>> Out[30]: <rdkit.Chem.rdchem.Atom at 0x106031528>
>>
>> In [31]: at==at2
>> Out[31]: False
>>
>>
>> # but are the same:
>>
>> In [32]: at.SetAtomicNum(7)
>>
>> In [33]: at2.GetAtomicNum()
>> Out[33]: 7
>>
>>
>>
>> It's certainly worth exploring whether or not it's possible to make this
>> a bit more transparent and enable either "==" or "is" to work with these
>> objects. That investigation is now on the todo list. :-)
>>
>> -greg
>>
>>
------------------------------------------------------------------------------
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to