bug in double bond matching

User 870ab5b546

01-11-2006 15:14:27

Query:





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


<MDocument>


  <MChemicalStruct>


    <molecule molID="m1">


      <atomArray


          atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12"


          elementType="O C C N N C C C C C C C"


          x2="-6.078053333333334 -7.451360000000001 -4.441360000000001 -4.248346666666667 -4.634186666666667 -5.474933333333333 -3.4076000000000004 -3.600613333333334 -2.3738400000000004 -0.9542400000000001 -0.7612266666666667 -1.9880000000000002"


          y2="-0.035653333333333335 -0.7324800000000001 -0.6585600000000001 0.8693066666666668 -2.186426666666667 1.8002133333333337 -3.1175200000000003 -4.645386666666667 -5.576480000000001 -4.979706666666667 -3.4518400000000002 -2.520746666666667"


          />


      <bondArray>


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


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


        <bond atomRefs2="a3 a4" order="2" />


        <bond atomRefs2="a3 a5" order="1" />


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


          <bondStereo convention="MDL" conventionValue="4" />


        </bond>


        <bond atomRefs2="a5 a7" order="1" />


        <bond atomRefs2="a7 a8" order="1" />


        <bond atomRefs2="a7 a12" order="1" />


        <bond atomRefs2="a8 a9" order="1" />


        <bond atomRefs2="a9 a10" order="1" />


        <bond atomRefs2="a10 a11" order="1" />


        <bond atomRefs2="a11 a12" order="1" />


      </bondArray>


    </molecule>


  </MChemicalStruct>


</MDocument>








Target:





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


<MDocument>


  <MChemicalStruct>


    <molecule molID="m1">


      <atomArray


          atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12"


          elementType="O C C N N C C C C C C C"


          x2="7.69521834961553 6.321917213030069 9.332068300384808 9.13809276690747 10.742228449951018 10.564916790324332 12.079458724935037 11.89858613137259 10.564916790324332 11.89858613137259 13.232255472420846 13.232255472420846"


          y2="0.5446699187702813 -0.15221169833057213 -0.07828564699028884 -1.8120117021581832 0.6603805007412344 -3.423876929564825 -0.21540414475117498 -2.6538599890057846 -4.963910810682906 -5.733927751241946 -4.963910810682906 -3.423876929564825"


          />


      <bondArray>


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


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


        <bond atomRefs2="a3 a4" order="2">


          <bondStereo>C</bondStereo>


        </bond>


        <bond atomRefs2="a3 a5" order="1" />


        <bond atomRefs2="a5 a7" order="1" />


        <bond atomRefs2="a4 a6" order="1" />


        <bond atomRefs2="a8 a6" order="1" />


        <bond atomRefs2="a6 a9" order="1" />


        <bond atomRefs2="a9 a10" order="1" />


        <bond atomRefs2="a10 a11" order="1" />


        <bond atomRefs2="a11 a12" order="1" />


        <bond atomRefs2="a8 a12" order="1" />


      </bondArray>


    </molecule>


  </MChemicalStruct>


</MDocument>








Regardless of whether doubleBondStereoMatching() is set to all or none, the two don't match.





Change the cyclohexyl to a methyl in the query, and they do match.





Change the wavy bond in the query to a straight bond, set doubleBondStereoMatching() to none, the two still don't match. But again, change the cyclohexyl to a methyl in the query, and now they do.





???

ChemAxon a3d59b832c

02-11-2006 13:43:11

Because the two molecules are topologically different.





(In one the cyclohexane is on the C end of the double bond, and in the other molecule it is at the N end.)

User 870ab5b546

02-11-2006 15:03:17

My bad. Try this query:





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


<MDocument>


  <MChemicalStruct>


    <molecule molID="m1">


      <atomArray


          atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17"


          elementType="O C C N N C C C C C C C C C C C C"


          x2="-6.078053333333334 -7.451360000000001 -4.441360000000001 -4.248346666666667 -4.634186666666667 -5.474933333333333 -3.4076000000000004 -3.600613333333334 -2.3738400000000004 -0.9542400000000001 -0.7612266666666667 -1.9880000000000002 -6.808602674381592 -8.14227201542985 -8.14227201542985 -6.808602674381592 -5.474933333333333"


          y2="-0.035653333333333335 -0.7324800000000001 -0.6585600000000001 0.8693066666666668 -2.186426666666667 1.8002133333333337 -3.1175200000000003 -4.645386666666667 -5.576480000000001 -4.979706666666667 -3.4518400000000002 -2.520746666666667 4.110264155010455 3.3402472144514146 1.8002133333333337 1.0301963927742932 3.3402472144514146"


          />


      <bondArray>


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


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


        <bond atomRefs2="a3 a4" order="2" />


        <bond atomRefs2="a3 a5" order="1" />


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


          <bondStereo convention="MDL" conventionValue="4" />


        </bond>


        <bond atomRefs2="a5 a7" order="1" />


        <bond atomRefs2="a7 a8" order="1" />


        <bond atomRefs2="a7 a12" order="1" />


        <bond atomRefs2="a8 a9" order="1" />


        <bond atomRefs2="a9 a10" order="1" />


        <bond atomRefs2="a10 a11" order="1" />


        <bond atomRefs2="a11 a12" order="1" />


        <bond atomRefs2="a16 a6" order="1" />


        <bond atomRefs2="a6 a17" order="1" />


        <bond atomRefs2="a13 a14" order="1" />


        <bond atomRefs2="a13 a17" order="1" />


        <bond atomRefs2="a14 a15" order="1" />


        <bond atomRefs2="a15 a16" order="1" />


      </bondArray>


    </molecule>


  </MChemicalStruct>


