reference .rxn or .rdf file in reactor API?

ChemAxon 60ee1f1328

27-05-2005 09:36:27

Thanks to all at ChemAxon for the great conference.





OK, so I've been reading the "In silico synthesis" presentation and have come to the conclusion that I would like to build my own Java class that uses the react API and then publish this as a Java Stored procedure.


Is this what you essentially mean by using react in database mode?





Secondly, I would like to know if I can use/reference .rxn or .rdf files when constructing my Reactor.SetReaction (x)? Maybe I need to convert my .rxn or .rdf file to SMARTS format in order to initialise the reactor.SetReaction? What file type is RMol a reference to in this presentation?





Many thanks for your comments.

ChemAxon 60ee1f1328

27-05-2005 11:20:22

OK, so Marvin .exe allows me to save as SMARTS and so presumably


I can do this using the API, i.e. .rxn,.rdf - > SMARTS.





Next question:





Please see my enolate reaction attached.


I am happy that I am seeing ChemoSelectivity and RegioSelectivity for this reaction. However I don't think I am seeing Stereospecific products i.e. I expect an R and S version in pairs instead I see one absolute molecule...I have specified a "wiggly bond" in the product and mapped all surrounding atoms, please tell me what I need to do in addition, maybe in chemical terms, speaking of which how could I implement my drug likeness filter chemical terms in my rxn,rdf,SMARTS? Is it easier to use JC_COMPARE post reaction processing?

ChemAxon 60ee1f1328

27-05-2005 11:21:16

Maybe I need to clean3D my input reactants before reaction processing?

ChemAxon 60ee1f1328

27-05-2005 11:25:05

apologies - I think I might have expected this rxn to produce separate R/S isomers rather than the former!

ChemAxon fb166edcbd

27-05-2005 13:20:17

inhibox wrote:
Thanks to all at ChemAxon for the great conference.





OK, so I've been reading the "In silico synthesis" presentation and have come to the conclusion that I would like to build my own Java class that uses the react API and then publish this as a Java Stored procedure.


Is this what you essentially mean by using react in database mode?





Secondly, I would like to know if I can use/reference .rxn or .rdf files when constructing my Reactor.SetReaction (x)? Maybe I need to convert my .rxn or .rdf file to SMARTS format in order to initialise the reactor.SetReaction? What file type is RMol a reference to in this presentation?





Many thanks for your comments.
Database mode: at the moment Reactor is not available in database mode, however, you can build a Java application around it that reads reactants from and stores the generated products in database. We have Synthesizer in the ReactorPro package which is designed with database access, we also spoke about it briefly in the presentation: it can process more reactions according to different synthesis algorithms, and also stores the synthesis path in the database. The created products can be browsed by the SynthesisBrowser


tool.





Input reaction: the typical usage is to set a Molecule object as reaction. You can read in a molecule from file using MolImporter:





Code:



   // read reaction


   MolImporter importer = new MolImporter(args[0]);


   importer.setQueryMode(true);


   Molecule rmol = importer.read();


        importer.close();





        Reactor reactor = new Reactor();


        reactor.setReaction(rmol);








Note, that query mode is set because in some molecule file formats the same input is interpreted in different ways depending on whether you use it as query or as target (SMILES / SMARTS differences).





You can also set a SMARTS string by





Reactor.setReactionString(String)
.





I attach the example programs in the presentation together with test input data.


Examples:





Code:



java ReactorDemo acid-halide+nucleophile.mrv acid-halides_10.smiles nucleophiles_10.smiles








Code:



java ReactorDemoSimple 1








Code:



java ReactorDemoSimple 2


ChemAxon 60ee1f1328

27-05-2005 13:57:43

To confirm, the syntax:





MolImporter importer = new MolImporter(args[0]);





will read a .rxn or .rdf file for subsequent reaction setting?


(reactor.setReaction(rmol);)





and the syntax:





Reactor.setReactionString(String).





is expecting a SMARTS string?





It would be very useful for me to understand where the Chemical terms syntax is set in the API or where it exists for editing in a .rxn, .rdf or SMARTS string? For instance to start with say I want to include the drug likeness criteria filter in my reaction using a .rxn, .rdf and SMARTS representation of my reaction? Can you give me examples for each to get me started?





Where would I set selectivity terms as above?





Is all information about a reaction retained on conversion between .rxn, .rdf and SMARTS -presumably so?





Could you give a hint regarding my enolate question as well please!?


