Yeah, you need to call Chem.SanitizeMol() on the products of a chemical
reaction.
On Fri, Jul 19, 2013 at 11:59 AM, Syeda Sabrina <[email protected]> wrote:
> One more thing I would like to add here. I have also tried this one to
> check the CIP code of the atoms of the molecule and again getting
> Precondition violation. Am I missing anything very obvious?
>
> for p in product:
> ...: for m in p:
> ...: print Chem.MolToSmiles(m, True)
> ...: Chem.AssignStereochemistry(m)
> ...: for a in m.GetAtoms():
> ...: if a.HasProp('_CIPCode'):
> ...: print a.GetProp('_CIPCode')
> ...:
> CC[C@@H]1OS(=O)O[C@H]1C
> ---------------------------------------------------------------------------
> RuntimeError Traceback (most recent call
> last)
> <ipython-input-44-0a5b7fc9fb8b> in <module>()
> 2 for m in p:
> 3 print Chem.MolToSmiles(m, True)
> ----> 4 Chem.AssignStereochemistry(m)
> 5 for a in m.GetAtoms():
> 6 if a.HasProp('_CIPCode'):
>
> RuntimeError: Pre-condition Violation
>
> Thanks a lot for your help.
>
> Bests
> Sabrina
>
> *Syeda Sabrina*
> *Graduate Assistant*
> *Department of Chemical Engineering, Penn State University*
> *University Park, PA*
> *
> *
>
>
> On Fri, Jul 19, 2013 at 11:52 AM, Syeda Sabrina <[email protected]>wrote:
>
>> Hi Greg,
>>
>> Thanks. What I meant by tetrahedral chirality is say I have a molecule, I
>> print out the smiles and can see the @/@@ in the smiles and no cis/trans,
>> now after that when I set the type of bond in the same molecule and after
>> that again print out the smiles I can see the @/@@ signs are changed. As
>> suggested by you rather than depending on the GetChiralTags() I was trying
>> to use the following for checking chiral centers but getting Pre-condition
>> violation error.
>>
>> rxn =
>> AllChem.ReactionFromSmarts('[C:2]\[CH1:3]=[CH1:4]\[C:5].[O:8]=[S:9]=[O:7].[C:13][O:12][P:11](=[O:10])([O:16][C:17])[O:14][C:15]>>[C:2][C@
>> @H:3]1[O:7][S:9](=[O:10])[O:8][C@H
>> :4]1[C:5].[C:13][O:12][P:11]([O:16][C:17])[O:14][C:15]')
>>
>> reactants = [Chem.MolFromSmiles('CC\C=C\C'), Chem.MolFromSmiles('O=S=O'),
>> Chem.MolFromSmiles('COP(=O)(OC)OC')]
>>
>> product = rxn.RunReactants(tuple(reactants))
>>
>> for p in product:
>> ...: for m in p:
>> ...: print Chem.MolToSmiles(m,True),
>> Chem.FindMolChiralCenters(m)
>>
>> The error message I get says:
>>
>> RuntimeError Traceback (most recent call
>> last)
>> <ipython-input-38-d8d31541346d> in <module>()
>> 1 for p in product:
>> 2 for m in p:
>> ----> 3 print Chem.MolToSmiles(m,True),
>> Chem.FindMolChiralCenters(m)
>> 4
>>
>> /usr/lib/python2.7/site-packages/rdkit/Chem/__init__.py in
>> FindMolChiralCenters(mol, force, includeUnassigned)
>> 89
>> 90 """
>> ---> 91 AssignStereochemistry(mol,force=force,
>> flagPossibleStereoCenters=includeUnassigned)
>> 92 centers = []
>> 93 for atom in mol.GetAtoms():
>>
>> RuntimeError: Pre-condition Violation
>>
>>
>> Any thoughts?
>>
>>
>>
>>
>>
>> *Syeda Sabrina*
>> *Graduate Assistant*
>> *Department of Chemical Engineering, Penn State University*
>> *University Park, PA*
>> *
>> *
>>
>>
>> On Fri, Jul 19, 2013 at 4:09 AM, Greg Landrum <[email protected]>wrote:
>>
>>> That depends on what you mean by tetrahedral chirality?
>>>
>>> If you're talking about the result returned by the atom.GetChiralTag()
>>> method, then no. Making changes to bond directions or types should not
>>> affect it. The one caveat here is that if you change a bond in such a way
>>> that you remove the chirality of the center and then re-perceive chirality,
>>> the chiral tag on the atom will be removed.
>>>
>>> If you mean the R or S label of an atom, then this kind of change can
>>> absolutely make a difference. Here's an example:
>>> In [3]: AllChem.FindMolChiralCenters(Chem.MolFromSmiles('C[C@H
>>> ](/C=C/Cl)/C=C\\Cl'))
>>> Out[3]: [(1, 'R')]
>>>
>>> In [4]: AllChem.FindMolChiralCenters(Chem.MolFromSmiles('C[C@H
>>> ](/C=C/Cl)/C=C/Cl'))
>>> Out[4]: []
>>>
>>> In [5]: AllChem.FindMolChiralCenters(Chem.MolFromSmiles('C[C@H
>>> ](/C=C\\Cl)/C=C/Cl'))
>>> Out[5]: [(1, 'S')]
>>>
>>> Note that you would have to re-perceive chirality after making the
>>> change to see the effect.
>>>
>>> -greg
>>>
>>>
>>>
>>> On Thu, Jul 18, 2013 at 10:19 PM, Syeda Sabrina <[email protected]>wrote:
>>>
>>>> Also, can SetBondType() can affect the tetrahedral chirality of atom?
>>>>
>>>> *Syeda Sabrina*
>>>> *Graduate Assistant*
>>>> *Department of Chemical Engineering, Penn State University*
>>>> *University Park, PA*
>>>> *
>>>> *
>>>>
>>>>
>>>> On Thu, Jul 18, 2013 at 10:11 PM, Syeda Sabrina <[email protected]>wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> Is there any reason that setting bond directions of a molecule using
>>>>> SetBondDir() for each bond in the molecule can affect tetrahedral
>>>>> chirality of its atom?
>>>>>
>>>>>
>>>>>
>>
>
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss