Hi James,

Thanks for the feedback.

On Tue, Apr 2, 2013 at 10:15 PM, James Davidson <[email protected]> wrote:
>
>> So... the question to you guys: How should stereochemistry
>> inversion/retention/loss be indicated in Reaction SMARTS?
>
> Good question – and let me be the first to jump in, feet first, without
> thinking enough!  : )

It's great to have engaged users. :-)

>
> Instinctively, I would say it would be good to (a) scramble stereochemistry
> if not otherwise specified – at least this way we default to losing
> information rather than risking keeping incorrect information; (b) use a
> flag at each centre if we want to retain stereochemistry (what about ‘@’?);
> (c) use another flag if we want to invert (and, inventive I know, what about
> ‘@@’?).
>
>
>
> So in the above example, let’s say I want to always invert (eg to represent
> an SN2 reaction) – the rSMARTS could then be something like
> [C:1]-O>>[C:1@@]-S, and the example input above would give F[C@@H](S)Cl out.
>
> The same output with no specification could give FC(H)(S)Cl and, of course,
> achiral input would always give achiral output – regardless of the flag in
> the rSMARTS.
>

I should have provided a bit more context around what the current
behavior is, or at least what it's supposed to be. Sorry I forgot
that.

Currently, when creating a reaction from rxnSMARTS,
inversion/retention is handled by looking at the relative
stereochemistry of atoms in the reactants and products.

If they're different you get inversion (apologies for the extremely
bogus example "reaction"):

In [13]: rxn = AllChem.ReactionFromSmarts("[C@:1]>>[C@@:1]")

In [14]: ps = rxn.RunReactants((Chem.MolFromSmiles('F[C@](Cl)(Br)I'),))

In [15]: Chem.MolToSmiles(ps[0][0],True)
Out[15]: 'F[C@@](Cl)(Br)I'

In [16]: ps = rxn.RunReactants((Chem.MolFromSmiles('F[C@@](Cl)(Br)I'),))

In [17]: Chem.MolToSmiles(ps[0][0],True)
Out[17]: 'F[C@](Cl)(Br)I'

and if they're the same you get retention:

In [7]: rxn2 = AllChem.ReactionFromSmarts("[C@:1]>>[C@:1]")

In [8]: ps = rxn2.RunReactants((Chem.MolFromSmiles('F[C@](Cl)(Br)I'),))

In [9]: Chem.MolToSmiles(ps[0][0],True)
Out[9]: 'F[C@](Cl)(Br)I'

In [10]: rxn3 = AllChem.ReactionFromSmarts("[C@@:1]>>[C@@:1]")

In [11]: ps = rxn3.RunReactants((Chem.MolFromSmiles('F[C@](Cl)(Br)I'),))

In [12]: Chem.MolToSmiles(ps[0][0],True)
Out[12]: 'F[C@](Cl)(Br)I'


This much feels logical to me, though of course it can be changed if
there's disagreement.

If you call the reaction with non-chiral starting material, you get
non-chiral ouput:

In [20]: rxn3 = AllChem.ReactionFromSmarts("[C@@:1]>>[C@@:1]")

In [21]: ps = rxn3.RunReactants((Chem.MolFromSmiles('FC(Cl)(Br)I'),))

In [22]: Chem.MolToSmiles(ps[0][0],True)
Out[22]: 'FC(Cl)(Br)I'

This is probably also ok; it certainly reflects what would happen in
the lab (er, at least I think it does).

So far so good. We've got inversion of stereochemistry and retention
of stereochemistry. There are two cases left: resolution/creation and
scrambling.

One obvious thing to do here would be:

  [C@:1]>>[C:1]   scrambling
  [C:1]>>[C@:1]   resolution/induction

This is where my extremely bogus example starts to make things more
difficult to understand, so here's a more real example of the
induction case:
   [#6:1]/[C:2]=[C:3](/[#6:4])>>[#6:1][C@H:2](Br)[C@H:3](Br)[#6:4]

Seem right?

>
>> Bonus points to anyone who can explain to me how the inversion/retention
>> flags in RXN files should be handled. At the moment the RDKit uses what's in
>> the products and ignores them in the reactants.
>
>
>
> Something like the above? (I told you I hadn’t thought about it enough!)

Do you have access to any tools that would let you check this? It
would be very good to know if other software uses the specification in
the reactants, products, or both.

-greg

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to