epoxides to alkenes: stereochemistry issues

User 870ab5b546

25-04-2009 03:34:45

Hi,


I'm trying to design a stereoselective conversion of epoxides to alkenes.  


For cis or trans disubstituted epoxides, the reaction definitions work great.  For example, with the following definition and the substrate C[C@@H]1O[C@H]1C, Reactor properly gives C\C=C/C as the first product set, and gives no second product set.  (I use another definition for the enantiomer and another for the cis epoxide.)


<?xml version="1.0" ?>
<MDocument>
<MChemicalStruct>
<reaction x1="-1.0106250047683716" y1="2.6468749046325684" x2="0.8181250095367432" y2="2.6468749046325684">
<propertyList>
<property dictRef="NAME" title="NAME">
<scalar><![CDATA[trans disubstituted epoxide to alkene]]></scalar>
</property>
</propertyList>
<reactantList>
<molecule molID="m1">
<atomArray>
<atom id="a1" elementType="C" mrvMap="1"
x2="-6.212614211852734" y2="2.560591423544322" />
<atom id="a2" elementType="C" mrvMap="2"
x2="-4.672614211852734" y2="2.560591423544322" />
<atom id="a3" elementType="O"
x2="-5.442614211852733" y2="3.8942705453723576" />
<atom id="a4" elementType="H"
x2="-3.1507358751991417" y2="2.29500540217653" />
<atom id="a5" elementType="C" mrvMap="3"
x2="-7.618241804557157" y2="1.9314562467913696" />
<atom id="a6" elementType="H"
x2="-6.792234970338681" y2="1.1338329379090777" />
<atom id="a7" elementType="C" mrvMap="4"
x2="-3.7625885442717433" y2="1.151385208527358" />
</atomArray>
<bondArray>
<bond atomRefs2="a1 a6" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a1 a5" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a2 a7" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a2 a4" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</reactantList>
<productList>
<molecule molID="m2">
<atomArray
atomID="a1 a2 a3 a4 a5 a6"
elementType="C C C C H H"
mrvMap="1 2 4 3 0 0"
x2="3.8071125223086426 5.347112522308643 6.261586763623176 2.8948472358472266 3.0740560150749765 6.248264524665041"
y2="2.5652036719766453 2.5652036719766453 3.905792945456781 3.805918001352054 1.2108668759017631 1.2563227975445912"
/>
<bondArray>
<bond atomRefs2="a1 a5" order="1" />
<bond atomRefs2="a1 a4" order="1" />
<bond atomRefs2="a1 a2" order="2" />
<bond atomRefs2="a2 a6" order="1" />
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</productList>
</reaction>
</MChemicalStruct>
</MDocument>

However, with a similar definition for a trisubstituted epoxide (below) and the substrate CC[C@]1(C)O[C@@H]1C, Reactor gives CC\C(C)=C\C as the first product set and CC\C(C)=C/C as the second product set.  Why?


<?xml version="1.0" ?>
<MDocument>
<MChemicalStruct>
<reaction x1="-1.0106250047683716" y1="2.6468749046325684" x2="0.8181250095367432" y2="2.6468749046325684">
<propertyList>
<property dictRef="NAME" title="NAME">
<scalar><![CDATA[trisubstituted epoxide to alkene]]></scalar>
</property>
</propertyList>
<reactantList>
<molecule molID="m1">
<atomArray>
<atom id="a1" elementType="C" mrvMap="1"
x2="-6.212614211852734" y2="2.560591423544322" />
<atom id="a2" elementType="C" mrvMap="2"
x2="-4.672614211852734" y2="2.560591423544322" />
<atom id="a3" elementType="O"
x2="-5.442614211852733" y2="3.8942705453723576" />
<atom id="a4" elementType="H"
x2="-3.1507358751991417" y2="2.29500540217653" />
<atom id="a5" elementType="C" mrvMap="3"
x2="-7.618241804557157" y2="1.9314562467913696" />
<atom id="a6" elementType="C" mrvMap="5"
x2="-6.792234970338681" y2="1.1338329379090777" />
<atom id="a7" elementType="C" mrvMap="4"
x2="-3.7625885442717433" y2="1.151385208527358" />
</atomArray>
<bondArray>
<bond atomRefs2="a1 a6" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a1 a5" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a2 a7" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a2 a4" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</reactantList>
<productList>
<molecule molID="m2">
<atomArray
atomID="a1 a2 a3 a4 a5 a6"
elementType="C C C C C H"
mrvMap="1 2 4 3 5 0"
x2="3.8071125223086426 5.347112522308643 6.261586763623176 2.8948472358472266 3.0740560150749765 6.248264524665041"
y2="2.5652036719766453 2.5652036719766453 3.905792945456781 3.805918001352054 1.210866875901763 1.2563227975445912"
/>
<bondArray>
<bond atomRefs2="a1 a5" order="1" />
<bond atomRefs2="a1 a4" order="1" />
<bond atomRefs2="a1 a2" order="2" />
<bond atomRefs2="a2 a6" order="1" />
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</productList>
</reaction>
</MChemicalStruct>
</MDocument>

