Igor OpenBabel supports formats like, CMLreact, RXN Reaction SMILES, ChemKin, which specify reactions. The internal structure is OBReaction which for reaction formats is handled in the conversion routines like OBMol is for molecule formats. Reading a file containing c1ccccc1>>Nc1ccccc1 with rmsi format will make an OBReaction. OBReaction is fairly simple and is really just a container to hold shared_ptrs to the molecules which are the reactants, products, etc. OB doesn't have much for constructing or modifying reactions.
I've written a version of chemdrawCDX.cpp which reads reactions as well as molecules. The code contains the construction of an OBReaction and its transfer to OB's conversion system. The email describing it that I sent to Abe Heifets (who may be who Geoff is referring to) is below. The files are at: http://gaseq.co.uk/OB/benzene-to-aniline-reaction.cdx http://gaseq.co.uk/OB/chemdrawcdx.h http://gaseq.co.uk/OB/chemdrawcdx.cpp This is stalled at the moment because of the need to add code to parse a geometric layout and derive which molecules are reactants, products, etc. I guess this is what you are doing, so I would be interested if you have a method already. Chris Abe You might be interested in this OpenBabel format for reading CDX files. It reads reactions as well as molecules, but only if they are single reactions and completely described. The attached example works but most of the examples from patents you sent me don't. The code needs some extra heuristics to find incompletely described reactions, but I haven't yet managed to write it in the past six months. The format generates OBReaction objects when it can, which can be output by rsmi, rxn, etc. Excess molecules are output as OBMol objects as normal. The option -am generates only molecules. Actually most molecule output formats will output the reactants and products if given an OBReaction. The parsing is separated from the interpretation to a greater extent than before, which should make it easier to do an XML version. It is also possible (-ad) to output the CDX tree, in a similar way to CDXHexDumper, except that it contains human-readable names. The attached file should replace the existing one, and I hope will compile ok. A copy of chemdrawcdx.h should be put in the /data directory so it can be parsed for the names. On 18/07/2011 16:33, Geoffrey Hutchison wrote: > Dear Igor, > > Open Babel supports CML (react) and MDL Rxn formats for reactions. I'm not > sure if there's great support for polymers, but that would definitely be a > nice addition. I know someone who's working on ChemDraw reaction support as > well. > > Chris Morley should have an example of a reaction file example -- I'm not > seeing anything at the moment in the OBReaction documentation. If Chris > doesn't respond today, I'll dig around tomorrow. > > Thanks and best regards, > -Geoff > > On Jul 18, 2011, at 11:25 AM, Igor Filippov [Contr] wrote: > >> Dear Geoff, >> >> Re: reaction recognition in OSRA - >> Is there any format or formats which OpenBabel can write that have >> support for reactions and/or polymers (brackets)? It doesn't have to be >> the same format for both. >> How would I go about creating a reaction file or a polymer in C++? >> >> Igor >> ------------------------------------------------------------------------------ Magic Quadrant for Content-Aware Data Loss Prevention Research study explores the data loss prevention market. Includes in-depth analysis on the changes within the DLP market, and the criteria used to evaluate the strengths and weaknesses of these DLP solutions. http://www.accelacomm.com/jaw/sfnl/114/51385063/ _______________________________________________ OpenBabel-Devel mailing list OpenBabel-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-devel