Chemo and Regio look OK but I cannot appear to code Stereo correctly?





Many thanks Nora!

ChemAxon fb166edcbd

27-05-2005 14:11:04

inhibox wrote:



Please see my enolate reaction attached.


I am happy that I am seeing ChemoSelectivity and RegioSelectivity for this reaction. However I don't think I am seeing Stereospecific products i.e. I expect an R and S version in pairs instead I see one absolute molecule...I have specified a "wiggly bond" in the product and mapped all surrounding atoms, please tell me what I need to do in addition, maybe in chemical terms, speaking of which how could I implement my drug likeness filter chemical terms in my rxn,rdf,SMARTS? Is it easier to use JC_COMPARE post reaction processing?
Yes, I remember :-).


The bad thing is that at the moment Reactor only supports cis-or-trans with this wiggly bond representation but not the R-or-S chirality representation. I will add this feature in the next JChem release. We can release an alpha version as soon as it is ready.





In the meantime the only solution I can think of is to use two reactions, one for each stereo configuration (Enolate1.rxn and Enolate2.rxn). Note that I added an explicit H attached to reactant atom with map 3 because implicit H-s match any ligand, including non-H atoms.





Example:





Code:



react -r Enolate1.rxn r1.mrv r2.mrv -f mrv


react -r Enolate2.rxn r1.mrv r2.mrv -f mrv








JC_COMPARE: this is a JChem cartridge function for database filtering.

ChemAxon fb166edcbd

27-05-2005 14:14:01