Finally, for the cis epoxide -> trans alkene reaction definition, it works great for monocyclic cis epoxides, but for bicyclic ones like [H][C@@]12CCCC[C@]1([H])O2, it gives the cis cyclic alkene.  It shouldn't; it should give the trans alkene, even though it is geometrically unreasonable.  I should then be able to use a steric energy test on the product to exclude bicyclic epoxides from reacting.  (I can write an awkward reactivity rule to accomplish the same purpose -- !match(ratom(1), "*~1~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~*~[#6][C:1]2OC2[#6]~1", 1) -- but I'd rather do it the other way because it involves one calculation, not three matches.)


<?xml version="1.0" ?>
<MDocument>
<MChemicalStruct>
<reaction x1="-1.0106250047683716" y1="2.6468749046325684" x2="0.8181250095367432" y2="2.6468749046325684">
<propertyList>
<property dictRef="NAME" title="NAME">
<scalar><![CDATA[cis disubstituted epoxide to alkene]]></scalar>
</property>
</propertyList>
<reactantList>
<molecule molID="m1">
<atomArray>
<atom id="a1" elementType="C" mrvMap="1"
x2="-6.212614211852734" y2="2.560591423544322" />
<atom id="a2" elementType="C" mrvMap="2"
x2="-4.672614211852734" y2="2.560591423544322" />
<atom id="a3" elementType="O"
x2="-5.442614211852733" y2="3.8942705453723576" />
<atom id="a4" elementType="H"
x2="-4.209485789368453" y2="1.0918804021765303" />
<atom id="a5" elementType="C" mrvMap="3"
x2="-7.618241804557157" y2="1.9314562467913696" />
<atom id="a6" elementType="H"
x2="-6.792234970338681" y2="1.1338329379090777" />
<atom id="a7" elementType="C" mrvMap="4"
x2="-3.1850884393675685" y2="2.16201009408644" />
</atomArray>
<bondArray>
<bond atomRefs2="a1 a6" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a1 a5" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a2 a7" order="1">
<bondStereo>H</bondStereo>
</bond>
<bond atomRefs2="a2 a4" order="1">
<bondStereo>W</bondStereo>
</bond>
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</reactantList>
<productList>
<molecule molID="m2">
<atomArray
atomID="a1 a2 a3 a4 a5 a6"
elementType="C C C C H H"
mrvMap="1 2 4 3 0 0"
x2="3.8071125223086426 5.347112522308643 6.357836820843635 2.8948472358472266 3.0740560150749765 6.200139257636232"
y2="2.5652036719766453 2.5652036719766453 1.4032930074456114 3.805918001352054 1.2108668759017631 3.9994479680138753"
/>
<bondArray>
<bond atomRefs2="a1 a5" order="1" />
<bond atomRefs2="a1 a4" order="1" />
<bond atomRefs2="a1 a2" order="2" />
<bond atomRefs2="a2 a6" order="1" />
<bond atomRefs2="a2 a3" order="1" />
</bondArray>
</molecule>
</productList>
</reaction>
</MChemicalStruct>
</MDocument>

Comments?


-- Bob


	
	

ChemAxon e08c317633

28-04-2009 14:30:45











bobgr wrote:

