exclude problem

User 870ab5b546

28-03-2010 21:12:13

The reaction definition:


<?xml version="1.0" ?>
<MDocument>
<MChemicalStruct>
<reaction x1="1.0445367650349073" y1="0.06144778459879451" x2="3.474588352204565" y2="0.0961363041963788">
<propertyList>
<property dictRef="NAME" title="NAME">
<scalar><![CDATA[double reductive amination, 4-6-membered C chain, inter then intra]]></scalar>
</property>
<property dictRef="Number of reactants" title="Number of reactants">
<scalar>2</scalar>
</property>
<property dictRef="EXCLUDE" title="EXCLUDE">
<scalar><![CDATA[dreidingEnergy(product(0)) > 100]]></scalar>
</property>
</propertyList>
<reactantList>
<molecule molID="m1">
<atomArray
atomID="a1 a2 a3 a4 a5 a6 a7 a8"
elementType="C O H C C C O H"
mrvMap="1 2 0 0 0 4 5 0"
mrvQueryProps="0 0 L,H,C: 0 0 0 0 L,H,C:"
mrvLinkNodeRep="1 1 1 1 3 1 1 1"
mrvLinkNodeOut="- - - - a6,a4 - - -"
x2="-6.499342203140259 -5.165663081312223 -7.8330213249682945 -6.499342203140259 -5.410397760112976 -3.7899106186628337 -2.941591318686698 -2.8874999284744263"
y2="-0.020811839029192924 0.749188160970807 0.7491881609708076 -1.560811839029193 -2.649756282056476 -2.1738866389751 -0.9047061702172572 -3.2243751287460327"
/>
<bondArray>
<bond atomRefs2="a1 a4" order="1" />
<bond atomRefs2="a1 a2" order="2" />
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a4 a5" order="1" queryType="Any" />
<bond atomRefs2="a6 a5" order="1" queryType="Any" />
<bond atomRefs2="a6 a7" order="2" />
<bond atomRefs2="a6 a8" order="1" />
</bondArray>
</molecule>
<molecule molID="m2">
<atomArray
atomID="a1 a2 a3"
elementType="N H H"
mrvMap="3 0 0"
x2="-1.094910904765129 -2.249910905957222 0.0902835656802905"
y2="0.7960428893566132 1.5660428786277771 1.5839733402330625"
/>
<bondArray>
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a1 a2" order="1" />
</bondArray>
</molecule>
</reactantList>
<productList>
<molecule molID="m3">
<atomArray
atomID="a1 a2 a3 a4 a5 a6 a7"
elementType="C H C N C C H"
mrvMap="1 0 0 3 4 0 0"
mrvQueryProps="0 L,H,C: 0 0 0 0 L,H,C:"
mrvLinkNodeRep="1 1 1 1 1 3 1"
mrvLinkNodeOut="- - - - - a5,a3 -"
x2="6.012143149971962 4.678464028143926 6.012143149971962 7.437296360731125 8.207296360731124 7.499668922457127 9.69482213321629"
y2="0.12458513103425495 0.8945851310342555 -1.4154148689657453 0.9269880278408527 -0.40669109398718284 -1.8139961984236272 -0.008109764529300956"
/>
<bondArray>
<bond atomRefs2="a1 a3" order="1" />
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a1 a4" order="1" />
<bond atomRefs2="a3 a6" order="1" queryType="Any" />
<bond atomRefs2="a4 a5" order="1" />
<bond atomRefs2="a5 a7" order="1" />
<bond atomRefs2="a5 a6" order="1" queryType="Any" />
</bondArray>
</molecule>
</productList>
</reaction>
</MChemicalStruct>
</MDocument>

With substrates NCc1ccccc1.CC(C)(CC=O)CC=O, Reactor (JChem 5.3.1) gives no products.  If I delete the exclude rule from the definition, then I do get a product, CC1(C)CCN(Cc2ccccc2)CC1, as desired.  However:


bob@epoch:synthesis$ evaluate -e "dreidingEnergy()" "CC1(C)CCN(Cc2ccccc2)CC1" -p 4
49.98

So why is the exclude rule excluding this particular product?

ChemAxon d76e6e95eb

29-03-2010 06:44:04

Good question. The dreiding energy seems 49.98 using direct calulation. Maybe the default calculation parameters are different during the exclude call. We will check it and get back to you soon.

ChemAxon e08c317633

29-03-2010 15:08:10

Bob, there's a bug in Reactor. This is product(0) when the exclude rule is calculated:


[H][N:3]1([H])(Cc2ccccc2)[CH2:1]CC(C)(C)C[CH2:4]1


It's an "intermediate" product, it contains explicit hydrogens which will be removed in a later step. The dreiding energy of this molecule is 111.47.


$ evaluate -e "dreidingEnergy()" "[H][N:3]1([H])(Cc2ccccc2)[CH2:1]CC(C)(C)C[CH2:4]1" -p 4
111.47
 

Please use the attached reaction, it does not contain explicit hydrogens, so it will work with the released JChem.


$ react -r double_reductive_amination.mrv "CC(C)(CC=O)CC=O" "NCc1ccccc1"
CC1(C)CCN(Cc2ccccc2)CC1

Edit: the original reaction was not mapped correctly, that's why the explicit hydrogens were not removed from the "intermediate" product. See this comment.


Zsolt

User 870ab5b546

29-03-2010 17:21:16

Thanks, that workaround works well.  (Though I don't understand why explicit H atoms should affect the calculated steric energy....)


NCc1ccccc1.O=C[C@H]1CC[C@H](C1)C=O now correctly gives C(N1C[C@H]2CC[C@H](C2)C1)c1ccccc1, whereas NCc1ccccc1.O=C[C@@H]1CC[C@H](C1)C=O correctly gives no products.


Now, here's another problem, which I believe I've raised before.  NCc1ccccc1.O=CC\C=C\CC=O gives C(N1CCC=CCC1)c1ccccc1, even though it should give no products.  There needs to be a way to instruct Reactor *not* to alter the configuration of double bonds before the dreidingEnergy() calculation.

ChemAxon e08c317633

30-03-2010 14:23:51

Later I noticed there's no bug in creation of the "intermediate" product. The leaving explicit hydrogens on the reactant side are not mapped, that's why the hydrogens are not removed. I attached the correctly mapped reaction. We will improve the reaction mapping checker algorithm in JChem 5.4 or later.


Alter double bonds: double bonds in small rings are converted to cis only after the rule calculations. This is the intermediate product, it contains the trans double bond:


<?xml version="1.0" ?>
<cml>
<MDocument>
<MChemicalStruct>
<molecule molID="m1">
<atomArray
atomID="a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14"
elementType="C C C C C C N C C C C C C C"
mrvMap="1 0 0 0 0 4 3 0 0 0 0 0 0 0"
/>
<bondArray>
<bond atomRefs2="a1 a2" order="1" />
<bond atomRefs2="a1 a7" order="1" />
<bond atomRefs2="a2 a3" order="1" />
<bond atomRefs2="a3 a4" order="2">
<bondStereo>T</bondStereo>
</bond>
<bond atomRefs2="a4 a5" order="1" />
<bond atomRefs2="a5 a6" order="1" />
<bond atomRefs2="a7 a6" order="1" />
<bond atomRefs2="a7 a8" order="1" />
<bond atomRefs2="a8 a9" order="1" />
<bond atomRefs2="a9 a10" order="A" />
<bond atomRefs2="a9 a14" order="A" />
<bond atomRefs2="a10 a11" order="A" />
<bond atomRefs2="a11 a12" order="A" />
<bond atomRefs2="a12 a13" order="A" />
<bond atomRefs2="a13 a14" order="A" />
</bondArray>
</molecule>
</MChemicalStruct>
</MDocument>
</cml>


For dereiding energy calculation 3D clean is performed, and maybe the trans info is removed during this process, we have to check this.


Zsolt