Intramolecular reactions

User e4cc152412

14-12-2005 19:33:20

Hi all,


Are there any examples for defining intramolecular reactions?





I mean, I think I could define them easily enough from atom mapping, but are there any specific things/examples I should be llooking at to prevent me from mass producing conformationally implausible beasts?

ChemAxon d76e6e95eb

14-12-2005 19:46:19

Show a problematic example, please.

User e4cc152412

14-12-2005 22:29:55

Hi Gyuri,


Thanks for the response. I haven't actually run into the problem, but I am worried that I will. I will let you know once I do, for some reason I don't want to believe that it is as easy as I think it is.





Thanks again for such great software.

User e4cc152412

02-01-2006 00:12:29

Ok so here is where I am running into a "problem". By problem, I mean my understanding of SMILES and SMIRKS...





Take the synthesis shown bleow, see the "symmetry breaking" step of the intramolecular transesterfication? I can't figure out a good way to encode this as a SMIRKS type reaction in a general way (i.e. so it can take conformation into account so that it can be applied in an unsupervised fashion).








I.e. if I simply define intra molecular transesterfication in a simple way (even though react will only do one application at a time), it will eventually transesterify both groups over iterations. Is there any way I can tell react that the reaction should proceed selectively through the intuitive conformation (given the context).





Or is the solution to generate like mad, then post filter conformationally implausible things?





BTW, it seems as if "clean in 3d" removes chiralily info, maybe it is my mistake somewhere.

ChemAxon d76e6e95eb

02-01-2006 14:25:52

You have graphs with stereo configuration, but without conformation info. How would your post filter work with the generated compounds?

User e4cc152412

02-01-2006 17:14:13

Gyuri wrote:
You have graphs with stereo configuration, but without conformation info. How would your post filter work with the generated compounds?
What I meant was inflate into 3d minimize and then post filter synthetic routes based on those energetics/distances.

ChemAxon d76e6e95eb

02-01-2006 17:23:49

Function for calculating the energies of the various conformers is not yet available in the current list of Chemical Terms functions. I am afraid, that post-filtering is the only choice in this case.

User e4cc152412

02-01-2006 17:55:46

Gyuri wrote:
Function for calculating the energies of the various conformers is not yet available in the current list of Chemical Terms functions. I am afraid, that post-filtering is the only choice in this case.
Ah ok, good to know; just wanted to be sure I wasn't making a fundamental error somewhere.





Chemaxon's chemical expressions are remarkably versatile. It'd be interesting to be able to refer to distances, something like (in pseudo code):





x=minimalConformation(molecules);





if dist(x.("[O:1]"),x.("[C:3"]) < 4.0


{


applyReaction()


}

ChemAxon a3d59b832c

03-01-2006 09:17:23

Please note that you can add your own functions to Chemical Terms:





http://www.chemaxon.com/jchem/doc/user/Evaluator.html#functiondef





If you create new functions which may be interesting to others as well, all contributions are welcome on this forum.





Best regards


Szabolcs

ChemAxon d76e6e95eb

03-01-2006 10:35:23

The main product(s) can be specified in the SELECTIVITY and TOLERANCE fields. Your code looks something like this:





SELECTIVITY: MinimalConformerEnergy(product(0))


TOLERANCE: 4





The MinimalConformerEnergy() function should calculate the energies of the most stable conformers for each regioisomer. Then the regioisomers with the lowest energies will be stored as products of the reaction (withing a 4.0 tolerance range from the lowest energy found)





Please note, that no MinimalConformerEnergy() function exists currently, but you can use your own favourite calculation if you embed it in a custom plugin.





Since we already have a 3D geometry optimization modul in Marvin able to calculate stable conformers and their energies we can probably create a plugin like that. I will discuss it with my collegues.





(Calculating 3D conformers will certainly slow down the usually high speed of the enumeration process.)

ChemAxon d76e6e95eb

05-01-2006 11:36:30

I rechecked the problem again and seems, that this is not a SELECTIVITY problem, rather a REACTIVITY problem. The second ring closure is sterically prohibited, so the new function should be placed in the REACTIVITY field.


The plugin is under development, I will inform you about the results when it's ready.

User e4cc152412

05-01-2006 17:01:09

Gyuri wrote:
I rechecked the problem again and seems, that this is not a SELECTIVITY problem, rather a REACTIVITY problem. The second ring closure is sterically prohibited, so the new function should be placed in the REACTIVITY field.


The plugin is under development, I will inform you about the results when it's ready.
You guys are !(amazing^2).

ChemAxon fb166edcbd

19-06-2006 20:03:46

Here I add a simple exhaustive synthesis example that we were speaking about at the UGM. The example will only work with the next major JChem release since the function hasValidConformer(Molecule) is under development.





Synthesizer is a tool that processes multiple reactions in a sequence according to a given synthesis algorithm. Here I use the ExhaustiveAlgorithm to process all possible reaction routes.This algorithm currently requires single-reactant reactions (possibly more functional groups reacting in an intra-molecular fashion). We have a not-too-detailed documentation here:


http://www.chemaxon.com/jchem/doc/user/Synthesizer.html





You can run synthesizer in memory, file and database modes.


Here is an example for each with two simple reactions and without the rule:





memory mode:


Code:



synthesize m -s S1 input.smiles -c exhaustive1.xml








file mode:


Code:



synthesize f -n syn -s S1 input.smiles -c exhaustive1.xml








db mode:


Code:



synthesize c -n syn1 -c exhaustive1.xml


synthesize i -n syn1 -s S1 input.smiles


synthesize r -n syn1


synthesize e -n syn1








All will produce the following molecules:





Code:



CCNC(=O)CCCCO


CCNC(=O)c1ccc(O)cc1


Oc1ccc2ccc3c(cc4cccc5cc1c2c3c45)C(=O)NCCCl


OCCCCC(O)=O


OC(=O)c1ccc(O)cc1


OC(=O)c1cc2cccc3cc4c(O)ccc5ccc1c(c23)c45


O=C1CCCCO1


O=C1Oc2ccc1cc2


O=C1Oc2ccc3ccc4c1cc5cccc6cc2c3c4c56








Now add the hasValidConformer(product(0)) rule to the second reaction (r2.mrv: intra-molecular esther generation) in exhaustive2.xml:





memory mode:


Code:



synthesize m -s S1 input.smiles -c exhaustive2.xml








file mode:


Code:



synthesize f -n syn -s S1 input.smiles -c exhaustive2.xml








db mode:


Code:



synthesize c -n syn2 -c exhaustive2.xml


synthesize i -n syn2 -s S1 input.smiles


synthesize r -n syn2


synthesize e -n syn2








This rule will filter out the last two products:





Code:



CCNC(=O)CCCCO


CCNC(=O)c1ccc(O)cc1


Oc1ccc2ccc3c(cc4cccc5cc1c2c3c45)C(=O)NCCCl


OCCCCC(O)=O


OC(=O)c1ccc(O)cc1


OC(=O)c1cc2cccc3cc4c(O)ccc5ccc1c(c23)c45


O=C1CCCCO1








In database mode you can browse the molecules together with their synthesis routes with the help of our synthesisbrowser tool:


http://www.chemaxon.com/jchem/doc/user/SynthesisBrowser.html





Just run the


synthesisbrowser


script and select syn1 or syn2 (the synthesis name).





I attach the example files here together with Linux scripts for the database mode examples. Is this kind of solution suitable for you? Contact us if you have any questions / suggestions.

User e4cc152412

20-06-2006 17:27:00

Thanks Nora, this helps me a lot. Will let you guys know when the library is finished.