stereochemistry workaround

User 870ab5b546

10-08-2007 17:16:11

Hello,





I have written a workaround for Reactor that allows a user to define the stereochemical result of an addition across an alkene in the reaction definition, so that calculated products now have the correct stereochemistry. The method also corrects incorrect stereochemistry generated by Reactor (see this discussion.





For example, with this simple reaction definition:





Code:
<?xml version="1.0" ?>


<MDocument>


  <MChemicalStruct>


    <reaction x1="2.5127873505996106" y1="6.620666025308226" x2="6.548644571768257" y2="6.536038385012649">


      <propertyList>


        <property dictRef="NAME" title="NAME">


          <scalar>bromination</scalar>


        </property>


        <property dictRef="REAGENTS" title="REAGENTS">


          <scalar>Br2</scalar>


        </property>


        <property dictRef="EXPLAIN_REACTIVITY" title="EXPLAIN_REACTIVITY">


          <scalar></scalar>


        </property>


        <property dictRef="EXPLAIN_EXCLUDE" title="EXPLAIN_EXCLUDE">


          <scalar></scalar>


        </property>


        <property dictRef="EXPLAIN_SELECTIVITY" title="EXPLAIN_SELECTIVITY">


          <scalar></scalar>


        </property>


        <property dictRef="TOLERANCE" title="TOLERANCE">


          <scalar></scalar>


        </property>


        <property dictRef="EXPLAIN_TOLERANCE" title="EXPLAIN_TOLERANCE">


          <scalar></scalar>


        </property>


        <property dictRef="STANDARDIZATION" title="STANDARDIZATION">


          <scalar><![CDATA[<?xml version="1.0" encoding="UTF-8"?>


<!-- Standardizer configuration file -->


<!-- This configuration file is created with ChemAxon Config Builder -->





<StandardizerConfiguration Version ="1.0">


<Actions>


</Actions>


</StandardizerConfiguration>


]]></scalar>


        </property>


      </propertyList>


      <reactantList>


        <molecule molID="m1">


          <atomArray


              atomID="a1 a2"


              elementType="C C"


              mrvMap="1 2"


              x2="-0.30241796163212165 -1.8424518427502026"


              y2="6.695844328841227 6.695844328841227"


              />


          <bondArray>


            <bond atomRefs2="a1 a2" order="2" />


          </bondArray>


        </molecule>


      </reactantList>


      <productList>


        <molecule molID="m2">


          <atomArray


              atomID="a1 a2 a3 a4"


              elementType="C C Br Br"


              mrvMap="1 2 6 5"


              x2="11.378104480231892 9.838070599113811 12.647774670393204 8.548327263755079"


              y2="6.440502322157878 6.440502322157878 7.3203244427562195 5.623584241072391"


              />


          <bondArray>


            <bond atomRefs2="a1 a2" order="1" />


            <bond atomRefs2="a1 a3" order="1">


              <bondStereo>H</bondStereo>


            </bond>


            <bond atomRefs2="a2 a4" order="1">


              <bondStereo>W</bondStereo>


            </bond>


          </bondArray>


        </molecule>


      </productList>


    </reaction>


  </MChemicalStruct>


</MDocument>






substrate C\C=C\C gives C[C@@H:2]([Br:5])[C@H:1](C)[Br:6], substrate C\C=C/C gives C[C@@H:2]([Br:5])[C@@H:1](C)[Br:6] and C[C@H:2]([Br:5])[C@H:1](C)[Br:6], and substrate C1CCC=CC1 gives [Br:5][C@@H:2]1CCCC[C@H:1]1[Br:6] and [Br:5][C@H:2]1CCCC[C@@H:1]1[Br:6].





This workaround will be useful until ChemAxon is able to find the time to improve Reactor's handling of stereochemistry.





If someone outside of ChemAxon is interested in the code, let me know, and we can discuss it.





-- Bob

ChemAxon d76e6e95eb

13-08-2007 10:13:35

Though, I am inside ChemAxon, I am interested.


:)

User 870ab5b546

13-08-2007 15:34:05

Oh, I'm willing to share the code with you guys with no strings attached.





I'll send it to you in an email message as an attachment -- as soon as I can finish migrating to a new email program. (Ugh.)

ChemAxon d76e6e95eb

04-09-2007 09:36:11