</MDocument>








and this target:





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


<MDocument>


  <MChemicalStruct>


    <molecule molID="m1">


      <atomArray


          atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17"


          elementType="O C C N N C C C C C C C C C C C C"


          x2="7.69521834961553 6.321917213030069 9.332068300384808 9.13809276690747 10.742228449951018 10.564916790324332 12.079458724935037 11.89858613137259 10.564916790324332 11.89858613137259 13.232255472420846 13.232255472420846 13.413128065983296 12.079458724935037 13.413128065983296 14.746797407031554 14.746797407031554"


          y2="0.5446699187702813 -0.15221169833057213 -0.07828564699028884 -1.8120117021581832 0.6603805007412344 -3.423876929564825 -0.21540414475117498 -2.6538599890057846 -4.963910810682906 -5.733927751241946 -4.963910810682906 -3.423876929564825 0.5546127958078655 -1.755438025869256 -2.5254549664282964 -1.755438025869256 -0.21540414475117498"


          />


      <bondArray>


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


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


        <bond atomRefs2="a3 a4" order="2">


          <bondStereo>C</bondStereo>


        </bond>


        <bond atomRefs2="a3 a5" order="1" />


        <bond atomRefs2="a5 a7" order="1" />


        <bond atomRefs2="a4 a6" order="1" />


        <bond atomRefs2="a8 a6" order="1" />


        <bond atomRefs2="a6 a9" order="1" />


        <bond atomRefs2="a9 a10" order="1" />


        <bond atomRefs2="a10 a11" order="1" />


        <bond atomRefs2="a11 a12" order="1" />


        <bond atomRefs2="a8 a12" order="1" />


        <bond atomRefs2="a13 a7" order="1" />


        <bond atomRefs2="a7 a14" order="1" />


        <bond atomRefs2="a13 a17" order="1" />


        <bond atomRefs2="a14 a15" order="1" />


        <bond atomRefs2="a15 a16" order="1" />


        <bond atomRefs2="a16 a17" order="1" />


      </bondArray>


    </molecule>


  </MChemicalStruct>


</MDocument>


ChemAxon a3d59b832c

02-11-2006 21:00:35

Well, this is a tricky one.





The query does not match the target because the wedge sets parity (tetrahedral stereo) of atom 6 be "either". As the corresponding atom has no stereo specified in the target, it is rejected.





If you put the wedge to the other side (towards the N or the O or both), then there is a match.

User 870ab5b546

02-11-2006 22:38:47

Shouldn't the wavy wedge be referring to the stereochemistry about the C=N bond, i.e., to atom N4 and its double bond to C3? Why is it setting the parity of C6 to anything at all?

ChemAxon a3d59b832c

06-11-2006 08:12:31

bobgr wrote:
Shouldn't the wavy wedge be referring to the stereochemistry about the C=N bond, i.e., to atom N4 and its double bond to C3?



It is referring to the double bond also. (It is perceived as unspecified - This is why the methyl-substituted variant matches.)
bobgr wrote:
Why is it setting the parity of C6 to anything at all?
Because stereo bonds potentially have effect on both sides.





It seems that IUPAC does not recommend this type of arrangement, the wavy bond should go to the other side. See page 58-59 of the following document:





http://ibiblio.lsu.edu/main/iupac/reports/provisional/abstract05/brecher_prs.pdf
width="90%" cellspacing="0" cellpadding="3" border="0" align="center"> Quote: The most common convention for depicting unspecified double bonds in compounds of all


sizes uses a wavy bond adjacent to the double bond. Under no circumstances, however, should the


wavy bond join the double bond to another stereogenic center.

User 870ab5b546

06-11-2006 13:49:26

Looking at page 59, it appears to me that having the wavy bond point from the N atom to the cyclohexyl group is exactly what is preferred. Quote:





"This style [indicating ambiguous double-bond stereochemistry with a wavy bond] is usually used in cases where the double bond has a single substituent [on] one or both ends; the wavy bond would preferably be positioned on that substituent."





As for C6, it is not a stereocenter, and it is at the wide end of a wedge bond. If its parity is being set, it is being set erroneously. The wide end of a wedge should not be a stereocenter; the IUPAC document to which you pointed me makes this point loudly and repeatedly.





I note that I can use the criss-cross double bond (CIS | TRANS) to achieve the result I am seeking, but the criss-cross double bond should be interpreted exactly the same way as a wavy bond pointing from N to its substituent.

ChemAxon a3d59b832c

07-11-2006 21:21:14

It seems that the handling of asymmetry for stereo would solve this problem too. (We discussed this possibility several times now: here and here.)





We will also think about if we can improve the stereo perception.

ChemAxon a3d59b832c

12-10-2007 11:54:26

Hi Bob,





Good news: from JChem 5.0 only the narrow end of the wedges will be interpreted.





Szabolcs