However, with a similar definition for a trisubstituted epoxide (below) and the substrate CC[C@]1(C)O[C@@H]1C, Reactor gives CC\C(C)=C\C as the first product set and CC\C(C)=C/C as the second product set.  Why?




This is a bug, only CC\C(C)=C\C should be generated. See also the attached image.












bobgr wrote:

Finally, for the cis epoxide -> trans alkene reaction definition, it works great for monocyclic cis epoxides, but for bicyclic ones like [H][C@@]12CCCC[C@]1([H])O2, it gives the cis cyclic alkene.  It shouldn't; it should give the trans alkene, even though it is geometrically unreasonable.  I should then be able to use a steric energy test on the product to exclude bicyclic epoxides from reacting.  (I can write an awkward reactivity rule to accomplish the same purpose -- !match(ratom(1), "*~1~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~*~[#6][C:1]2OC2[#6]~1", 1) -- but I'd rather do it the other way because it involves one calculation, not three matches.)




Reactor sets the double bond stereo information to CIS in small rings (ring size < 8). There are not many "automatic corrections" made by reactor, but this was necessary to avoid generating geometrically unreasonable molecules.


Zsolt

User 870ab5b546

28-04-2009 14:43:32










Zsolt wrote:

 











bobgr wrote:

However, with a similar definition for a trisubstituted epoxide (below) and the substrate CC[C@]1(C)O[C@@H]1C, Reactor gives CC\C(C)=C\C as the first product set and CC\C(C)=C/C as the second product set.  Why?



 


This is a bug, only CC\C(C)=C\C should be generated. See also the attached image.



Has the bug already been fixed in a released version -- if so, which one? -- or was the image you generated from a candidate version?













Zsolt wrote:










bobgr wrote:

Finally, for the cis epoxide -> trans alkene reaction definition, it works great for monocyclic cis epoxides, but for bicyclic ones like [H][C@@]12CCCC[C@]1([H])O2, it gives the cis cyclic alkene.  It shouldn't; it should give the trans alkene, even though it is geometrically unreasonable.  I should then be able to use a steric energy test on the product to exclude bicyclic epoxides from reacting.  (I can write an awkward reactivity rule to accomplish the same purpose -- !match(ratom(1), "*~1~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~[#6][C:1]2OC2[#6]~1", 1) && !match(ratom(1), "*~1~*~*~[#6][C:1]2OC2[#6]~1", 1) -- but I'd rather do it the other way because it involves one calculation, not three matches.)



 


Reactor sets the double bond stereo information to CIS in small rings (ring size < 8). There are not many "automatic corrections" made by reactor, but this was necessary to avoid generating geometrically unreasonable molecules.





I suggest that you make an option for the user to turn off this automatic correction.  I agree that it should be on by default, but there are some reactions that are so rigidly stereospecific that they would rather generate no product at all than a low-energy diastereomer of a high-energy "expected" product.

ChemAxon e08c317633

28-04-2009 14:57:58










bobgr wrote:










 Has the bug already been fixed in a released version -- if so, which one? -- or was the image you generated from a candidate version?
 


It is not yet fixed, I'm working on it (sorry, for not mentioning this). Presumably it will be fixed in JChem 5.2.2. The version I use also generates two products sets, I attached the image of the second one.












bobgr wrote:










I suggest that you make an option for the user to turn off this automatic correction.  I agree that it should be on by default, but there are some reactions that are so rigidly stereospecific that they would rather generate no product at all than a low-energy diastereomer of a high-energy "expected" product.
 



Thanks for the suggestion, we will discuss it.


Zsolt

User 870ab5b546

05-02-2010 15:03:06

Hi, has this bug been fixed?  What about the option to return no product rather than one with a stereochemical "correction"?

ChemAxon e08c317633

11-02-2010 12:51:06










bobgr wrote:

Hi, has this bug been fixed?  What about the option to return no product rather than one with a stereochemical "correction"?



Yes, it has been fixed. 5.3.0.2 version generates only one product:


$ react -r r2.mrv "CC[C@]1(C)O[C@@H]1C"
CC\C(C)=C\C


Optionally turning off any automatic correction is a reasonable thing to do. We will implement also this (presumably in JChem 5.4).


Zsolt