Thanks Bob! We will support that feature in the future, though in a bit different way. I am glad, that you have found a workaround till that.

User 870ab5b546

23-01-2008 18:40:17

Any progress in specifying syn and anti additions across double bonds in Reactor in JChem 5.0?

ChemAxon d76e6e95eb

23-01-2008 21:33:25

Unfortunately not, it is not yet scheduled.

User 870ab5b546

12-12-2008 19:16:40

Hi Gyuri,





It's been almost 12 months now, so I was hoping you might have a Christmas present for me. I have about 700 lines of code to work around the fact that Reactor doesn't understand syn or anti addition, and I would like to be able to get rid of it. A lot of it simply reproduces what Reactor has already done internally, so I think most of it would be unnecessary if you incorporate it into Reactor.





-- Bob

ChemAxon d76e6e95eb

15-12-2008 15:03:14

I will discuss this issue again with my colleagues and will get back to this issue in January.

User 870ab5b546

19-02-2009 03:33:56

Quote:
I will discuss this issue again with my colleagues and will get back to this issue in January.






Hi Gyuri,





And here we are, entering late February.  Any progress on this issue?





-- Bob

ChemAxon d76e6e95eb

19-02-2009 13:38:12

Dear Bob,





No progress and no plans at the moment to implement it in the near future.





Cheers,





Gyuri

User 870ab5b546

05-02-2010 15:18:13

I would like to put in my annual request for Reactor to understand stereospecific reactions.  


We have a workaround, but it is long and awkward and involves regenerating information that I am sure that Reactor already generates internally.


I don't think it would be too difficult to teach Reactor about stereospecificity.  I am willing to give our code to you, no strings attached, so you can incorporate it into Reactor.  (Though I am sure you can come up with something simpler on your own.)

ChemAxon d76e6e95eb

11-02-2010 12:34:50

We figured a out a solution which seems a nice way to handle this kind stereospecificity. However, the proof of the pudding is the eating, so let's wait for the implementation results. If it works, it can appear in the 5.4 release.

User 870ab5b546

11-02-2010 13:03:31

Please let me know when you have something to test.

ChemAxon d76e6e95eb

06-09-2010 11:13:12

Unfortunately, this feature will not appear in this upcoming version. I am sorry about that. However, a basic solution requiring attached R-ligands will appear in 5.4, that can be used until the final one arrives.

User 870ab5b546

29-11-2010 03:59:58

Now that JChem 5.4 is here, do you have any documentation on this feature?

ChemAxon e08c317633

29-11-2010 11:46:20

Here are some examples:


$ react -r bromination_anti.mrv "C\C=C\C"
C[C@@H](Br)[C@H](C)Br

$ react -r bromination_anti.mrv "C\C=C/C"
C[C@H](Br)[C@H](C)Br
C[C@@H](Br)[C@@H](C)Br

$ react -r bromination_anti.mrv "C1CCC=CC1"
Br[C@H]1CCCC[C@@H]1Br
Br[C@@H]1CCCC[C@H]1Br

$ react -r bromination_syn.mrv "C\C=C\C"
C[C@@H](Br)[C@@H](C)Br
C[C@H](Br)[C@H](C)Br

$ react -r bromination_syn.mrv "C\C=C/C"
C[C@@H](Br)[C@H](C)Br

$ react -r bromination_syn.mrv "C1CCC=CC1"
Br[C@H]1CCCC[C@H]1Br


$ react -r bromination_anti.mrv "C=C"
BrCCBr

$ react -r bromination_syn.mrv "C=C"
BrCCBr

These - with explanation and images - will appear in JChem documentation soon.


Zsolt

User 870ab5b546

29-11-2010 15:45:00

Wow, this feature looks incredibly useful.  Do I need to define the R groups in any way, other than by mapping them?

ChemAxon e08c317633

29-11-2010 15:53:01










bobgr wrote:

Do I need to define the R groups in any way, other than by mapping them?



No, you don't. R-groups have to be different (R1, R2, R3, ...), and they have to be mapped.


Zsolt

User 870ab5b546

06-12-2010 03:17:56

Thanks to this new feature, I was able to delete about 500 lines of code.  I'm sure our code runs much more quickly now.  Thanks again.

ChemAxon d76e6e95eb

07-12-2011 17:31:44

Thanks for your patience, Bob.