inhibox wrote:
Maybe I need to clean3D my input reactants before reaction processing?
No, this is not needed at all, since reaction processing takes place in 0D and then the generated products are cleaned (in 2D at the moment, I can add an option to clean in a specified dimension or in the reactant's dimension if this feature is needed) at the end.

ChemAxon fb166edcbd

27-05-2005 14:19:56

inhibox wrote:
apologies - I think I might have expected this rxn to produce separate R/S isomers rather than the former!
The "ret" sign keeps the original chirality, while the "inv" produces the opposite one.


But these do not produce both isomers.

ChemAxon d76e6e95eb

27-05-2005 14:30:52

Just joined the discussion. Your aim with the reaction of enolate.rxn is not clear for me. Would you like to:

ChemAxon 60ee1f1328

27-05-2005 14:44:18

Gyuri,





Ideally I would expect a prochiral centre in this context to produce the result:





"- create two products one with up wedge and an other one with down wedge (the two enantiomers of the racemic mixture)?"





and if any chiral centres existed in the reactants and were marked as such for the products to be all diastereoisomers.





Currently I am seeing the version below and not realising that it represents a racemic mixture (maybe I expected a wiggle!) I don't think further reactions would treat it as such?





"- create one product molecule with simple single bond at the alpha position (racemic mixture)?"

ChemAxon fb166edcbd

27-05-2005 15:01:44

inhibox wrote:
To confirm, the syntax:





MolImporter importer = new MolImporter(args[0]);





will read a .rxn or .rdf file for subsequent reaction setting?


(reactor.setReaction(rmol);)





and the syntax:





Reactor.setReactionString(String).





is expecting a SMARTS string?


Yes,





Code:



MolImporter importer = new MolImporter(<reaction file>);


importer.setQueryMode(true);


Moelcule rmol = importer.read();


importer.close();








reads the reaction molecule from any molecule file known by Marvin


(e.g. SMARTS, rxn, rdf, mrv, ...), then you can set the reaction by


Code:



reactor.setReaction(rmol);








or else, you can use


Code:



reactor.setReactionString(<SMARTS string>);








to set the reaction directly from a SMARTS string. You can append the reaction rules separated by '..' separators in the following way:





Code:



<SMARTS string>..r:<reactivity>..s:<selectivity>..t:<tolerance>








examples:





Code:



"[C:1]=[C:2]>Cl>[C:1]([#6:2])[Cl:3]..s:-hcount(ratom(1))"


"[C:1]=[C:2]>Cl>[C:1]([#6:2])[Cl:3]..r:charge(ratom(1))>0.5..s:-hcount(ratom(1))"


"[c:1][H:2]>>[c:1][Br:3]..s:-energyE(ratom(1))"


"[c:1][H:2]>>[c:1][Br:3]..s:-energyE(ratom(1))..t:0.01"


Quote:



It would be very useful for me to understand where the Chemical terms syntax is set in the API or where it exists for editing in a .rxn, .rdf or SMARTS string? For instance to start with say I want to include the drug likeness criteria filter in my reaction using a .rxn, .rdf and SMARTS representation of my reaction? Can you give me examples for each to get me started?





Where would I set selectivity terms as above?


The reaction rules are stored in molecule properties, these are written in RDF / MRV data tags: REACTIVITY, SELECTIVITY, TOLERANCE, EXCLUDE. It is not possible to save these in SMARTS - but you use the specific string representation in setReactionString() as shown above.





Drug-likeness is usually not part of the reaction rules because it has nothing to do with the reaction actually taking place but rather it determines the products we want to generate. Therefore I suggest that you should use either a Synthesis step rule with Syntehsizer or else a post-filtering with Evaluator.


Command line example (not: use the -x option with the required file format for the molecules satisfying the filtering expression):





Code:



evaluate -e "mass() >= 200" -x sdf -o heavy.sdf target.sdf








I can give you an API example as well if you are interested.





For ChemTerms syntax and usage examples, see


http://www.jchem.com/examples/evaluator/index.html


http://www.jchem.com/examples/evaluator/index.html#reaction_examples


Quote:



Is all information about a reaction retained on conversion between .rxn, .rdf and SMARTS -presumably so?


We have a description of each file format we support:


http://www.chemaxon.com/marvin/doc/dev/formats.html





All data that can be drawn in msketch can be saved in MRV format (that is our own file format), SMARTS / SMILES cannot store molecule properties and therefore are not capable of storing reaction rules. Otherwise we try to retain all information that the output file format can store.


molconvert is a command line tool for molecule file convertsion, for example:


Code:



molconvert mrv r.rxn





will convert your RXN file to MRV.
Quote:



Could you give a hint regarding my enolate question as well please!?


Chemo and Regio look OK but I cannot appear to code Stereo correctly?


Gyorgy will get back to you regarding stereo selectivity -- we have discussed it briefly and it may be the case that not the wiggly-bond representation is the best for your purpose.

ChemAxon 60ee1f1328

27-05-2005 15:17:15

Nora - Thank you kindly for your clear answers!


I await Gyuri's answer also and then essentially I am ready to go, which is great! I will be in touch regarding a react license very soon!





If I remember rightly (from a previous discussion) I will need to license the evaluator tool - which calculator plug ins will this cover / what is the licensing model here? Presumably this will open up the evaluator API, and all the plug ins?

ChemAxon fb166edcbd

27-05-2005 15:34:42

inhibox wrote:



If I remember rightly (from a previous discussion) I will need to license the evaluator tool - which calculator plug ins will this cover / what is the licensing model here? Presumably this will open up the evaluator API, and all the plug ins?
The evaluator tool itself has no license, but the plugin calculations accessible from it have separate license keys. For a list of the license key names, refer to:


http://www.chemaxon.com/License_Details.html#plugins








PS:


One more link for reactor working examples (also with chemterms):


http://www.jchem.com/examples/reactor/index.html

ChemAxon d76e6e95eb

27-05-2005 15:57:00

Reactor is already able to produce chiral or racemic structures. If an asymmetric molecule contains no wedge, that it is considered racemic mixture. Reactor handles diastereomers similarly.





If I understand you well, you need all stereoisomers generated separately. I mean all permutation using the stereo racemic atoms. In the end ther should not be asymmetric atoms without wedge bond.





In this case a new tool should be developed. You could postprocess your products after the reaction. What do you think?

ChemAxon 60ee1f1328

27-05-2005 16:06:59

I have just been trying to identify the boundaries so I am fully aware


of what the react tool does / does not do.





I have no immediate need to generate all combinations of diastereisomers


as separate records - so I am happy to accept a racemic mixture for now


- I might have expected a chiral R/S atom to be flagged slightly differently (i.e. a wiggle). Since the SMILES standard does (as far as I know) support flagging atoms as R or S (@/@@) then I initially guessed that the react tool would naturally make the distinction in the product set when it recognised a prochiral centre either via atom maps or coded chemical terms. I suspect that this may become a more pressing requirement in the future as the docking tools get more sophisticated (?) but for now it is fine as far as I am concerned!

ChemAxon d76e6e95eb

27-05-2005 16:50:09

Why would it make sence to create a stereo center with wiggly stereo bond? It often happens in laboratory practice, that the absolute stereo configuration of a new compound is not known for a while, but I don't know why this feature would be useful in virtual synthesis.